Indice del diarioDockup / nota dal campo
Note / zero-downtime-deployments

Deployment senza downtime: guida completa

Scopri come eseguire il deployment delle tue applicazioni senza alcuna interruzione del servizio utilizzando le strategie rolling update e blue-green deployment.

Introduzione

Il deployment senza downtime non è più un lusso, ma una necessità. Nel mondo always-on di oggi, anche pochi secondi di downtime possono causare perdite di fatturato, danneggiare la reputazione e frustrare gli utenti.

In Dockup abbiamo costruito l'intera piattaforma intorno al principio che i deployment debbano essere invisibili agli utenti. Ecco come ci riusciamo e come puoi implementare strategie simili nella tua infrastruttura.

Che cos'è il deployment senza downtime?

Il deployment senza downtime consiste nell'aggiornare le applicazioni senza alcuna interruzione del servizio. Gli utenti continuano ad accedere all'applicazione senza problemi mentre vengono distribuite le nuove versioni.

Strategie principali

1. Rolling update

Le rolling update sostituiscono gradualmente le istanze obsolete con quelle nuove. In qualsiasi momento, alcune istanze eseguono la versione precedente, mentre altre eseguono quella nuova.

# dockup.yaml
deploy:
  strategy: rolling
  maxSurge: 25%
  maxUnavailable: 0

2. Blue-green deployment

Questa strategia mantiene due ambienti di produzione identici. Il traffico viene spostato da un ambiente all'altro dopo aver verificato la nuova versione.

3. Canary release

Le canary release indirizzano una piccola percentuale del traffico verso la nuova versione prima del rollout completo.

Gli health check sono fondamentali

Senza health check adeguati, la tua strategia di deployment non funzionerà. Dockup configura automaticamente:

  • Liveness probe: rilevano se l'applicazione è in esecuzione
  • Readiness probe: rilevano se l'applicazione è pronta a gestire il traffico

Conclusione

I deployment senza downtime sono possibili con gli strumenti e le strategie giusti. Dockup gestisce tutto automaticamente, così puoi concentrarti sullo sviluppo delle funzionalità invece che sulla gestione dell'infrastruttura.