Compute Nest では、サービスプロバイダーが新しいサービスバージョンを公開でき、お客様は既存のサービスインスタンスをそのバージョンにアップグレードできます。この機能により、お客様がゼロから再デプロイすることなく、バグ修正の提供、新機能の追加、基盤となるクラウドリソースの更新が可能になります。
仕組み
Compute Nest は、スタックによる更新とアプリケーションによる更新という 2 種類の更新方法をサポートしています。スタックによる更新が推奨されるアプローチです。
スタックによる更新
お客様がサービスインスタンスを作成すると、Compute Nest は Resource Orchestration Service (ROS) で定義したサービステンプレートに基づいてリソーススタックをプロビジョニングします。新しいサービスバージョンを公開すると、Compute Nest は侵入性の最も低いアップグレードを実行します。具体的には、2 つのバージョンの ROS テンプレートを比較し、差分のある変更のみを適用し、変更されていないリソースはそのまま維持します。
V1 および V2 のバージョンを持つサービスを例に挙げます。
| リソースの状態 | 何が起こるか |
|---|---|
| 両方のバージョンに存在し、プロパティに変更なし | 変更されない(例:リソース A) |
| 両方のバージョンに存在し、プロパティが変更された場合 | インプレースで更新(例:リソース B) |
| V1 のみに存在 | 削除(例:リソース C) |
| V2 のみに存在 | 作成(例:リソース D) |
このアプローチにより、クラウドリソースとソフトウェアアプリケーションを単一の操作でアップグレードできます。
アプリケーションによる更新
アプリケーションの更新では、CloudOps Orchestration Service (OOS) を使用して Elastic Compute Service (ECS) インスタンス上でスクリプトコマンドを実行し、スタックを変更せずに ECS イメージまたはソフトウェアパッケージを置き換えます。この方法は ECS ベースのデプロイメントに適しており、Container Service for Kubernetes (ACK) ベースのデプロイメントではサポートされていません。
この方法を使用するには、以前のバージョンから新しいバージョンへの移行に必要な OOS アクションを設定します。その後、OOS が実行中のサービスインスタンス上でこれらのアクションを実行します。
アプリケーションの更新はスタックからは非表示になります。その後にスタックの更新が実行されると、アプリケーションの更新が上書きされる可能性があります。可能な限りスタックベースの更新を使用してください。
アップグレードルール
対象バージョンは、サービスインスタンスで利用可能である必要があります。
アップグレードは前方方向のみ可能です。つまり、古いバージョンから新しいバージョンへのみ移行できます。
サービスを公開するために使用している同一アカウント内で、サービスプロバイダーはテスト用のサービスインスタンスをドラフトバージョンまたはベータバージョンにアップグレードできます。
ドラフトバージョンは最新バージョンであり、それ以上アップグレードできません。
ベータバージョンは最新から 2 番目のバージョンです。ドラフトバージョンにアップグレードできます。また、公開済みのバージョンもベータバージョンにアップグレードできます。
アップグレードとロールバック
Compute Nest では、ロールバックをアップグレードの自然な対応処理として扱います。アップグレードが期待どおりに完了しなかった場合は、再デプロイ不要でサービスインスタンスを復元するためにロールバックを行ってください。
アップグレード: サービス詳細ページから単一のサービスインスタンスをアップグレードするか、サービス詳細ページの O&M 管理 タブから複数のインスタンスを一度にアップグレードします。手順については、「1 つ以上のサービスインスタンスのアップグレード」をご参照ください。
ロールバック: ロールバックはアップグレードを逆再生し、サービスインスタンスを新しいバージョンから古いバージョンに戻します。お客様は直前のバージョンにロールバックできます。サービスインスタンスをどのバージョンにロールバックできるかを確認するには、サービスの更新履歴をチェックしてください。