AKS を使用したマイクロサービス

Container Registry
Azure DevOps
Kubernetes Service
GitHub

ソリューションのアイデア

この記事にさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

マイクロサービス ベースのアーキテクチャのデプロイと管理を簡略化するには、AKS を使用します。 AKS を使うと、水平スケーリング、自己修復、負荷分散、シークレット管理が合理化されます。

アーキテクチャ

アーキテクチャ図 このアーキテクチャの SVG をダウンロードしてください。

Data flow

  1. 開発者が Visual Studio などの IDE を使用して変更を GitHub にコミットします。
  2. GitHub によって Azure DevOps 上で新しいビルドがトリガーされます。
  3. Azure DevOps によってマイクロサービスがコンテナーとしてパッケージ化され、Azure コンテナー レジストリにプッシュされます。
  4. コンテナーは AKS クラスターにデプロイされます。
  5. ユーザーは、アプリと Web サイトを使用してサービスにアクセスします。
  6. Azure Active Directory を使用して、リソースへのアクセスをセキュリティで保護します。
  7. マイクロサービスでは、データベースを使用して情報を格納および取得します。
  8. 管理者が別の管理ポータルを使用してアクセスします。

Components

  • Azure DevOps によってマイクロサービスがコンテナーとしてパッケージ化されます。
  • Azure Kubernetes Service は、コンテナー化されたアプリケーションのデプロイ、スケーリング、管理のためのフル マネージド Kubernetes クラスターを提供します。
  • Azure Container Registry は、Azure 上の管理されたプライベートな Docker レジストリ サービスです。 Container Registry は、クラスターにデプロイされたプライベート Docker イメージを格納するために使用します。
  • GitHub Enterprise には、オープンソース プロジェクトと内部ソース プロジェクトのコラボレーションに使用できるコードホスティング プラットフォームが用意されています。
  • Azure Pipelines は Azure DevOps Services の一部であり、自動化されたビルド、テスト、およびデプロイを実行するために使用されます。 コード リポジトリでコードが変更されるたび、Azure DevOps パイプラインによってコンテナー イメージが継続的にビルドされ、Azure Container Registry にプッシュされ、マニフェストが Azure Kubernetes Service クラスターにデプロイされます。
  • Azure Active Directory。 AKS を Azure Active Directory と統合すると、Kubernetes RBAC のサブジェクトとして Azure AD ユーザー、グループ、またはサービス プリンシパルを使用して、AKS リソースを安全に管理できます。
  • Azure Database for MySQL は、ステートフル データを格納する Azure 上の、フル マネージドの MySQL Database サービスです。
  • Azure SQL Database: クラウド向けに構築されたフル マネージドのインテリジェントなリレーショナル データベース サービスです。 SQL Database を使用すると、最新のクラウド アプリケーションのための、高可用性かつ高パフォーマンスのデータ ストレージ層を作成できます。
  • Azure Cosmos DB: スケーラブルでハイ パフォーマンスのアプリケーションを構築および最新化するためのフル マネージド NoSQL データベース サービスです。

次のステップ

Kubernetes で復習が必要な場合は、Azure Kubernetes Service (AKS) 上の Kubernetes に複数コンテナー アプリケーションをデプロイする Azure Kubernetes Service ワークショップを完了してください。