Microsoft Dev Box のチーム カスタマイズ
開発者が新しいプロジェクトやチームを立ち上げるのは、複雑で時間がかかります。 Microsoft Dev Box の "チーム カスタマイズ" 機能は、開発環境のセットアップを効率化するのに役立ちます。 チーム カスタマイズでは、必要なアプリケーション、ツール、リポジトリ、コード ライブラリ、パッケージ、ビルド スクリプトを使って、すぐにコード化できるワークステーションを構成できます。
チーム カスタマイズを使うと、Packer や Azure 仮想マシン (VM) イメージ テンプレートのようなイメージング ソリューションのセットアップに投資しなくても、開発チームごとに共有される Dev Box 構成を定義できます。 チーム カスタマイズで提供される軽量の代替手段を使うと、中心となるプラットフォーム エンジニアリング チームは、Dev Box の構成管理を、それを使うチームに委任できます。
また、チーム カスタマイズには、チームの Dev Box のカスタマイズをカスタム イメージにフラット化して最適化するための組み込みの方法もあります。 同じカスタマイズ ファイルを使用でき、追加のインフラストラクチャを管理したり、イメージ テンプレートを保持したりする必要はありません。
重要
Dev Box のチーム カスタマイズ機能は現在プレビュー段階です。 プレビュー状態の詳細については、「Microsoft Azure プレビューの追加の使用条件」を参照してください。 このドキュメントでは、ベータ版、プレビュー版、またはその他のまだ一般提供されていない Azure 機能に適用される法律条項を規定しています。
Dev Box のチーム カスタマイズのしくみ
Dev Box のチーム カスタマイズを組織用に構成するときは、慎重な計画と十分な情報に基づく決定が不可欠です。 次の図は、プロセスの概要と重要な意思決定ポイントを示しています。
- デベロッパー センターを構成する:
- プロジェクト レベルのカタログを有効にします。
- プロジェクト管理者にアクセス許可を割り当てます。
- 再利用可能なカスタム コンポーネントでカタログを使うかどうかを決定する:
- デベロッパー センター:
- PowerShell または WinGet ステートメントを使います。
- 独自のカタログ:
- Azure Repos または GitHub にホストします。
- タスクの追加。
- デベロッパー センターまたはプロジェクトにアタッチします。
- デベロッパー センター:
- カスタマイズ ファイルを作成する:
- imagedefinition.yaml という名前のカスタマイズ ファイルを作成します。
- 開発ボックス プール内のイメージを指定する:
- 開発ボックス プールを作成または変更し、イメージ定義として imagedefinition.yaml を指定します。
- イメージ定義の使用方法の選択:
- チーム カスタマイズに最適化します。
- 開発ボックスを作成するたびにビルドします。
- 開発ボックス プールの作成:
- 開発者ポータルを使って、構成済みのプールから開発ボックスを作成します。
カスタマイズ ファイルとは
Dev Box のカスタマイズでは、YAML 形式のファイルを使って、開発者が開発ボックスを作成するときにカタログから適用するタスクの一覧を指定します。 これらのタスクは、カタログ タスクを特定し、パラメーター (インストールするソフトウェアの名前など) を指定するものです。 その後、開発者がカスタマイズ ファイルを使用できるようにします。
プライベート リポジトリをクローンするためには、または作成したカスタム タスクでアクセス トークンが必要な場合は、Azure キー コンテナーのシークレットをカスタマイズ ファイルで使用できます。
タスクとは
Dev Box のカスタマイズ タスクは PowerShell スクリプトのラッパーです。 それを使って、チームがカスタマイズで使用できる再利用可能なコンポーネントを定義します。 WinGet と PowerShell をプリミティブ タスクとして利用できます。
タスクを作成するときは、システム コンテキストで実行する必要があるものと、(サインイン後に) ユーザー コンテキストで実行できるものを決定します。 チーム カスタマイズは、両方のコンテキストで実行できます。 個別カスタマイズは、ユーザー コンテキストでのみ実行できます。
チーム カスタマイズと個別カスタマイズの違い
個々の開発者は、開発環境を制御する開発ボックスを作成するときに、YAML ベースのカスタマイズ ファイルをアタッチできます。 開発者は、個別カスタマイズを個人の設定とアプリにのみ使う必要があります。 個別カスタマイズ ファイルで指定されたタスクは、サインイン後のユーザー コンテキストでのみ実行されます。
開発者チームで共通の YAML ファイルを共有できますが、この方法は非効率的でエラーが発生しやすくなります。 コンプライアンス ポリシーに反する場合もあります。 Dev Box のチーム カスタマイズでは、開発者チーム リーダー、プロジェクト管理者、デベロッパー センター管理者が開発ボックス プール内のカスタマイズ ファイルを事前構成するためのワークフローが提供されます。 このようにすると、開発ボックスを作成する開発者は、カスタマイズ ファイルを見つけてアップロードする必要がなくなります。
キーワード
Dev Box のチーム カスタマイズを使って作業するときは、次の重要な用語についてよく理解しておく必要があります。
- カタログ:
- コード リポジトリ、またはカスタマイズ ファイルの個別のリポジトリに保存されます。
- GitHub または Azure Repos でホストされています。
- 開発者チームがタスクにアクセスできるようにするため、デベロッパー センターまたはプロジェクトにアタッチされます。
- タスク:
- ソフトウェアのインストールなどの特定のアクションを実行します。
- 1 つ以上の PowerShell スクリプトと task.yaml ファイルで構成されます。
- カスタマイズ ファイル:
- 開発ボックス用のタスクを定義し、YAML ベースです。
- 開発ボックスの基本イメージとカスタマイズ オプションが指定されており、チーム全体で共有されるイメージ定義を提供します。