Azure のランディング ゾーン用のテスト駆動開発Test-driven development for landing zones in Azure

ランディング ゾーン用のテスト駆動開発 (TDD) に関する前の記事で説明したように、TDD サイクルは、クラウド導入計画を実現するために必要な特定の機能の受け入れ基準を検証するテストから始まります。As outlined in the previous article on test-driven development (TDD) for landing zones, TDD cycles begin with a test that validates the acceptance criteria of a specific feature required to deliver the cloud adoption plan. ランディング ゾーンの展開またはリファクタリングをテストして、受け入れ基準が満たされていることを検証できます。Expanding or refactoring the landing zone can then be tested to validate that the acceptance criteria have been met. この記事では、テスト駆動開発サイクルを自動化するための、Azure のクラウドネイティブのツールチェーンの概要を示します。This article outlines a cloud-native toolchain in Azure to automate test-driven development cycles.

ランディング ゾーンの TDD サイクルをサポートするための Azure ツールAzure tools to support landing zone TDD cycles

Azure のテスト駆動開発ツール 図 1: Azure のテスト駆動開発ツール。Test-driven development tools in Azure Figure 1: Test-driven development tools in Azure.

Azure ネイティブのガバナンス製品とサービスのツールチェーンは、ランディング ゾーンを作成するために、テスト駆動開発に簡単に統合できます。The toolchain of Azure-native governance products and services can be easily integrated into test-driven development for the creation of landing zones. これらの各ツールは特定の目的に対応しているため、TDD サイクルに合わせてランディング ゾーンを簡単に開発、テスト、デプロイできます。Each of these tools serves a specific purpose, making it easier to develop, test, and deploy your landing zone in alignment with TDD cycles.

Microsoft が提供する、TDD を促進するためのテストとデプロイのテンプレートMicrosoft-provided test and deployment templates to accelerate TDD

次の例は、ガバナンスのために Microsoft によって提供されています。The following examples are provided by Microsoft for governance purposes. それぞれを、ランディング ゾーンのテスト駆動開発サイクルでテストまたは一連のテストとして使用できます。Each can be used as a test or series of tests in a test-driven development cycle for landing zones. 以降のセクションで、各ツールについて詳しく説明します。The following sections provide more information on each tool:

  • Azure Blueprints では、さまざまなブループリントのサンプルが提供されます。これには、テストのポリシーとデプロイ用のテンプレートが含まれます。Azure Blueprints provides various blueprint samples, including policies for testing and templates for deployment. これらのブループリントのサンプルにより、TDD サイクルにおける開発、デプロイ、およびテストの作業を加速させることができます。These blueprint samples can accelerate development, deployment, and testing efforts in TDD cycles.
  • Azure Policy には組み込みのポリシー イニシアティブも含まれています。これを使用すると、ランディング ゾーンの完了の完全な定義をテストして適用することができます。Azure Policy also includes built-in policy initiatives, which could be used to test and enforce the full definition of done for a landing zone. Azure Policy には、完了の定義内の個々の受け入れ基準を満たすことができる組み込みのポリシー定義が含まれています。Azure Policy includes built-in policy definitions that can meet individual acceptance criteria within the definition of done.
  • Azure Graph には高度なクエリのサンプルが含まれていて、高度なテスト シナリオ用にランディング ゾーン内にワークロードをデプロイする方法を理解するために使用できます。Azure Graph includes advanced query samples, which can be used to understand how the workloads are deployed within a landing zone for advanced testing scenarios.
  • Azure クイックスタート テンプレートには、ランディング ゾーンとワークロードのデプロイの迅速化に役立つソース コードのテンプレートが用意されています。Azure quickstart templates provides of source code templates to aid in accelerating landing zone and workload deployment.

上記の例は、TDD サイクルを高速化するためのツールとして使用できます。The examples listed above can be used as tools for accelerating TDD cycles. これらは、次のセクションのガバナンス ツールで実行されます。これにより、クラウド プラットフォーム チームが独自のソース コードとテストを作成できます。They run on the governance tools in the following sections and allow cloud platform teams to create their own source code and tests.

