I dettagli a cui @Stephen fa riferimento sono davvero importanti. Perché dobbiamo capire cosa significa zero downtime; ad esempio, potrei aggirare il requisito dello zero downtime facendo quanto segue:
Definisco lo zero downtime come non rispondere mai all’utente con un codice diverso da HTTP 200 quando la richiesta è valida (mantenendo aperti i codici 300 e 400 quando necessario). Quindi distribuisco Discourse su un droplet da 10$ in una soluzione a un singolo container e aggiungo Add an offline page to display when Discourse is rebuilding or starting up per evitare errori 500. In questo modo non mostro mai un sito che è andato offline.
Riteneresti, con una mente razionale, che questo sia zero downtime? Mai. Funziona come proposto? Certamente. E potrei anche aggiungere un server di riserva in un’altra regione per renderlo ancora più a prova di zero downtime.
È per questo che le qualifiche e la semantica sono importanti. Non è la stessa cosa mostrare sempre qualcosa ed avere sempre funzionalità sul sito.