Azure Pipelines を使用した AKS アプリの CI/CD

Azure Container Registry
Azure DevOps
Azure Kubernetes Service (AKS)
GitHub

重要

AKS と Azure DevOps を使用したマイクロサービスは、Azure DevOps を使用した CI/CD パイプラインの設計のバリアントです。 この記事では、Azure Pipelines を使用して AKS アプリケーションをデプロイする AKS 固有のファセットに重点を置いて説明します。

考えられるユース ケース

Azure Pipelines を使用して AKS アプリケーションをデプロイします。

Architecture

Architecture diagram of an AKS CI/CD pipeline using Azure Pipelines.

Azure パイプラインのアーキテクチャ図。 この図は、次の手順を示しています。1. コードの変更を Azure DevOps Git リポジトリにプッシュするエンジニア。 2. Azure DevOps PR パイプラインがトリガーされます。 このパイプラインには、リンティング、復元、ビルド、単体テストのタスクが示されています。 3. Azure DevOps CI パイプラインがトリガーされます。 このパイプラインには、シークレットの取得、リンティング、復元、ビルド、単体テスト、統合テスト、ビルド成果物の公開およびコンテナー イメージの公開というタスクが示されています。 3. 非運用 Azure Container Registry に発行されるコンテナー イメージ。 4. Azure DevOps CD パイプラインがトリガーされます。 このパイプラインには、ステージングへのデプロイ、受け入れテスト、コンテナー イメージの昇格、手動による介入、およびリリースというタスクが示されています。 5. ステージング環境にデプロイする CD パイプラインを示しています。 6. 運用 Azure Container Registry に昇格されるコンテナー イメージを示しています。 7 は、運用環境にリリースされた CD パイプラインを示しています。 8. テレメトリを Azure Monitor に転送する Container Insights を示しています。 9. Azure Monitor、Azure Application Insights、Azure Analytics ワークスペースを利用して、パイプラインを監視するオペレーターを示しています。

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

  1. Azure Repos Git への pull request (PR) によって PR パイプラインがトリガーされます。 このパイプラインでは、コードのリンティング、ビルド、単体テストなどの高速品質チェックが実行されます。 いずれかのチェックが失敗した場合、PR はマージされません。 このパイプラインの正常な実行の結果は、PR の正常なマージです。
  2. Azure Repos Git へのマージによって CI パイプラインがトリガーされます。 このパイプラインでは、PR パイプラインと同じタスクが実行されますが、いくつかの重要な追加があります。 CI パイプラインでは統合テストが実行されます。 これらのテストにはシークレットが必要なため、このパイプラインは Azure Key Vault からこれらのシークレットを取得します。
  3. このパイプラインが正常に実行された結果、非運用 Azure Container Registry でのコンテナー イメージの作成と発行が行われます。
  4. CI パイプラインが完了すると、CD パイプラインがトリガーされます
  5. CD パイプラインでは、ステージング AKS 環境に YAML テンプレートがデプロイされます。 テンプレートでは、非運用環境からのコンテナー イメージを指定します。 その後、パイプラインでは、ステージング環境に対して受け入れテストを実行してデプロイを検証します。 テストが成功した場合は、手動検証タスクを実行することで、人間がデプロイを検証してパイプラインを再開する必要があります。 手動検証の手順は省略可能です。 一部の組織では自動的にデプロイされます。
  6. 手動による介入が再開されると、CD パイプラインでは、非運用 Azure Container Registry から運用レジストリにイメージが昇格されます。
  7. CD パイプラインでは、運用 AKS 環境に YAML テンプレートがデプロイされます。 テンプレートでは、運用環境のコンテナー イメージを指定します。
  8. Container Insights では、パフォーマンス メトリック、インベントリ データ、正常性状態の情報が、コンテナー ホストとコンテナーから Azure Monitor に定期的に転送されます。
  9. Azure Monitor では、オペレーターが正常性、パフォーマンス、使用状況データを分析できるように、ログやメトリックなどの監視データを収集します。 Application Insights は、トレースなど、アプリケーション固有のすべての監視データを収集します。 Azure Log Analytics は、そのすべてのデータを格納するために使用されます。

コンポーネント

  • Container Insights では、ログとメトリックとログが収集され、Azure Monitor に転送されます。
  • Azure Container Registry は、Azure 上のマネージド プライベート コンテナー レジストリ サービスです。 Container Registry を使用して、プライベート コンテナー イメージを格納します。
  • Azure Kubernetes Service は、Azure によって正常性の監視やメンテナンスなどの重要なタスクが処理されるマネージド Kubernetes サービスです。
  • Defender for DevOps は、スタティック分析を実行し、AKS の開発とデプロイの複数のパイプライン間でセキュリティ体制を可視化するのに役立ちます。

次のステップ