Aufbau sechseckiger Architekturen aufAWS - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aufbau sechseckiger Architekturen aufAWS

Furkan Oruc, Dominik Goby, Darius Kunce und Michal Ploski, Amazon Web Services (AWS)

Juni 2022 (Dokumentengeschichte)

Dieser Leitfaden beschreibt ein mentales Modell und eine Sammlung von Mustern für die Entwicklung von Softwarearchitekturen. Diese Architekturen lassen sich im gesamten Unternehmen einfach verwalten, erweitern und skalieren, wenn die Produktakzeptanz zunimmt. Cloud-Hyperscaler wie Amazon Web Services (AWS) bieten kleinen und großen Unternehmen Bausteine für Innovationen und die Entwicklung neuer Softwareprodukte. Das schnelle Tempo der Einführung neuer Dienste und Funktionen führt dazu, dass die Geschäftsbeteiligten von ihren Entwicklungsteams erwarten, dass sie schneller Prototypen neuer Minimum Viable Products (MVPs) erstellen, sodass neue Ideen so schnell wie möglich getestet und verifiziert werden können. Oft werden diese MVPs übernommen und werden Teil des Unternehmenssoftware-Ökosystems. Bei der Erstellung dieser MVPs geben Teams manchmal Regeln und bewährte Verfahren für die Softwareentwicklung auf, wie z. B. SOLID-Prinzipien und Unit-Tests. Sie gehen davon aus, dass dieser Ansatz die Entwicklung beschleunigen und die Markteinführungszeit verkürzen wird. Wenn sie jedoch nicht in der Lage sind, ein grundlegendes Modell und ein Framework für Softwarearchitektur auf allen Ebenen zu erstellen, wird es schwierig oder sogar unmöglich sein, neue Funktionen für das Produkt zu entwickeln. Mangelnde Sicherheit und sich ändernde Anforderungen können das Team auch während des Entwicklungsprozesses verlangsamen.

In diesem Leitfaden wird eine vorgeschlagene Softwarearchitektur vorgestellt, von einer hexagonalen Architektur auf niedriger Ebene bis hin zu einer architektonischen und organisatorischen Dekomposition auf hoher Ebene, die domänengetriebenes Design (DDD) verwendet, um diesen Herausforderungen zu begegnen. DDD hilft dabei, die Geschäftskomplexität zu bewältigen und das Entwicklungsteam zu skalieren, sobald neue Funktionen entwickelt werden. Durch die Verwendung einer allgegenwärtigen Sprache werden geschäftliche und technische Interessenvertreter auf die Geschäftsprobleme, die als Domänen bezeichnet werden, aufmerksam gemacht. Die sechseckige Architektur ist eine technische Grundlage für diesen Ansatz in einem ganz bestimmten Bereich, dem so genannten begrenzten Kontext. Ein begrenzter Kontext ist ein stark zusammenhängender und lose gekoppelter Teilbereich des Geschäftsproblems. Wir empfehlen Ihnen, für all Ihre Unternehmenssoftwareprojekte unabhängig von ihrer Komplexität eine sechseckige Architektur zu verwenden.

Die sechseckige Architektur ermutigt das Ingenieurteam, zuerst das Geschäftsproblem zu lösen, wohingegen die klassische geschichtete Architektur den Schwerpunkt des Ingenieurwesens weg von der Domäne hin zur ersten Lösung technischer Probleme verlagert. Wenn Software einer hexagonalen Architektur folgt, ist es außerdem einfacher, einen testgesteuerten Entwicklungsansatz zu verfolgen, wodurch die Feedbackschleife reduziert wird, die Entwickler zum Testen der Geschäftsanforderungen benötigen. Schließlich ist die Verwendung von Befehlen und Befehlshandlern eine Möglichkeit, die Prinzipien der Einzelverantwortung und des offenen geschlossenen Systems von SOLID anzuwenden. Durch die Einhaltung dieser Prinzipien entsteht eine Codebasis, in der Entwickler und Architekten, die an dem Projekt arbeiten, leicht navigieren und verstehen können, und reduziert das Risiko, dass grundlegende Änderungen an bestehenden Funktionen vorgenommen werden.

Dieser Leitfaden richtet sich an Softwarearchitekten und -entwickler, die daran interessiert sind, die Vorteile der Verwendung von hexagonaler Architektur und DDD für ihre Softwareentwicklungsprojekte zu verstehen. Es enthält ein Beispiel für den Entwurf einer Infrastruktur für Ihre AnwendungAWS, die eine sechseckige Architektur unterstützt. Eine Beispielimplementierung finden Sie unter Strukturieren eines Python-Projekts in hexagonaler Architektur mithilfeAWS Lambda auf der AWS Prescriptive Guidance Guidance-Website.