Esempio reale dalla mia esperienza usando docker!
- Klevis Cipi
- 2 ago 2024
- Tempo di lettura: 2 min

Quasi tutti i progetti sui quali lavoro quotidianamente sono contenerizzati in produzione.
Altri, invece, sono contenerizzati anche nell'ambiente di sviluppo.
Qualche tempo fa, dovevamo sviluppare un nuovo progetto nell'arco di pochi mesi e ci siamo trovati ad affrontare questi punti:
- Più di 3 persone junior nel team, 2 middle.
- Stack: Laravel (PHP 8.0), ReactJs 18, PostgreSQL, servizi S3 e SQS di AWS.
- Il server di staging con PHP 7.4.
- Due server di produzione, dove il progetto sarebbe stato lanciato, hanno PHP 7.4 e uno PHP 8.0.
In queste condizioni, penso che non avessimo molta scelta: andava usato Docker.
Analizziamo insieme i punti:
1️⃣ - Setup lungo e ambienti diversi: Per preparare il setup su più di 8 PC, inclusi i laptop dei ragazzi che lavoravano da remoto, sarebbe servito molto tempo. Inoltre, l'ambiente dei PC di lavoro tende a modificarsi nel tempo.
Quindi era meglio preparare fin da subito l'ambiente del progetto usando Docker.
A dire il vero, preparare l'ambiente per un progetto Laravel, ReactJs e PostgreSQL non sarebbe stato impossibile,ma il punto è che tutti i PC avevano configurazioni, sistemi operativi e "storie" diverse.
Ad esempio, qualcuno avrebbe potuto aver bisogno di fare l'upgrade del PHP, mentre qualcun altro il downgrade. Questo avrebbe potuto compromettere il funzionamento di altri progetti presenti sui loro PC.
2️⃣ - Diversi tech stack: Come si può notare, ci sono diversi tech stack da utilizzare per il funzionamento del nuovo progetto. Quindi, per tutti era comodo avere un setup Docker dove, con solo due comandi, si poteva costruire e avviare l'intero ambiente pronto per essere utilizzato.
Nella configurazione Docker, oltre all'immagine di PostgreSQL, abbiamo configurato anche l'immagine pgAdmin 4, un tool con interfaccia utente per la gestione di PostgreSQL. Comodo, no?
3️⃣ - Server di staging: Il server di staging per noi è la macchina di test e quality assurance, prima di preparare il progetto per la pre-produzione o la produzione.
Su questa macchina ci sono altri progetti sviluppati con PHP 7.4 e fare l'upgrade non è un'opzione.
Aggiungere un altro server non è necessario per due motivi:
- Mantenere i costi bassi.
- Il server di staging ha risorse sufficienti.
4️⃣ - Server di produzione: Stesso problema del punto 3, quindi restiamo a favore dell'uso di Docker.
Voi cosa avreste fatto?