ローリングアップデートとは?流れやブルーグリーンデプロイメントとの違いを解説!

この記事では『ローリングアップデート』について、以下の内容を図を用いてわかりやすく解説します。

  • ローリングアップデートとは
  • ローリングアップデートの流れ
  • ブルーグリーンデプロイメントやカナリアリリースとの違い
  • ローリングアップデートのメリットとデメリット

ローリングアップデートとは

ローリングアップデートとは

ローリングアップデート(Rolling Update)は、ソフトウェアやサービスの新バージョンをリリースする際に、システムの一部を徐々に新しいバージョンに置き換える手法です。一度に全体を更新するのではなく、いくつかのインスタンスやコンテナを順番に新しいバージョンに切り替え、古いバージョンを徐々に廃止します。

クラウドインフラ(例:AWSやGoogle Cloud)やコンテナオーケストレーションツール(例:Kubernetes)を使うことで、インスタンスを順番にアップデートできます。これらのツールは、稼働中のインスタンスを自動的に管理し、段階的に新しいバージョンを展開する機能を持っています。そのため、常に一部のインスタンスが稼働しており、システム全体を停止させることなく安全にリリースを進められます。

ローリングアップデートは、「ローリングデプロイ」とも呼ばれています。

ローリングアップデートの流れ

ローリングアップデートの具体的な流れを以下に示します。

  • 現在の状態を確認する
    • 稼働中のインスタンスがすべて正常であることをモニタリングツールで確認します。
  • 少数のインスタンスを新バージョンに切り替える
    • 稼働中のインスタンスを少数ずつ新バージョンに切り替えます(例:10%ずつ更新)。
  • 新バージョンの動作を確認する
    • 更新されたインスタンスが正常に動作しているか、ログやモニタリングで確認します。
  • 段階的にすべてのインスタンスを更新する
    • 問題がなければ、順次残りのインスタンスを新バージョンに置き換えていきます。
  • 問題が発生した場合にロールバックする
    • 問題が見つかれば、更新途中でも旧バージョンに戻します。

ローリングアップデートとブルーグリーンデプロイメントとカナリアリリースの違い

ローリングアップデートとブルーグリーンデプロイメントとカナリアリリースとの違いを以下に示します。

ここでは、ブルーグリーンデプロイメントはアクセス先をまとめて切り替える基本形として比較します。なお、2つの環境を用意し、カナリア方式で段階的にアクセスを切り替えるなど、手法を組み合わせることもできます。

比較項目ローリングアップデートブルーグリーンデプロイメントカナリアリリース
手法全インスタンスを段階的に新バージョンに切り替える2つの環境(ブルー環境とグリーン環境)を切り替えて一度にリリースする一部のユーザーやリクエストに新バージョンを提供し、段階的に展開する
リリース対象全ユーザー全ユーザー最初は一部のユーザーやリクエスト。問題がなければ全体へ拡大する
安全性の確認更新中に段階的に動作確認を行う切り替え前に新環境で動作確認を行い、切り替え後も監視する一部のユーザーやリクエストで動作確認を行いながら、公開範囲を広げる
ロールバックの方法問題が発生した場合、更新したインスタンスを段階的に旧バージョンに戻す問題が発生した場合、アクセス先を旧環境へ切り戻す問題発生時は新バージョンへの振り分けを止め、対象範囲を旧バージョンに戻す
適しているケースサービスの停止時間を抑えつつ、サーバーやコンテナを順番に更新したい場合アクセス先をまとめて切り替え、全体に新バージョンを展開したい場合高リスクの新機能や変更を段階的にリリースし、安全性を確認したい場合

上記の表から分かるように、ローリングアップデートは、インスタンス(アプリケーションを動かすサーバーやコンテナなど)を段階的に新しいバージョンに切り替える方法です。

ブルーグリーンデプロイメントは、2つの環境を切り替えて一度に新バージョンをリリースする手法です。

カナリアリリースは、新バージョンを一部のユーザーやリクエストに限定して提供し、問題がないかを確認しながら、段階的に適用範囲を広げる方法です。

あわせて読みたい

ブルーグリーンデプロイメントとカナリアリリースについては、以下の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

ローリングアップデートのメリットとデメリット

ローリングアップデートのメリットとデメリットを以下に示します。

メリット

  • サービス停止がない
    • アップデート中も常に一部のインスタンスが稼働しているため、サービス停止がありません。
  • 問題を早く見つけられる
    • 少しずつ更新するので、新バージョンで問題があれば早い段階で気づき、対応できます。
  • コストがかからない
    • 追加のサーバーを準備する必要がなく、効率的にリソースを利用できます。

デメリット

  • アップデートの複雑さ
    • 旧バージョンと新バージョンが一時的に混在するため、設定や管理が複雑になります。
  • 更新に時間がかかる
    • 全体を一度に更新する方法に比べて、すべてのインスタンスを更新するのに時間がかかります。
  • 互換性の問題が発生する可能性がある
    • 旧バージョンと新バージョンが同時に動くので、互換性の問題が発生する可能性があります。

本記事のまとめ

この記事では『ローリングアップデート』について、以下の内容を説明しました。

  • ローリングアップデートとは
    • システムを停止せず、インスタンスを段階的に新バージョンに切り替えるリリース手法。
  • ローリングアップデートの流れ
    • 状態確認:インスタンスが正常に稼働しているか確認。
    • 部分更新:少数のインスタンスを新バージョンに切り替え。
    • 動作確認:更新後の動作をチェック。
    • 段階更新:問題がなければ残りのインスタンスも順次更新。
    • ロールバック:問題が発生した場合、旧バージョンに戻す。
  • 他の手法との違い
    • ブルーグリーンデプロイメント:2つの環境を切り替えて一度に全体を更新。
    • カナリアリリース:一部のユーザーに新バージョンを限定的に展開。
  • メリット
    • サービス停止なし。
    • 問題を段階的に発見できる。
    • 追加リソースが不要。
  • デメリット
    • 更新管理が複雑化。
    • 時間がかかる。
    • 旧・新バージョンの互換性問題のリスク。

お読み頂きありがとうございました。

スポンサーリンク