Appearance
概要・前提条件
1.チュートリアルの概要
本セクションのチュートリアルでは自分のアプリケーションに、公式Adapterと公式Adapterでは実現できない部分を独自のInfrastructure AdapterやCI/CD Adapterとして作成・組み合わせることで、ビルドからデプロイまでの一連の流れを実現します。
チュートリアルではFlaskを用いたHTTP APIサーバをサンプルアプリケーションとして進めていきますが、自分で用意したアプリケーションにて進める場合は適宜チュートリアルを読み替えるようにしてください。
2.チュートリアルの流れ
本チュートリアルでデプロイするアプリケーションは、Flaskを用いたHTTP APIサーバであり、以下のコンポーネントで構成されます。
- Ingress: 外部からのアクセス受付
- Service: 内部通信用のサービス
- Deployment: Flask アプリケーションを実行
- Horizontal Pod Autoscaler: 負荷に応じたDeploymentのスケーリング

以降のステップでは、以下の流れでQmonus Value Streamを活用します。
- Step 1: 自分のアプリケーションをビルドしてコンテナレジストリへプッシュ
- Step 2: Kubernetes ManifestからInfrastructure Adapterを作成してアプリケーションをデプロイ
- Step 3: Infrastructure AdapterにPodのオートスケーリング機能を追加してカスタマイズ
- Step 4: CI/CD Adapterを作成してデプロイ後のアプリケーションのヘルスチェックを自動化
3. チュートリアルリポジトリの紹介
本チュートリアルでは、プライベートリポジトリを利用して、アプリケーションのソースコードやKubernetes Manifest、Qmonus Value Streamの各種設定ファイルを管理します。 アプリケーションのコンテナイメージを作成する時点のリポジトリ構成は以下となり、以降のチュートリアルでさらにファイルを作成・カスタマイズしていきます。
.
├── .valuestream
│ └── qvs.yaml # Qvs Config(Qmonus Value Stream設定ファイル)
├── app.py # Flask アプリケーション
├── Dockerfile # コンテナイメージ定義
└── requirements.txt # Python 依存パッケージ4. 前提条件
本チュートリアルを始める前に、以下の前提条件を満たしていることを確認してください。
- Qmonus Value Streamの基本機能を理解する(Google Cloud編)を完了していること
- Qmonus Value Stream CLIとGUIの事前準備が完了していること
- CUEのインストールができていること
- GitHubなどのアプリケーションのソースコードを管理するプライベートリポジトリの用意
- Dockerfile形式のコンテナイメージをビルドするアプリケーションのソースコードの用意(任意: サンプルコードあり)
- Google Cloudのプロジェクトの用意
- ビルドしたDockerイメージを格納する
Docker FormatのGoogle Artifact Registry(GAR)の用意 - Google Artifact Registryへの書き込み権限(
roles/artifactregistry.writer)のあるサービスアカウント(参考: Roles and permissions)、および、そのシークレットキー(json)の用意 - アプリケーションをデプロイするGoogle Kubernetes Engine(GKE)クラスタの用意