イントロダクション
Azure Pipelines を使用した Docker コンテナーのデプロイの自動化に関するページで説明されている手順に従うことで、リリース パイプラインを拡張して、ASP.NET Core アプリケーションを Docker コンテナーとしてビルドして発行し、Azure App Service にデプロイすることができました。 このコンテナー ベースのプロジェクトへの移行により、製品チームにとって多くの利点が得られます。 さらに、コンテナ技術の導入は、将来のさまざまな革新的な機会を開く可能性を秘めています。
開発組織が拡大するにつれて、提供するソリューションの複雑さも増します。 さまざまな製品やサービスが相互に依存するようになり、特定のアプリケーション内のさまざまなコンポーネントに対して異なる開発と運用の要件が生じます。 アーキテクチャの効率を高める方法の 1 つは、これらのコンポーネントを個別のマイクロサービスにリファクタリングすることです。
マイクロサービスは、自己完結型であり、特定のビジネス機能を満たすように設計された、小規模で独立したサービスです。 コンテナーは、これらのサービスを構築およびデプロイするための優れた技術的基盤を提供しますが、新しい疑問が生じます。使用中のすべてのコンテナーを管理するにはどうすればよいですか?
ここでは、Kubernetes などのオーケストレーション テクノロジが役立ちます。 Kubernetes は、コンテナー化されたワークロードとサービスを管理するように設計されたプラットフォームです。 これは、さまざまな環境でデプロイ、統合、監視する必要があるコンテナーの数が増えている組織にとって優れた選択肢です。
このモジュールでは、Tailspin Toys Web チームに参加して、Azure で Kubernetes を使用する 1 つの方法について説明します。 リリース パイプラインを更新して、Kubernetes クラスターに複数の Docker コンテナーをビルド、発行、デプロイする方法について説明します。
このモジュールでは、コンテナー アプリのビルドとデプロイに必要な主要なタスクに焦点を当てていますが、Kubernetes へのコンテナーデプロイでは、Azure Pipelines の他のすべての機能を引き続き使用できる点を理解しておくことが重要です。 テストを統合し、複数のステージを定義し、既存のアプリケーションと同様に他のタスクを実行できます。 ここでは、これらのタスクを省略して、作業に集中します。
学習目標
このモジュールを完了すると、次のことができるようになります。
- Kubernetes の利点と、それを使用するタイミングについて説明します。
- Kubernetes クラスターをサポートする Azure リソースを作成します。
- Kubernetes クラスターに複数の Docker コンテナーをビルド、発行、デプロイするための基本的なリリース パイプラインを更新します。
- プロジェクトのビルドと配置を監視します。
[前提条件]
このラーニング パスのモジュールは段階的なプロセスになっています。 最初からこのシリーズの進行に従うには、「Azure DevOps の概要」と「Azure DevOps を使用したアプリケーションのビルド」ラーニング パスを完了します。
最初からこのラーニング パスを開始するには、「 Azure DevOps を使用してアプリケーションをデプロイする」のリンクに従います。 このモジュールでは、 Azure Pipelines を使用した Docker コンテナーのデプロイの自動化 が中止される場所を取り上げます。
このモジュールでは、Kubernetes に関する基本的な知識があることを前提としていますが、その知識は必要ありません。 このトピックを初めて使用する場合は、まず Azure ラーニング パスのラーニング パスでコンテナーの管理 を完了することをお勧めします。
注
Azure Pipelines では、さまざまな 言語とアプリケーションの種類がサポートされています。 このモジュールでは、.NET アプリケーションを使用しますが、ここで学習したパターンを、お気に入りのプログラミング言語とフレームワークを使用する独自のプロジェクトに適用できます。
チーム紹介
以前のモジュールでは、Tailspin Toys の Space Game Web チームに会いました。 Space Game Web チームは、このモジュールであなたと協力するために再びここにいます。
Andy は開発リーダーです。
Amita は QA 担当です。
Tim は運用担当です。
Mara は加わったばかりの開発者であり、Andy の部下です。
Mara には DevOps の使用経験があります。 彼女は、Azure DevOps を使用するより自動化されたプロセスをチームが採用するのを支援しています。