次の方法で共有


DevTest Labs と DevOps CI/CD パイプラインを統合する

DevOps は、ソフトウェア開発 (Dev) とシステム運用 (Ops) を統合するソフトウェア開発手法です。 このシステムは、ビジネス目標に合った新しいソフトウェア機能、更新プログラム、修正プログラムを提供するのに役立ちます。

DevOps の手法では、次のことも説明します。

  • 目標、使用パターン、顧客フィードバックに基づいて新機能を設計する。
  • 問題が発生した場合のシステムの修正、回復、およびセキュリティ強化。

DevOps 手法の 1 つのコンポーネントは、継続的インテグレーション (CI) パイプラインと継続的デリバリー (CD) パイプラインです。 CI/CD パイプラインは、ソース管理のコミットから、システムを生成するための一連の手順を通じて情報、コード、およびリソースを移動します。 手順には、ビルド、テスト、リリースが含まれます。

CI/CD パイプラインで Azure DevTest Labs を使用できます。 この記事では、エンタープライズ環境での CI/CD ビルド、テスト、リリース パイプラインでの DevTest Labs の使用について説明します。

DevOps ワークフローで DevTest Labs を使用する利点

ラボは、機能領域で作業しているチームのみが使用する必要があります。 このフォーカスにより、変更の高速化が可能になりますが、悪影響を小さなグループに制限します。 変更や問題は、ラボ環境で発生しますが、他に影響を与える必要はありません。

このフォーカスにより、ツール、スクリプト、Azure Resource Manager (ARM) テンプレートなどの領域固有のリソースを共有することもできます。 開発者は、共有リソースを使用して、必要なすべてのコード、ツール、構成を含む仮想マシン (VM) を作成できます。 ARM テンプレートは、適切な Azure リソースを使用してラボ VM とラボ環境を作成します。 テンプレートは、リソースを動的に作成するか、カスタマイズを使用して基本イメージを作成します。

たとえば、製品が顧客のコンピューターにインストールされるスタンドアロン システムであるシナリオを考えてみましょう。 迅速な内部ループ コード テストを有効にするために、DevTest Labs は、顧客のソフトウェア、成果物、構成がインストールされているラボ VM を作成できます。

DevOps ワークフローでラボを使用する利点を次に示します。

  • ラボをコンポーネントとして使用すると、特定のエコシステムが限られたユーザーに関連付けられます。 通常、共通領域または特定の機能で作業するチームまたはグループには、ラボが割り当てられます。 Usually, a team or group working in a common area or a specific feature has a lab assigned to them.

  • クラウドでのインフラストラクチャ レプリケーション。 開発者は、ソース コードとツールを含む開発者 VM を含む開発エコシステムをすばやく設定できます。 より高速な内部ループ開発を可能にするために、開発者は運用環境の構成とほぼ同じ環境を作成することもできます。

  • 非同期テストを有効にするには、CI/CD パイプライン内のラボで、複数の異なる実稼働前環境またはマシンを同時に実行できます。 ラボでは、さまざまなサポート インフラストラクチャをデプロイおよび管理したり、エージェントを構築したりできます。 You can deploy and manage different support infrastructures and build agents in a lab.

CI/CD パイプラインでラボを使用する

CI/CD パイプラインは、重要な DevOps コンポーネントです。 パイプラインは、開発者の pull request からのコードを既存のコードと統合し、コードを運用エコシステムにデプロイします。 DevTest Labs の統合では、すべてのリソースがラボ内にある必要はありません。 たとえば、より永続的なリソースのために、ラボの外部に Jenkins ホストを設定できます。 CI/CD パイプラインにラボを統合する具体的な例を次に示します。

Build

ビルド パイプラインは、一緒にテストし、リリースに渡すコンポーネントのパッケージを作成します。 インフラストラクチャを動的に構築することで、より優れた制御が可能になります。 ラボは、ビルド エージェントやその他のサポート リソースの場所として、ビルド パイプラインの一部にすることができます。 DevTest Labs では、ラボへのアクセスを制限できます。 これにより、ビルド エージェントのセキュリティが向上し、偶発的な破損の可能性が軽減されます。

ラボには複数の環境を含めることができるため、各ビルドは非同期的に実行できます。 ビルド ID は、特定のビルド内のリソースを一意に識別する環境情報の一部です。

Test

CI/CD パイプラインでは、VM や環境などの DevTest Labs リソースの作成を自動化して、自動化された手動テストを行うことができます。 パイプラインでは、ビルド情報成果物または数式を使用して、異なるカスタム テスト構成を持つ VM を作成します。

Release

リリース プロセスでは、コードがデプロイされる前に、検証に DevTest Labs を使用できます。 このプロセスはテストに似ています。 運用リソースは DevTest Labs にデプロイしないでください。

Customization

Azure DevOps Services のコンポーネントである Azure Pipelines には、特定のラボで VM と環境を操作するための既存のタスクが用意されています。 Azure Pipelines は、CI/CD パイプラインを管理する 1 つの方法です。 REST API の呼び出し、PowerShell スクリプトの実行、または Azure CLI の使用をサポートする任意のシステムにラボを統合できます。

一部の CI/CD パイプライン マネージャーには、Azure および DevTest Labs リソースを管理できる既存のオープン ソース プラグインがあります。 パイプラインのニーズに合わせてカスタム スクリプトを使用する必要がある場合があります。 タスクを実行するときは、ラボへアクセスするための適切なロール (たいていは共同作成者) を持つサービス プリンシパルを使用します。

Next steps