Testgesteuerte Entwicklung (TDD) für ZielzonenTest-driven development (TDD) for landing zones

Die testgesteuerte Entwicklung ist ein allgemeiner Softwareentwicklungs- und DevOps-Prozess, der die Qualität von neuen Features und Verbesserungen in jeder codebasierten Lösung optimiert.Test-driven development is a common software development and DevOps process that improves the quality of new features and improvements in any code-based solution. Die cloudbasierte Infrastruktur und der zugrunde liegende Quellcode mit diesem Prozess sicherstellen, dass Zielzonen die zentralen Anforderungen erfüllen und eine hohe Qualität aufweisen.Cloud-based infrastructure, and the underlying source code can use this process to ensure landing zones meet core requirements and are of high quality. Dieser Prozess ist besonders nützlich, wenn Zielzonen in einem parallelen Entwicklungsaufwand entwickelt und umgestaltet werden.This process is especially useful when landing zones are being developed and refactored in a parallel development effort.

Testgesteuerter Entwicklungsprozess für Cloudzielzonen

In der Cloud stellt die Infrastruktur die Ausgabe von Codeausführung dar.In the cloud, infrastructure is the output of code execution. Ein gut strukturierter, getesteter und überprüfter Code erzeugt eine entwicklungsfähige Zielzone.Well-structured, tested, and verified code produces a viable landing zone. Eine Zielzone ist eine mittels Code vorab bereitgestellte Umgebung zum Hosten Ihrer Workloads.A landing zone is an environment for hosting your workloads, preprovisioned through code. Sie umfasst grundlegende Funktionen unter Verwendung von definierten Clouddiensten und bewährten Methoden, sodass die Weichen von vornherein auf Erfolg gestellt sind.It includes foundational capabilities using a defined set of cloud services and best practices that set you up for success. In dieser Anleitung wird ein Ansatz vorgestellt, bei dem die testgesteuerte Entwicklung verwendet wird, um den letzten Teil dieser Definition zu erfüllen und gleichzeitig die Anforderungen an Qualität, Sicherheit, Betrieb und Governance zu erfüllen.This guidance describes an approach that uses test-driven development to fulfill the last part of that definition, while meeting quality, security, operations, and governance requirements.

Dieser Ansatz kann verwendet werden, um einfache Featureanforderungen während der frühen Entwicklung zu erfüllen.This approach can be used to meet simple feature requests during early development. Dieser Prozess kann zu einem späteren Zeitpunkt im Lebenszyklus der Cloudeinführung verwendet werden, um Anforderungen an Sicherheit, Betrieb, Governance oder Compliance zu erfüllen.Later in the cloud adoption lifecycle, this process can be used to meet security, operations, governance, or compliance requirements.

Definition of DoneDefinition of done

„Für die erfolgreiche Durchführung eingerichtet“ ist eine subjektive Aussage."Set up for success" is a subjective statement. Diese Aussage liefert dem Cloudplattformteam während der Entwicklung der Zielzone oder für den Refactoringaufwand wenig verwertbare Informationen.This statement provides the cloud platform team with little actionable information during landing zone development or refactoring efforts. Diese fehlende Eindeutigkeit kann zu enttäuschten Erwartungen und Sicherheitsrisiken in einer Cloudumgebung führen.This lack of clarity can lead to missed expectations and vulnerabilities in a cloud environment. Bevor eine Zielzone umgestaltet oder erweitert wird, sollte sich das Cloudplattformteam Klarheit über die „Definition of Done“ für jede Zielzone verschaffen.Before refactoring or expanding any landing zone, the cloud platform team should seek clarity regarding the "definition of done" for each landing zone.

