Azure Deployment Environments の主要な概念

この記事では、Azure Deployment Environments の主要な概念とコンポーネントについて説明します。 この知識は、シナリオに合わせて環境をより効率的にデプロイするのに役立ちます。

Deployment Environments について学習すると、特定のアーキテクチャ コンポーネントを共有する補完的なサービスである Microsoft Dev Box のコンポーネントも見つかる場合があります。 Dev Box では、作業に必要なツールが構成された、Dev Box と呼ばれるクラウドベースの開発ワークステーションが開発者に提供されます。

この図は、Deployment Environments の主要なコンポーネントと、それらが相互にどのように関連しているかを示しています。 各コンポーネントの詳細については、次のセクションで説明します。

Deployment Environments の主要なコンポーネントを示す図。

デベロッパー センター

デベロッパー センターとは、同様の設定を必要とするプロジェクトのコレクションです。 プラットフォーム エンジニアは、デベロッパー センターを使って次のことができます。

  • カタログを使用して、プロジェクトで使用できるコードとしてのインフラストラクチャ (IaC) テンプレートを管理します。
  • 環境の種類を使用して、開発チームが作成できる環境の種類を構成します。

Microsoft Dev Box も、デベロッパー センターを使用してリソースを整理します。 組織は両方のサービスに同じデベロッパー センターを使用できます。

プロジェクト

Deployment Environments では、プロジェクトは組織内のチームまたはビジネス機能を表します。 プロジェクトをデベロッパー センターに関連付けると、デベロッパー センターのすべての設定がそのプロジェクトに自動的に適用されます。

各プロジェクトは、1 つのデベロッパー センターにのみ関連付けることができます。 プラットフォーム エンジニアは、開発チームに適した環境の種類を指定することで、プロジェクトの環境を構成できます。 特定の開発チームで環境定義を使用できるようにするために、プロジェクト管理者はカタログをプロジェクトにアタッチできます。

開発者が独自のデプロイ環境を作成できるようにするには、Deployment Environments ユーザー ロールを割り当てることで、プロジェクトへのアクセス権を開発者に提供する必要があります。

同じデベロッパー センター内に Deployment Environments 用のプロジェクトと Microsoft Dev Box リソース用のプロジェクトを構成できます。

環境

環境は、アプリケーションがデプロイされる Azure リソースのコレクションです。 たとえば、Web アプリケーションをデプロイするには、Azure App ServiceAzure Key VaultAzure Cosmos DBストレージ アカウントで構成される環境を作成できます。 環境は、Azure サービスとしてのプラットフォーム (PaaS) とサービスとしてのインフラストラクチャ (IaaS) の両方のリソース (Azure Kubernetes Service (AKS) クラスター、仮想マシン、データベースなど) で構成できます。

ID

Azure Deployment Environments では、マネージド ID を使用して特権の昇格機能を提供します。 ID は、Azure リソースが作成されるターゲット サブスクリプションへのアクセス権を付与することなく、開発チームにセルフサービス機能を提供するのに役立ちます。

デベロッパー センターまたはプロジェクトにアタッチされたマネージド ID には、カタログに接続するための適切なアクセス権を付与する必要があります。 プロジェクト レベルで構成されているターゲット デプロイ サブスクリプションへのアクセス権を共同作成者とユーザー アクセス管理者に許可する必要があります。 Azure Deployment Environment サービスは、特定のマネージド ID を使用して、開発者に代わってデプロイを実行します。

デベロッパー センターの環境の種類

開発、テスト、サンドボックス、運用前、運用など、開発チームが作成できる環境の種類を定義できます。 Azure Deployment Environments では、社内で使用されている命名規則に従って、環境の種類に柔軟に名前を付けることができます。 開発チームの特定のニーズに基づいて、さまざまな環境の種類の設定を構成できます。

プロジェクトの環境の種類

プロジェクトの環境の種類は、デベロッパー センター用に構成する環境の種類のサブセットです。 これらは、特定の開発チームが作成できる環境の種類を事前に構成するのに役立ちます。 プロジェクト単位で環境の種類ごとに Azure リソースが作成されるターゲット サブスクリプションを構成できます。

プロジェクトの環境の種類を使用すると、環境に適切なポリシー セットを自動的に適用でき、開発チームから Azure のガバナンスに関連した概念を抽象化するのに役立ちます。 このサービスでは、次の事前構成を柔軟に行うこともできます。

  • デプロイの実行に使用されるマネージド ID
  • 特定の環境が作成された後に開発チームが取得するアクセス レベル。

カタログ

カタログは、開発チームが環境を作成するために、IaC テンプレート一式をキュレーションして提供するのに役立ちます。 カタログをデベロッパー センターにアタッチすると、環境定義をデベロッパー センターに関連付けられているすべてのプロジェクトで使用できるようになります。 カタログをプロジェクトにアタッチして、その特定のプロジェクトに環境定義を提供することもできます。

Microsoft では、一連のサンプル環境定義を含む "クイック スタート" カタログを提供しています。 クイック スタート カタログをデベロッパー センターまたはプロジェクトにアタッチして、これらの環境定義を開発者が使用できるようにすることができます。 サンプル環境定義は、ニーズに合わせて変更できます。

または、独自のカタログをアタッチすることもできます。 GitHub リポジトリAzure DevOps Services リポジトリのどちらでも、カタログとしてアタッチできます。

デプロイ環境では、リポジトリの指定されたフォルダーをスキャンして、環境定義を検索します。 その環境定義は、デベロッパー センターに関連付けられているすべてのプロジェクトで使用できるようになります。

環境定義

環境定義は、IaC テンプレートと、マニフェストとして機能する環境ファイルの組み合わせです。 テンプレートは環境を定義し、環境ファイルはテンプレートに関するメタデータを提供します。 開発チームは、カタログで指定された項目を使用して、Azure で環境を作成します。

組み込みのロール

Azure Deployment Environments では、次の 3 つの組み込みロールがサポートされます。

  • デベロッパー センター プロジェクト管理者: プロジェクトに関する環境を作成して環境の種類を管理します。
  • Deployment Environments ユーザー: 適切なアクセス権に基づいて環境を作成します。
  • Deployment Environments 閲覧者: 他のユーザーが作成した環境を読み取ります。

Microsoft Dev Box と共有されるリソース

Azure Deployment Environment と Microsoft Dev Box は、特定のアーキテクチャ コンポーネントを共有する補完的なサービスです。 デベロッパー センターとプロジェクトは両方のサービスに共通しており、企業内のリソースを整理するのに役立ちます。 同じデベロッパー センター内に Deployment Environments 用のプロジェクトと Dev Box リソース用のプロジェクトを構成できます。

デプロイ環境と Dev Box に共通するコンポーネントの詳細については、「Microsoft Dev Box と Azure Deployment Environment に共通するコンポーネント」を参照してください。