【ぜろだうんたいむでぷろい】

ゼロダウンタイムデプロイ とは?

最終更新:
💡 お店を開けたまま、裏側を入れ替える工夫

利用者へのサービス提供を止めずに新バージョンへ更新することを目指すデプロイ方法。新旧環境の切り替えや段階的な更新に加え、稼働状態・互換性・復旧手順を設計する。

📌 このページのポイント
サービスを続けながら更新する工夫ブルーグリーンローリングカナリア旧環境 → 新環境行き先を移す別環境で確認旧新新新段階的に入れ替え一部で新版を試す監視して広げる対象と範囲を選ぶ新旧の互換性・容量・正常性データ変更と復旧手順も確認方式を選ぶだけで、無停止になるわけではない
代表的な更新戦略を比較。監視や互換性の設計と組み合わせます。
ひよこ ひよこ
アップデート中も、サービスを使えるの?
ペンギン先生 ペンギン先生
使える状態を維持しながら更新することを目指すよ。例えば新しい環境を別に用意して確かめ、そこへリクエストの行き先を移す。方法の名前だけで無停止になるわけではなく、容量や稼働状態、既存の通信も考える必要があるんだ。
ひよこ ひよこ
ブルーグリーンは、何を切り替える?
ペンギン先生 ペンギン先生
旧版を動かす環境とは別に、新版を動かす環境を用意し、確認してからトラフィックを移すよ。環境を分けて試せるのが特徴。データや接続があるので、問題が起きても必ず一瞬で元に戻せるとは限らないね。
ひよこ ひよこ
ローリングとカナリアは?
ペンギン先生 ペンギン先生
ローリングは、動いているものを段階的に新版へ入れ替える方法。Kubernetesでは同時に減らす数・増やす数などを設定でき、必ず一台ずつではない。カナリアは、一部の利用者や通信で新版を試し、監視結果を見て広げる方法だよ。
ひよこ ひよこ
データベースも、同時に変えていい?
ペンギン先生 ペンギン先生
新旧アプリが共存しても読み書きできるかを確認しよう。列の追加でも、製品や処理によってロックや負荷を検討する必要がある。削除や名前変更は互換性を壊し得るし、データ変更の取り消しも難しい。監視・切り戻し・復旧を含めて、段階的に試すんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ゼロダウンタイムデプロイ」って出てきたら「サービスを止めずに更新するための工夫」と思えばだいたいOK!
📖 おまけ:英語の意味
「Zero Downtime Deployment」 = 停止時間ゼロのデプロイ
💬 Downtimeは「停止時間」の意味で、それをゼロにするデプロイということだよ

参考資料

← 用語集にもどる