Die „Definition of Done“ ist eine einfache Vereinbarung zwischen dem Cloudplattformteam und anderen betroffenen Teams.Definition of done is a simple agreement between the cloud platform team and other affected teams. Diese Vereinbarung skizziert die erwarteten Features mit Mehrwert, die in jeglichem Bereitstellungsaufwand für Zielzonen enthalten sein sollten.This agreement outlines the expected value added features, which should be included in any landing zone development effort. Die Definition of Done ist häufig eine Prüfliste, die auf den kurzfristigen Cloudeinführungsplan ausgerichtet ist.The definition of done is often a checklist that's aligned with the short-term cloud adoption plan. In ausgereiften Prozessen werden die erwarteten Features in der Prüfliste jeweils eigene Akzeptanzkriterien aufweisen, um noch mehr Klarheit zu schaffen.In mature processes, those expected features in the checklist will each have their own acceptance criteria to create even more clarity. Wenn die Features mit Mehrwert jeweils die Akzeptanzkriterien erfüllen, ist die Zielzone ausreichend konfiguriert, um den Erfolg der aktuellen Welle oder die Freisetzung des Einführungsaufwands zu ermöglichen.When the value-added features each meet the acceptance criteria, the landing zone is sufficiently configured to enable the success of the current wave or release of adoption effort.

Da die Teams zusätzliche Workloads und Cloudfeatures einführen, werden die „Definition of Done“ sowie die Akzeptanzkriterien zunehmend komplexer.As teams adopt additional workloads and cloud features, the definition of done and acceptance criteria will become increasingly more complex.

Testgesteuerter EntwicklungszyklusTest-driven development cycle

Der Zyklus, der für eine effektive testgesteuerte Entwicklung sorgt, wird oft als Rot/Grün-Test bezeichnet.The cycle that makes test-driven development effective is often referred to as a red/green test. Bei diesem Ansatz beginnt das Cloudplattformteam mit einem fehlgeschlagenen Test (Rot-Test), basierend auf der Definition von Done und der definierten Akzeptanzkriterien.In this approach, the cloud platform team starts with a failed test (red test) based on the definition of done and defined acceptance criteria. Für jedes Feature oder Akzeptanzkriterium würde das Cloudplattformteam Entwicklungsaufgaben bis zum Bestehen des Tests (Grün-Test) durchführen.For each feature or acceptance criteria, the cloud platform team would complete development tasks until the test passes (green test). Ein testgesteuerter Entwicklungszyklus (oder Rot/Grün-Test) würde die grundlegenden Schritte in der folgenden Abbildung und der Liste unten wiederholen, bis die vollständige Definition of Done erfüllt ist.A test-driven development cycle (or red/green test) would repeat the basic steps in the following image and list below until the full definition of done can be met.

