Testgesteuerte Entwicklung für Zielzonen in AzureTest-driven development for landing zones in Azure

Wie im vorhergehenden Artikel über testgesteuerte Entwicklung (Test-Driven Development, TDD) für Zielzonen beschrieben, beginnen TDD-Zyklen mit einem Test, der die Akzeptanzkriterien eines bestimmten Features validiert, das für die Bereitstellung des Cloudeinführungsplans erforderlich ist.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. Die Erweiterung oder das Refactoring der Zielzone kann dann getestet werden, um zu bestätigen, dass die Akzeptanzkriterien erfüllt sind.Expanding or refactoring the landing zone can then be tested to validate that the acceptance criteria have been met. In diesem Artikel wird eine cloudnative Toolkette in Azure vorgestellt, um testgesteuerte Entwicklungszyklen zu automatisieren.This article outlines a cloud-native toolchain in Azure to automate test-driven development cycles.

Azure-Tools zur Unterstützung der TDD-Zyklen von ZielzonenAzure tools to support landing zone TDD cycles

Testgesteuerte Entwicklungstools in Azure

Abbildung 1: Tools für die testgesteuerte Entwicklung in AzureFigure 1: Test-driven development tools in Azure.

Die Toolkette der Azure-nativen Governanceprodukte und -dienste lässt sich problemlos in die testgesteuerte Entwicklung für die Erstellung von Zielzonen integrieren.The toolchain of Azure-native governance products and services can be easily integrated into test-driven development for the creation of landing zones. Jedes dieser Tools dient einem bestimmten Zweck, wodurch die Entwicklung, das Testen und die Bereitstellung Ihrer Zielzone in Übereinstimmung mit TDD-Zyklen erleichtert wird.Each of these tools serves a specific purpose, making it easier to develop, test, and deploy your landing zone in alignment with TDD cycles.

Von Microsoft bereitgestellte Test- und Bereitstellungsvorlagen zum Beschleunigen von TDDMicrosoft-provided test and deployment templates to accelerate TDD

Die folgenden Beispiele werden von Microsoft für Governancezwecke zur Verfügung gestellt.The following examples are provided by Microsoft for governance purposes. Sie können jeweils als Test oder Testreihe in einem testgesteuerten Entwicklungszyklus für Zielzonen verwendet werden.Each can be used as a test or series of tests in a test-driven development cycle for landing zones. Die folgenden Abschnitte enthalten weitere Informationen zu den einzelnen Tools:The following sections provide more information on each tool:

  • Azure Blueprints bietet verschiedene Blaupausenbeispiele, die Richtlinien für Tests und Vorlagen für die Bereitstellung enthalten.Azure Blueprints provides various blueprint samples, including policies for testing and templates for deployment. Diese Blaupausenmuster können den Entwicklungs-, Bereitstellungs- und Testaufwand in TDD-Zyklen beschleunigen.These blueprint samples can accelerate development, deployment, and testing efforts in TDD cycles.
  • Azure Policy umfasst auch integrierte Richtlinieninitiativen, die dazu dienen könnten, die vollständige „Definition of Done“ für eine Zielzone zu testen und durchzusetzen.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 umfasst integrierte Richtliniendefinitionen, die individuelle Akzeptanzkriterien innerhalb der „Definition of Done“ erfüllen können.Azure Policy includes built-in policy definitions that can meet individual acceptance criteria within the definition of done.
  • Azure Graph enthält fortgeschrittene Abfragebeispiele, die für fortgeschrittene Testszenarien verwendet werden können, um zu verstehen, wie die Workloads innerhalb einer Zielzone bereitgestellt werden.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-Schnellstartvorlagen stellen Quellcodevorlagen zur Verfügung, um die Bereitstellung der Zielzone und der Workload zu beschleunigen.Azure quickstart templates provides of source code templates to aid in accelerating landing zone and workload deployment.

