"Il nostro database non scalerà".
Database:
- 40GB di dati totali
- 12 query al secondo
- 0 indici sulle colonne di query
- N+1 query ovunque
- 200ms di tempo medio per la query
Soluzione:
- Suddividere in 12 database
- Aggiungere repliche di lettura
- Implementare un livello di caching
- Passare a NoSQL "web scale"
Soluzione effettiva:
- Aggiungere 3 indici
- Risolvere le query N+1
- 5ms di tempo per la query
- $40/mese Postgres
Non hai un problema di scalabilità.
Hai un problema di competenza.
Offerta di lavoro: "Ingegnere DevOps"
Lavoro reale:
- Distribuire manualmente file WAR su Tomcat
- Accedere ai server tramite SSH per controllare i log
- Riavviare i servizi quando si bloccano
- Aggiornare le regole del firewall tramite ticket
- Nessuna infrastruttura come codice
- Nessun CI/CD
- Nessun cloud
Non stai assumendo un ingegnere DevOps.
Stai assumendo un sysadmin che sa che Docker esiste.
Sii solo onesto riguardo al ruolo.
I sysadmin sono preziosi. Smettila di fingere di fare DevOps quando non lo sei.
Il tuo Dockerfile:
- DA ubuntu:latest
- Installa 47 pacchetti
- Esegue come root
- Dimensione dell'immagine di 2,3 GB
- La ricostruzione richiede 15 minuti
- La scansione di sicurezza mostra 89 vulnerabilità
La tua app:
- Uno script Python
- 3 dipendenze
- Potrebbe funzionare su Alpine in un'immagine di 50 MB
Non stai usando i container.
Stai costruendo VM con Dockerfile.
Questo è ciò che succede quando le persone imparano Docker da articoli casuali su Medium.