Testgesteuerter Entwicklungsprozess für Cloudzielzonen

  • Erstellen eines Tests: Definieren Sie einen Test, um zu überprüfen, ob die Akzeptanzkriterien für ein bestimmtes Feature mit Mehrwert erfüllt sind.Create a test: Define a test to validate that acceptance criteria for a specific value-add feature has been met. Automatisieren Sie den Test wann immer möglich.Automate the test whenever possible.
  • Testen der Zielzone: Führen Sie den neuen Test und alle vorhandenen Tests aus.Test the landing zone: Run the new test and any existing tests. Wenn das erforderliche Feature nicht bereits durch vorherigen Entwicklungsaufwand erfüllt wurde und nicht im Angebot des Cloudanbieters enthalten ist, sollte der Test fehlschlagen.If the required feature hasn't already been met by prior development efforts and isn't inclusive to the cloud provider's offering, the test should fail. Die Durchführung vorhandener Tests hilft zu überprüfen, dass Ihr neuer Test die Zuverlässigkeit der Zielzonenfeatures, die von vorhandenem Code bereitgestellt werden, nicht beeinträchtigt.Running existing tests will help validate that your new test doesn't reduce reliability of landing zone features delivered by existing code.
  • Erweitern und Umgestalten der Zielzone: Fügen Sie den Quellcode hinzu oder modifizieren Sie ihn, um das gewünschte Feature mit Mehrwert zu erfüllen und die allgemeine Qualität der Codebasis zu verbessern.Expand and refactor the landing zone: Add or modify the source code to fulfill the requested value-add feature and improve the general quality of the code base. Das Cloudplattformteam würde nur Code hinzufügen, der dem gewünschten Feature entspricht (und nicht mehr), um vollständig im Sinne der testgesteuerten Entwicklung zu handeln.To meet the fullest spirit of test-driven development, the cloud platform team would only add code to meet the requested feature and nothing more. Gleichzeitig ist die Codequalität und -wartung ein gemeinsamer Aufwand.At the same time, code quality and maintenance is a shared effort. Bei der Erfüllung von Anforderungen für neue Features sollte das Cloudplattformteam versuchen, den Code zu optimieren, indem es die Duplizierung entfernt und den Code klarer gestaltet.When fulfilling new feature requests, the cloud platform team should seek to improve the code by removing duplication and clarifying the code. Das Ausführen von Tests zwischen der Erstellung neuen Codes und dem Refactoring des Quellcodes wird dringend empfohlen.Running tests between new code creation and refactoring of source code is highly suggested.
  • Bereitstellen der Zielzone: Sobald der Quellcode in der Lage ist, die Featureanforderungen zu erfüllen, stellen Sie die modifizierte Zielzone dem Cloudanbieter in einer kontrollierten Test- oder Sandboxumgebung zur Verfügung.Deploy the landing zone: Once the source code is capable of fulfilling the feature request, deploy the modified landing zone to the cloud provider in a controlled testing or sandbox environment.
  • Testen der Zielzone: Beim erneuten Testen der Zielzone muss überprüft werden, ob der neue Code die Akzeptanzkriterien für das angeforderte Feature erfüllt.Test the landing zone: Retesting the landing zone should validate that the new code meets the acceptance criteria for the requested feature. Nachdem alle Tests bestanden wurden, wird das Feature als abgeschlossen betrachtet, und die Akzeptanzkriterien gelten als erfüllt.Once all tests pass, the feature is considered complete and the acceptance criteria are considered to be met.

Wenn alle Features mit Mehrwert und die Akzeptanzkriterien die entsprechenden Tests bestanden haben, ist die Zielzone bereit, die nächste Welle des Cloudeinführungsplans zu unterstützen.When all value-added features and acceptance criteria pass their associated tests, the landing zone is ready to support the next wave of the cloud adoption plan.

Einfaches Beispiel für eine „Definition of Done“Simple example of a definition of done

Für einen anfänglichen Migrationsaufwand kann die „Definition of Done“ zu einfach sein.For an initial migration effort, definition of done may be overly simple. Im Folgenden finden Sie ein Beispiel für eines dieser zu einfachen Beispiele.The following is an example of one of these overly simple examples.

  • Die anfängliche Zielzone wird zum Hosten von 10 Workloads für erste Lernzwecke genutzt.The initial landing zone will be used to host 10 workloads for initial learning purposes. Diese Workloads sind nicht geschäftskritisch und haben keinen Zugriff auf vertrauliche Daten.These workloads are not critical to the business and have no access to sensitive data. Es ist wahrscheinlich, dass diese Arbeitslasten in Zukunft für die Produktion freigegeben werden, aber die Wichtigkeit und Vertraulichkeit wird sich voraussichtlich nicht ändern.In the future, it's likely these workloads will be released to production but criticality and sensitive is not expected to change. Um diese Workloads zu unterstützen, muss das Cloudeinführungsteam die folgenden Kriterien erfüllen:To support these workloads, the cloud adoption team will need the following criteria met:

  • Netzwerksegmentierung zur Anpassung an den vorgeschlagenen Netzwerkentwurf.Network segmentation to align with proposed network design.

  • Zugriff auf Compute-, Speicher- und Netzwerkressourcen zur Bewältigung der Workloads, die auf die Ermittlung digitaler Ressourcen ausgerichtet sind.Access to compute, storage, and networking resources to host the workloads aligned to the digital estate discovery.

  • Benennungs- und Kennzeichnungsschema für die einfache Anwendung.Naming and tagging schema for ease of use.

  • Diese Umgebung muss als Umkreisnetzwerk mit Zugriff auf das öffentliche Internet behandelt werden.This environment should be treated as a perimeter network with access to the public internet.

  • Während des Einführungsaufwands wünscht das Cloudeinführungsteam einen temporären Zugriff auf die Umgebung, um Dienstkonfigurationen zu ändern.During adoption efforts, the cloud adoption team would like temporary access to the environment to change service configurations.

  • Nur zur Kenntnisnahme: Vor der Produktionsfreigabe erfordern diese Workloads eine Integration mit dem Unternehmensidentitätsanbieter, um die fortlaufende Identität und den Zugriff für Vorgangsverwaltungzwecke zu regeln.For awareness only: prior to production release, these workloads will require integration with the corporate identity provider to govern ongoing identity and access for operations management purposes. Zu diesem Zeitpunkt sollte der Zugriff des Cloudeinführungsteams widerrufen werden.At which time the cloud adoption team's access should be revoked.

