【ぜろだうんたいむでぷろい】
ゼロダウンタイムデプロイ とは?
💡 お客さんを待たせない、走りながらの衣装チェンジ
📌 このページのポイント
- サービスを停止せずに新バージョンをリリースする手法の総称
- ブルーグリーンデプロイ、ローリングアップデート、カナリアリリースなどの戦略がある
- データベースのスキーマ変更が伴う場合は特別な配慮が必要
- SLA 99.99%以上を求められるサービスでは必須の技術
アプリをアップデートするとき、どうしても止まっちゃうものなの?
昔はメンテナンス画面を出して『ただいまサービスを停止しています』ってやるのが普通だったんだ。でも今は24時間止められないサービスが多いから、ゼロダウンタイムデプロイが当たり前になってきたよ
止めずにどうやって切り替えるの?
代表的なのはブルーグリーンデプロイだよ。現在稼働中の環境(ブルー)とは別に新バージョンの環境(グリーン)を用意して、ロードバランサーの向き先を切り替えるんだ。一瞬で切り替わるからユーザーは気づかないよ
他にもやり方はあるのかな?
ローリングアップデートはサーバーを1台ずつ順番に更新していく方式だね。カナリアリリースは全体の数%だけ新バージョンにして様子を見る方式。どれも一長一短があるから、サービスの特性に合わせて選ぶんだよ
データベースの変更があるときは大変そうだね?
まとめ:ざっくりこれだけ覚えればOK!
「ゼロダウンタイムデプロイ」って出てきたら「サービス無停止でリリースする技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「Zero Downtime Deployment」 = 停止時間ゼロのデプロイ
💬 Downtimeは「停止時間」の意味で、それをゼロにするデプロイということだよ