"A nossa base de dados não vai escalar".
Base de dados:
- 40GB de dados totais
- 12 consultas por segundo
- 0 índices nas colunas de consulta
- N+1 consultas em todo o lado
- 200ms de tempo médio de consulta
Solução:
- Dividir em 12 bases de dados
- Adicionar réplicas de leitura
- Implementar camada de cache
- Mudar para NoSQL "web scale"
Solução real:
- Adicionar 3 índices
- Corrigir as consultas N+1
- 5ms de tempo de consulta
- $40/mês Postgres
Você não tem um problema de escalabilidade.
Você tem um problema de competência.
Anúncio de emprego: "Engenheiro DevOps"
Emprego real:
- Implantar manualmente arquivos WAR no Tomcat
- Acessar servidores via SSH para verificar logs
- Reiniciar serviços quando eles falham
- Atualizar regras de firewall através de tickets
- Sem infraestrutura como código
- Sem CI/CD
- Sem nuvem
Você não está contratando um Engenheiro DevOps.
Você está contratando um administrador de sistemas que sabe que o Docker existe.
Apenas seja honesto sobre o papel.
Administradores de sistemas são valiosos. Pare de fingir que você está fazendo DevOps quando não está.
O seu Dockerfile:
- FROM ubuntu:latest
- Instala 47 pacotes
- Executa como root
- Tamanho da imagem de 2.3GB
- A reconstrução leva 15 minutos
- A verificação de segurança mostra 89 vulnerabilidades
A sua aplicação:
- Um script Python
- 3 dependências
- Poderia ser executada no Alpine numa imagem de 50MB
Você não está a usar contêineres.
Está a construir VMs com Dockerfiles.
Isto é o que acontece quando as pessoas aprendem Docker a partir de artigos aleatórios no Medium.