Ambienti, deploy e operazioni
Ambienti e preview
Production è per gli utenti finali, staging per la verifica prima della pubblicazione e preview per modifiche temporanee. Mantieni separati branch, deploy automatico e variabili di ciascun ambiente. Non usare credenziali o dati di produzione nelle preview. GitHub può creare servizi preview per le Pull Request e rimuoverli quando vengono chiuse.
Build, release e operazioni persistenti
Una build registra l’artefatto del sorgente; una release attiva nell’ambiente una build e un’istantanea della configurazione. Stati come queued, building, ready e failed riguardano la build. Il deploy, le operazioni sul ciclo di vita, le modifiche all’esposizione e l’eliminazione sono tracciabili e possono attraversare più fasi prima di arrivare a uno stato finale.
Rollback e promote
Rollback trasforma una build precedente già pronta in una nuova release senza ricostruirla. Non ripristina lo schema del database: le migrazioni devono essere retrocompatibili o avere un piano separato. Promote trasferisce lo stesso artefatto già verificato all’ambiente di destinazione, evitando differenze dovute a una nuova build.
Git e deploy hook
Quando il deploy automatico è attivo, un push sul branch collegato genera una nuova build e registra lo stato del commit in GitHub. Un deploy hook contiene una credenziale nell’URL ed è usato dalla CI; se viene divulgato, sostituiscilo. I watch paths evitano di avviare un deploy per modifiche non pertinenti in un monorepo.
Web, worker, cron e repliche
- Web riceve traffico HTTP o TCP;
- worker esegue attività in background senza endpoint pubblico;
- cron segue un’espressione cron e ogni esecuzione ha stato, orario e codice di uscita;
- più repliche duplicano orizzontalmente il processo: l’applicazione deve essere stateless o conservare lo stato condiviso in un Add-on.
Monitoraggio e controllo
I log runtime provengono da stdout/stderr. Le metriche mostrano consumo di CPU/RAM e traffico. Restart riavvia il processo corrente, Stop mantiene il servizio arrestato e Start lo avvia nuovamente. Modifiche a immagine, comando, variabili o release possono richiedere un nuovo provisioning.