☁️ DevOps & Cloud Computing
Princípio: Infraestrutura deve ser tratada como código (IaC). Se algo foi configurado manualmente num portal (AWS/Azure), isso é um risco de segurança e um obstáculo à escalabilidade.
📦 Contentorização (Docker & K8s)
Section titled “📦 Contentorização (Docker & K8s)”Docker: A Unidade de Entrega
Section titled “Docker: A Unidade de Entrega”- Multi-stage Builds: Técnica essencial para reduzir o tamanho das imagens, separando o ambiente de build (pesado) do ambiente de runtime (leve).
- Segurança: Nunca correr processos como
rootdentro do contentor.
Kubernetes (K8s): A Orquestração
Section titled “Kubernetes (K8s): A Orquestração”Onde os sistemas distribuídos ganham vida.
- Deployments & Services: Como as apps são expostas e atualizadas (Rolling updates).
- Autoscaling (HPA): O sistema reage ao tráfego, criando mais réplicas conforme a necessidade.
🤖 CI/CD (Continuous Integration / Delivery)
Section titled “🤖 CI/CD (Continuous Integration / Delivery)”A pipeline é a “linha de montagem” do software.
- CI (Integração): Focada em qualidade. Corre linters, testes unitários e de integração em cada Pull Request.
- CD (Entrega/Deployment): Focada em risco. Automação do deploy para Staging e Produção usando estratégias como Blue-Green ou Canary Releases.
🛠️ Infrastructure as Code (IaC)
Section titled “🛠️ Infrastructure as Code (IaC)”Ferramentas como Terraform ou Pulumi permitem declarar o estado desejado da infraestrutura.
- Idempotência: Correr o mesmo script 10 vezes deve resultar no mesmo estado exato.
- State Management: Onde é guardado o “snapshot” da tua infraestrutura para evitar conflitos entre equipas.
👁️ Observabilidade: O Pilar da Sobrevivência
Section titled “👁️ Observabilidade: O Pilar da Sobrevivência”Não podes gerir o que não consegues medir. Um sistema sénior baseia-se em três pilares:
| Pilar | Ferramenta Exemplo | Objetivo |
|---|---|---|
| Logs | ELK / Loki | O “quê” e o “quando” aconteceu. |
| Métricas | Prometheus / Grafana | Saúde do sistema (CPU, RAM, Erros/seg). |
| Tracing | OpenTelemetry / Jaeger | Seguir uma única rota através de vários microserviços. |
⚖️ Estratégia Cloud (O olhar do Sénior)
Section titled “⚖️ Estratégia Cloud (O olhar do Sénior)”Lock-in vs. Cloud Agnostic
Section titled “Lock-in vs. Cloud Agnostic”Será que vale a pena gastar meses para ser “independente da cloud”, ou é melhor usar os serviços nativos (Managed Services) para andar mais depressa?
- Sénior diz: Quase sempre, o custo do tempo de engenharia para ser agnóstico é superior ao custo do lock-in inicial.
FinOps (Gestão de Custos)
Section titled “FinOps (Gestão de Custos)”Um engenheiro sénior é consciente do orçamento.
- Spot Instances: Usar instâncias baratas para workloads que podem ser interrompidos.
- Right-sizing: Não usar uma instância
extra-largepara uma API que mal consome memória.
💡 Nota de Senioridade (SRE): Implementar Error Budgets. Se o sistema está muito instável e gastou o “orçamento de erro” do mês, as novas funcionalidades param e a equipa foca-se apenas em estabilidade.
🔗 Links Relacionados
Section titled “🔗 Links Relacionados”- [[Seguranca-CI-CD]]
- [[Arquitetura-Resiliencia]]
- [[SRE-SLIs-SLOs]]