@Stephen が指摘しているような詳細は非常に重要です。なぜなら、私たちは「ゼロダウンタイム」が何を意味するのかを理解する必要があるからです。例えば、以下のようにして「ゼロダウンタイム」の要件をハックすることも可能です。
「ゼロダウンタイム」を「リクエストが有効な場合、HTTP 200 以外のコードでユーザーに応答することが決してないこと(必要に応じて 300 や 400 は開けておく)」と定義します。その後、10 ドルのドロプレット上で 1 コンテナ構成で Discourse をデプロイし、Add an offline page to display when Discourse is rebuilding or starting up を追加して 500 エラーを発生させないようにします。こうすれば、サイトがダウンしているように見せることはありません。
しかし、理性的な思考を持っていれば、これが「ゼロダウンタイム」だと考えるでしょうか?決してありません。ただし、提案通りに機能するかと言えば、もちろん可能です。さらに「ゼロダウンタイム」に耐性を持たせるために、別のリージョンにスタンバイサーバーを追加することもできます。
だからこそ、条件付けと意味論が重要なのです。常に何かを表示することと、常にサイト機能を利用可能にすることは、同じではありません。