Der letzte oben genannte Punkt ist weder ein Feature noch ein Akzeptanzkriterium.The last point above is not a feature or acceptance criteria. Er ist jedoch ein Indikator dafür, dass zusätzliche Erweiterungen erforderlich sein werden, die mit anderen Teams frühzeitig untersucht werden sollten.But it is an indicator that additional expansions will be required and should be explored with other teams early.

Weitere Beispiele für eine „Definition of Done“Additional examples of a definition of done

Die Governancemethodik innerhalb des Cloud Adoption Frameworks bietet eine erzählerische Reise durch den natürlichen Entwicklungsverlauf eines Governanceteams.The Govern methodology within the Cloud Adoption Framework provides a narrative journey through the natural maturity of a governance team. Eingebettet in diese Reise sind mehrere Beispiele für „Definition of Done“ und „Akzeptanzkriterien“ in Form von Richtlinienanweisungen.Embedded in that journey are several examples of "definition of done" and "acceptance criteria", in the form of policy statements.

  • Anfängliche Richtlinienanweisungen: Beispiel für steuernde Unternehmensrichtlinien und die anfängliche „Definition of Done“ auf der Grundlage der Einführungsanforderungen in einer frühen Phase.Initial policy statements: Example of corporate policies governing and initial definition of done based on early stage adoption requirements.
  • Identitätserweiterung: Beispiel für steuernde Unternehmensrichtlinien („Definition of Done“), um die Anforderungen zum Erweitern der Identitätsverwaltung für eine Zielzone zu erfüllen.Identity expansion: Example of corporate policies governing definition of done to meet requirements to expand identity management for a landing zone.
  • Sicherheitserweiterung: Beispiel für steuernde Unternehmensrichtlinien („Definition of Done“), um die Anforderungen an die Sicherheit zu erfüllen, die mit dem Referenzplan für die Cloudeinführung ausgerichtet sind.Security expansion: Example of corporate policies governing definition of done to meet security requirements aligned to the reference cloud adoption plan.
  • Vorgangserweiterung: Beispiel für steuernde Unternehmensrichtlinien („Definition of Done“), um grundlegende Anforderungen an die Vorgangsverwaltung zu erfüllen.Operations expansion: Example of corporate policies governing definition of done to meet basic operations management requirements.
  • Kostenexpansion: Beispiel für steuernde Unternehmensrichtlinien („Definition of Done“), um Anforderungen an die Kostenverwaltung zu erfüllen.Cost expansion: Example of corporate policies governing definition of done to meet cost management requirements.

Die obigen Beispiele sind einfache Beispiele, die Ihnen helfen, eine „Definition of Done“ für Ihre Zielzonen zu entwickeln.The above examples are basic samples to help develop a definition of done for your landing zones. Für die fünf Disziplinen der Cloud Governance stehen jeweils weitere Beispielrichtlinien zur Verfügung.Additional sample policies are available for each of the Five Disciplines of Cloud Governance.

Nächste SchritteNext steps

Informationen zum Beschleunigen der testgesteuerten Entwicklung in Azure finden Sie unter Testgesteuerte Entwicklungsfeatures von Azure.To accelerate test-driven development in Azure, review test-driven development features of Azure.