Skip to content

概要・前提条件

1.チュートリアルの概要

本セクションのチュートリアルでは自分のアプリケーションに、公式Adapterと公式Adapterでは実現できない部分を独自のInfrastructure AdapterやCI/CD Adapterとして作成・組み合わせることで、ビルドからデプロイまでの一連の流れを実現します。

チュートリアルではFlaskを用いたHTTP APIサーバをサンプルアプリケーションとして進めていきますが、自分で用意したアプリケーションにて進める場合は適宜チュートリアルを読み替えるようにしてください。

2.チュートリアルの流れ

本チュートリアルでデプロイするアプリケーションは、Flaskを用いたHTTP APIサーバであり、以下のコンポーネントで構成されます。

  • Ingress: 外部からのアクセス受付
  • Service: 内部通信用のサービス
  • Deployment: Flask アプリケーションを実行
  • Horizontal Pod Autoscaler: 負荷に応じたDeploymentのスケーリング
Infrastructure Adapter

以降のステップでは、以下の流れで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)クラスタの用意