TDD サイクルを高速化できる Azure ガバナンス ツールAzure governance tools that can accelerate TDD cycles

Azure Policy:デプロイまたはデプロイの試行がガバナンス ポリシーから逸脱したときに、Azure Policy によって自動的に検出、保護、解決が可能です。Azure Policy: When deployments or attempted deployments deviate from governance policies, Azure Policy can provide automated detection, protection, and resolution. ただし、Azure Policy には、完了の定義で受け入れ基準をテストするための主要なメカニズムも用意されています。But Azure Policy also provides the primary mechanism for testing acceptance criteria in your definition of done. TDD サイクルでは、単一の受け入れ基準をテストするためのポリシー定義を作成できます。In a TDD cycle, a policy definition can be created to test a single acceptance criteria. 同様に、すべての受け入れ基準は、サブスクリプション全体に割り当てられたポリシー イニシアティブに追加できます。Likewise, all acceptance criteria can be added to a policy initiative assigned to the entire subscription. このアプローチは、ランディング ゾーンを変更する前に赤テストのメカニズムを提供します。This approach provides a mechanism for red tests before modifying the landing zone. ランディング ゾーンは、完了の定義を満たすと、今後のリリースでテストが失敗する可能性のあるコードの変更を回避するために、テスト条件を適用するために使用できます。Once the landing zone meets the definition of done, it can be used to enforce the test criteria to avoid code changes that would cause the test to fail in future releases.

Azure Blueprints:Azure Blueprint は、ポリシーとその他のデプロイ ツールを、複数のランディング ゾーンに割り当てることができる反復可能なパッケージにグループ化します。Azure Blueprints: Azure blueprint groups policies and other deployment tools into a repeatable package that can be assigned to multiple landing zones. ブループリントでは、複数の導入作業で共通の完了の定義を共有する場合に有用であることがわかり、時間の経過に伴って更新できます。Blueprints prove useful when multiple adoption efforts share common definitions of done, which you may want to update over time. また、ランディング ゾーンの以降の展開とリファクタリングの作業の際のデプロイにも役立ちます。It can also help with deployment during subsequent efforts to expand and refactor landing zones.

Azure Resource Graph:Resource Graph には、ランディング ゾーン内にデプロイされた資産に関する情報に基づいて、データ ドリブン テストを作成するためのクエリ言語が用意されています。Azure Resource Graph: Resource Graph provides a query language for creating data-driven tests based on information about the assets deployed within a landing zone. このツールでは、後で導入計画の中で、ワークロード資産と基になるクラウド環境との間の相互作用に基づいて、複雑なテストを定義することもできます。Later in the adoption plan, this tool can also define complex tests based on the interactions between workload assets and the underlying cloud environment.

Azure Resource Manager テンプレート: これらのテンプレートは、Azure にデプロイされているすべての環境の主要なソース コードを提供します。Azure Resource Manager templates: These templates provide the primary source code for any environment deployed in Azure. Terraform などのいくつかのサードパーティ製のツールでは、独自の ARM テンプレートが生成され、Azure Resource Manager に送信されます。Some third-party tools like Terraform generate their own ARM templates, which are then submitted to Azure Resource Manager.

Azure Resource Manager:Resource Manager は、ビルド関数とデプロイ機能に一貫したプラットフォームを提供します。Azure Resource Manager: Resource Manager provides a consistent platform for build and deploy functions. このプラットフォームでは、ソース コード定義に基づいてランディング ゾーンをデプロイできます。This platform can deploy landing zones based on source code definitions.

次のステップNext steps

最初のランディング ゾーンのリファクタリングを開始するため、基本的なランディング ゾーンに関する考慮事項を評価します。To begin refactoring your first landing zone, evaluate basic landing zone considerations.