【リクリエイトデプロイ】
Recreateデプロイ とは?
最終更新:
💡 お店を一度完全閉店してからリニューアルオープンする改装工事方式
更新対象の旧バージョンをすべて停止してから、新バージョンを起動するデプロイ方式。対象の処理をほかの稼働環境で引き受けない場合、停止から新バージョンが利用可能になるまでダウンタイムが生じる。
📌 このページのポイント
- 更新対象の旧バージョンを全停止してから、新バージョンを起動する
- 新旧を並行稼働させない更新方式。新バージョンが正常に起動する保証はない
- 停止を許容でき、新旧の同時稼働を避けたい場合に検討する。データ移行は別に設計する
- Kubernetes Deploymentでは.spec.strategy.typeにRecreateを指定する
Recreateデプロイってどういうやり方なの?
更新する範囲の旧バージョンをすべて止めてから、新バージョンを起動する方法だよ。その処理を引き受ける別の環境がなければ、新バージョンが利用できるまでダウンタイムが生じる。Kubernetesでは、対象のDeploymentに属する旧Podを止めてから新Podを作るんだ。
それって困らないの?
停止できる時間を確保した社内ツールや開発・検証環境などで検討できるよ。ただし、新バージョンの起動失敗で停止が長引くこともある。事前の検証と、失敗時に戻す手順を考えておこう。
なぜわざわざ全部止めるの?
ブルーグリーンデプロイとはどう違うの?
ブルーグリーンは旧環境を稼働させたまま新環境を準備・検証し、トラフィックを切り替える方式だよ。停止時間を抑えやすい反面、新旧を並行して用意する資源が必要になる。「必ず停止ゼロ」「費用は必ず2倍」という意味ではなく、構成や切り替え方法にもよるよ。
Kubernetesだとどう設定するの?
📖 おまけ:英語の意味
「Recreate Deployment」 = 再作成デプロイ
💬 Recreateは「再作成する」。旧バージョンの実行環境を停止して、新しいものを作り直すという名前だよ。データベースのデータまで削除するという意味ではないんだ