Appearance
はじめに - マイグレーション概要
マイグレーションの要旨
- Value Streamチームより、マイグレーションツールを提供します。
- ユーザ自身で、ツールを使って環境(ステージング、プロダクション)ごとに v3に移行ください。
- ツールが作成したCI/CDパイプラインをv3プラットフォームで実行し、デプロイするリソースの管理元をv2からv3に移管するところまでをマイグレーションとします。
- (Qmonus SDK以外)マニフェスト/パラメータの変更を伴わないため、ユーザ影響はありません。
- (Qmonus SDK)マニフェストの変更が必要なため、コンテナの作成・削除が伴います。
- コンテナを作成してから古いコンテナを削除するため、 API影響はありません。
- 一方で、Qmonus SDKのMasterのみ一時的に停止するため、 Masterに依存したWorkloadには影響があります。
おおまかな流れ
事前準備
- v3プロジェクトを申請する。
- v3コンソールよりマイグレーションツールをダウンロードする。
- (対象者のみ)お使いのKubernetesクラスタにValue Streamからのアクセスを許可する。
- (任意)チュートリアルを通してQmonus Value Stream v3を習熟する。
- マイグレーションツールを実行し、アプリケーション定義をv2からv3に移行する。
- プロジェクト単位で一度だけ実行する。
Qmonus SDK以外のアプリケーション
ApiFront/Casvalを含む、Qmonus SDK以外のアプリケーションのマイグレーションの流れは以下の通りです。
- マイグレーションツールを実行し、環境ごとに用意していたQVS Configをマージして1つのQVS Configを生成する。
- マイグレーションツールを実行し、CI/CD設定をv2からv3に移行する(図① )。
- 生成されたQVS ConfigをアプリケーションリポジトリにCommit&Pushする。
- (環境ごとに実施)CI/CDで利用するSecret (Git Token、Google Cloud Service Accout、Kubeconfig) をValue Streamに登録する。
- (環境ごとに実施)マイグレーションツールを実行し、State移行を実施する(図②)。
Qmonus SDKアプリケーション
Qmonus SDKアプリケーションのマイグレーションの流れは以下の通りです。 実行にあたり、Qmonus SDKアプリケーション専用の事前準備が必要です。
事前準備は以下の通りです。
- QVS Configをv2の最新仕様に合わせる。
- 必要なGoogle Cloudリソースを事前に準備する。
実際のマイグレーション手順は以下のとおりです。
- マイグレーションツールを実行し、環境ごとに用意していたQVS Configをマージして1つのQVS Configを生成する。
- マイグレーションツールを実行し、QVS Configをv3準拠 (Argo Rolloutを使うモデル) に更新する。
- マイグレーションツールを実行し、CI/CD設定をv2からv3に移行する(図① )。
- 生成されたQVS ConfigをアプリケーションリポジトリにCommit&Pushする。
- (環境ごとに実施)CI/CDで利用するSecret (Git Token、Google Cloud Service Accout、Kubeconfig) をValue Streamに登録する。
- (環境ごとに実施)マイグレーションツールを実行し、State移行を実施する(図②)。
- (環境ごとに実施)State移行用AssemblyLineを操作(approve)し、Kubernetesリソースモデルを変換する(図③)。
DANGER
上記の手順6, 7が、アプリケーションPodの削除を伴う危険工程です。手順1から5については、ユーザ影響がないため、事前に実施可能です。
事後処理
マイグレーション事後の作業の流れは以下の通りです。
- (ステージングのみ)v3-migration branchのマージ
- (ステージングのみ)GitリポジトリのWebhook設定
- Pipelineのコード管理
- AssemblyLineのPromote設定