Übung: Erstellen einer mehrschichtigen Integritätsstruktur
In dieser Übung besteht Ihre Aufgabe darin, ein mehrschichtiges Integritätsmodell für eine Beispielanwendung zu entwerfen. Überprüfen Sie zunächst die Anwendungsarchitektur, die wichtigsten Azure-Dienste, die von der Anwendung verwendet werden, und wie die Azure-Dienste zum allgemeinen Benutzererlebnis beitragen.
Beispielanwendung
Das Beispiel für diese Übung ist eine Webanwendung, die von Contoso Shoes verwendet wird. Die Anwendung ermöglicht es Mitarbeitern, einen Produktkatalog zu durchsuchen, einzelne Elemente im Katalog zu aktualisieren und mit anderen Benutzern zu interagieren, indem sie Kommentare in der Anwendung erstellen.
Das Betriebsteam von Contoso Shoes hat zwei wichtige Geschäftsanforderungen für diese Anwendung identifiziert. Mitarbeiter müssen dazu in der Lage sein:
- Mit dem Katalog zu interagieren, indem sie Listen mit Artikeln anzeigen und Artikel durchsuchen.
- Kommentare für einzelne Artikel zu erstellen, die anderen Benutzern angezeigt werden können.
Das Integritätsmodell sollte mindestens diese beiden kritischen Vorgänge enthalten.
Architektur
Komponenten
Front-End-Webanwendung: Die Benutzeroberfläche dieser Workload, die in Azure-Web-Apps ausgeführt wird.
- Lesezugriff auf: Katalog-API, Azure Blob Storage
- Schreibzugriff auf: Katalog-API
Katalog-API: Die API-Ebene, die von der Front-End-Webanwendung für Datenvorgänge für Katalogartikel und Kommentare verwendet wird. Es werden keine Schreibvorgänge in der Datenbank ausgeführt. Stattdessen wird eine Nachricht an einen Event Hub gesendet, die asynchron verarbeitet wird. Diese Komponente wird auf Azure Functions gehostet.
- Lesezugriff auf: Azure Cosmos DB
- Schreibzugriff auf: Azure Event Hubs
Hintergrundprozessor: Eine Komponente, von der Datenbankupdates asynchron verarbeitet werden. Der Prozessor verfügt nicht über einen öffentlichen Endpunkt. Diese Komponente wird auf Azure Functions gehostet.
- Lesezugriff auf: Azure Event Hubs
- Schreibzugriff auf: Azure Cosmos DB
Nachrichtenbroker: Vom Messagingprozessor wird Azure Event Hubs dazu verwendet, Nachrichten zwischen der Katalog-API und dem Hintergrundprozessor zu übergeben.
Datenbank: Daten werden in Azure Cosmos DB beibehalten. Von der Katalog-API werden Daten direkt aus der Datenbank gelesen. Der Hintergrundprozessor verarbeitet die Schreibvorgänge. Bilder werden in Azure Blob Storage gespeichert.
Geheimnisse: Von den Anwendungskomponenten dieser Workload werden Geheimnisse dazu verwendet, den Zugriff zu autorisieren. Geheimnisse werden in Azure Key Vault gespeichert. Von Katalog-API und Hintergrundprozessor werden Verbindungszeichenfolgen für den Zugriff auf die Datenbank und auf Azure Event Hubs verwendet. Von der Front-End-Webanwendung wird ein API-Schlüssel dazu verwendet, die Katalog-API aufzurufen.
Überwachung: Von Anwendungskomponenten werden alle Datenmessungen an Application Insights gesendet; abgesichert wird das Ganze mit einem Log Analytics-Arbeitsbereich. Derselbe Arbeitsbereich wird dazu verwendet, andere Protokolle und Metriken für diese Workload zu sammeln.
Aufteilen der Architektur in Schichten
Wie in der vorherigen Lerneinheit beschrieben, sollte ein Integritätsmodell eine mehrschichtige Struktur aufweisen. Der Prozess der Integritätsmodellierung ist eine Architekturübung, die dazu dient, alle Benutzerflows zu definieren und Abhängigkeiten zwischen funktionalen und logischen Komponenten sowie Abhängigkeiten zwischen Azure-Ressourcen zuzuordnen.
Das Identifizieren von Benutzerflows und das Erstellen des Integritätsmodells ist in dieser Phase eine konzeptionelle Übung. Verwenden Sie Stift und Papier oder ein leeres Dokument, um die einzelnen Schichten zu notieren und die Struktur zu zeichnen.
Für diese Übung umfasst das Integritätsmodell drei Schichten: Benutzerflows, Anwendungskomponenten und Azure-Ressourcen.
Benutzerabläufe
Beginnen Sie ganz oben in der Architektur, und denken Sie hier über die möglichen Benutzerflows nach, die auf der erwarteten Funktionalität der Anwendung basieren. Versuchen Sie, die technischen Details und Azure-Dienste zu abstrahieren und die Flows aus Benutzersicht auszuwerten.
- Welche Prozesse sind kritisch?
- Wie nutzen die Mitarbeiter die Anwendung, um Geschäftsziele zu erreichen?
Basierend auf den Anforderungen, die vom Betriebsteam identifiziert werden, sollten Sie mindestens zwei Benutzerflows in der obersten Schicht haben: Katalogartikel auflisten und Kommentar hinzufügen.
Wenn Sie sich weitere Benutzerflows vorstellen können, arbeiten Sie diese in das Integritätsmodell ein.
Anwendungskomponenten
Gehen Sie eine Schicht nach unten, und bewerten Sie die Anwendungskomponenten. Stellen Sie zunächst Fragen, z. B.:
- „Welcher Teil meiner Anwendung bewirkt, dass dieser Flow funktioniert?“
- „Welche Microservices oder Komponenten sind an diesem Flow beteiligt?“
- „Funktioniert dieser Flow weiterhin, wenn dieser Teil fehlschlägt?“
Ziel ist es, Anwendungskomponenten auf technischer Ebene zu identifizieren, die zu den einzelnen Benutzerflows beitragen. Diese Komponenten können APIs, Hintergrund-Worker, Microservices usw. sein.
Diese Workload verfügt über mindestens drei Anwendungskomponenten, die an den beiden identifizierten Benutzerflows beteiligt sind: Front-End, Katalog-API und Hintergrundprozessor.
Azure-Ressourcen
Die untere Schicht enthält die Azure-Ressourcen, die von den einzelnen Anwendungskomponenten verwendet werden. Für diese Übung werden die Komponenten und Ressourcen im Abschnitt Komponenten beschrieben.
Hinweis
Ein Szenario in der Praxis wird wahrscheinlich mehr Dienste und kompliziertere Beziehungen zwischen den Diensten aufweisen. Ein Schlüssel zum Erstellen eines erfolgreichen Integritätsmodells besteht darin, zu ermitteln, welche Teile kritisch sind und wie jede Komponente zur allgemeinen Integrität des Systems beiträgt.
Zeichnen der endgültigen Struktur des Integritätsmodells
Fügen Sie die gesammelten Informationen in eine grafische Darstellung der Struktur des Integritätsmodells ein. Die Darstellung sollte ähnlich wie dieses Diagramm aussehen:
Das Integritätsmodell der Webanwendung umfasst von oben nach unten die folgenden Schichten:
Benutzerabläufe
- Katalogartikel auflisten. Abhängig von der Front-End-Webanwendung und der Katalog-API.
- Kommentar hinzufügen. Abhängig von der Front-End-Webanwendung, der Katalog-API und dem Hintergrundprozessor.
Anwendungskomponenten
- Front-End-Webanwendung. Abhängig von Blob Storage und Katalog-API.
- Katalog-API. Abhängig von Azure Cosmos DB, Key Vault und Event Hubs.
- Hintergrundprozessor. Abhängig von Azure Cosmos DB, Key Vault und Event Hubs.
Azure-Ressourcen
- Blob Storage
- Azure Cosmos DB
- Schlüsseltresor
- Event Hubs