Junior
Que stands você atende no seu trabalho atual ou anterior?
sobes.tech IA
Resposta da IA
Eu atendo os seguintes tipos de stands:
- Dev: Stand para desenvolvedores, não destinado a testes por utilizadores finais. Usado para verificar alterações de código e deploys em fases iniciais.
- Test/QA: Stand para testadores, onde são realizados vários tipos de testes (funcionais, de integração, de carga). Contém versões mais estáveis das aplicações e é semelhante ao Prod em configuração e dados.
- Stage/Pre-prod: Stand que imita ao máximo o ambiente de produção (Prod) em configuração, dados e infraestrutura. Usado para testes finais antes do lançamento em Prod.
- Prod: Stand industrial, onde são colocadas aplicações acessíveis aos utilizadores finais. Requer máxima estabilidade, resistência a falhas e segurança.
Cada stand suporta o seu próprio conjunto de ambientes:
env:
development:
name: Dev
testing:
name: Test/QA
staging:
name: Stage/Pre-prod
production:
name: Prod
O processo de construção e deploy é automatizado usando pipelines CI/CD, que garantem o deploy dependendo do stand alvo. Por exemplo, um pipeline para construir um microserviço pode ser assim:
# Exemplo de pipeline CI/CD no GitLab
stages:
- validate
- build
- test
- deploy
build:
stage: build
script:
- docker build -t my-app:$CI_COMMIT_SHORT_SHA .
deploy_to_dev:
stage: deploy
script:
- kubectl apply -f kubernetes/dev.yaml
only:
- merge_requests
deploy_to_test:
stage: deploy
script:
- kubectl apply -f kubernetes/test.yaml
when: manual # Deploy manual após testes bem-sucedidos
rules:
- if: '$CI_COMMIT_BRANCH == "develop"'
deploy_to_stage:
stage: deploy
script:
- kubectl apply -f kubernetes/stage.yaml
when: manual
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
deploy_to_prod:
stage: deploy
script:
- kubectl apply -f kubernetes/prod.yaml
when: manual
rules:
- if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+/' # Deploy em produção por tag de versão
A manutenção inclui monitoramento de desempenho, gestão de logs, configuração de sistemas de segurança, atualização regular de software e infraestrutura, bem como resolução de incidentes. As ferramentas e tecnologias usadas variam consoante o projeto, mas geralmente incluem:
| Categoria | Exemplos de ferramentas |
|---|---|
| Gestão de configuração | Ansible, Terraform |
| CI/CD | GitLab CI, Jenkins |
| Contenerização | Docker, Kubernetes |
| Monitorização | Prometheus, Grafana, ELK Stack |
| Registo de logs | Elasticsearch, Logstash, Kibana |
| Armazenamento | PostgreSQL, Redis, S3 |
| Plataformas cloud | AWS, GCP, Azure (dependendo do projeto) |