Die oben angegebenen Beispiele können zur Beschleunigung von TDD-Zyklen verwendet werden.The examples listed above can be used as tools for accelerating TDD cycles. Sie werden mit den Governancetools in den folgenden Abschnitten ausgeführt und ermöglichen es Cloudplattformteams, ihren eigenen Quellcode und ihre eigenen Tests zu erstellen.They run on the governance tools in the following sections and allow cloud platform teams to create their own source code and tests.

Azure Governance-Tools, die TDD-Zyklen beschleunigen könnenAzure governance tools that can accelerate TDD cycles

Azure Policy: Wenn die Bereitstellungen oder versuchten Bereitstellungen von den Governancerichtlinien abweichen, kann Azure Policy automatische Erkennung, Schutz und Lösung bieten.Azure Policy: When deployments or attempted deployments deviate from governance policies, Azure Policy can provide automated detection, protection, and resolution. Aber Azure Policy bietet auch den primären Mechanismus zum Testen von Akzeptanzkriterien in Ihrer Definition of Done.But Azure Policy also provides the primary mechanism for testing acceptance criteria in your definition of done. In einem TDD-Zyklus kann eine Richtliniendefinition erstellt werden, um ein einzelnes Akzeptanzkriterium zu testen.In a TDD cycle, a policy definition can be created to test a single acceptance criteria. Ebenso können alle Akzeptanzkriterien zu einer Richtlinieninitiative hinzugefügt werden, die dem gesamten Abonnement zugewiesen wird.Likewise, all acceptance criteria can be added to a policy initiative assigned to the entire subscription. Dieser Ansatz bietet einen Mechanismus für Rot-Tests, bevor die Zielzone geändert wird.This approach provides a mechanism for red tests before modifying the landing zone. Wenn die Zielzone der Definition of Done entspricht, kann sie zur Erzwingung der Testkriterien verwendet werden, um Codeänderungen zu vermeiden, die in zukünftigen Releases zu Testfehlern führen würden.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 gruppiert Richtlinien und andere Bereitstellungstools in einem wiederholbaren Paket, das mehreren Zielzonen zugeordnet werden kann.Azure Blueprints: Azure blueprint groups policies and other deployment tools into a repeatable package that can be assigned to multiple landing zones. Blaupausen erweisen sich als nützlich, wenn mehrere Einführungsbemühungen eine gemeinsame „Definition of Done“ aufweisen, die Sie im Laufe der Zeit vielleicht aktualisieren möchten.Blueprints prove useful when multiple adoption efforts share common definitions of done, which you may want to update over time. Sie können auch bei späteren Bemühungen zur Erweiterung und Umgestaltung von Zielzonen bei deren Bereitstellung helfen.It can also help with deployment during subsequent efforts to expand and refactor landing zones.

Azure Resource Graph: Resource Graph bietet eine Abfragesprache zur Erstellung datengesteuerter Tests auf der Grundlage von Informationen über die in einer Zielzone bereitgestellten Ressourcen.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. Später im Einführungsplan kann dieses Tool auch komplexe Tests definieren, die auf den Interaktionen zwischen den Workloadressourcen und der zugrunde liegenden Cloudumgebung basieren.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-Vorlagen: Diese Vorlagen stellen den primären Quellcode für jede in Azure bereitgestellte Umgebung zur Verfügung.Azure Resource Manager templates: These templates provide the primary source code for any environment deployed in Azure. Einige Drittanbietertools wie etwa Terraform generieren ihre eigenen ARM-Vorlagen, die dann an Azure Resource Manager übermittelt werden.Some third-party tools like Terraform generate their own ARM templates, which are then submitted to Azure Resource Manager.

Azure Resource Manager: Resource Manager bietet eine konsistente Plattform für den Aufbau und die Bereitstellung von Funktionen.Azure Resource Manager: Resource Manager provides a consistent platform for build and deploy functions. Von dieser Plattform können Zielzonen auf der Grundlage von Quellcodedefinitionen bereitgestellt werden.This platform can deploy landing zones based on source code definitions.

Nächste SchritteNext steps

Bewerten Sie grundlegende Überlegungen zu Zielzonen, um mit dem Refactoring Ihrer ersten Zielzone zu beginnen.To begin refactoring your first landing zone, evaluate basic landing zone considerations.