Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Architekturstil ist eine Familie von Architekturen, die bestimmte Merkmale aufweisen. Beispielsweise ist N-Ebene ein gängiger Architekturstil. In letzter Zeit beginnen Microservice-Architekturen, an Beliebtheit zu gewinnen. Architekturstile erfordern nicht die Verwendung bestimmter Technologien, aber einige Technologien eignen sich besser für bestimmte Architekturen. Container eignen sich beispielsweise gut für Microservices.
Wir haben eine Reihe von Architekturstilen identifiziert, die häufig in Cloudanwendungen zu finden sind. Der Artikel für jeden Designstil enthält die folgenden Komponenten:
- Eine Beschreibung und ein logisches Diagramm des Stils
- Empfehlungen zur Wahl dieses Stils
- Vorteile, Herausforderungen und bewährte Methoden
- Eine empfohlene Bereitstellung, die relevante Azure-Dienste verwendet
Eine kurze Tour durch die Stile
Dieser Abschnitt bietet eine kurze Übersicht über die von uns identifizierten Architekturstile sowie einige allgemeine Überlegungen zur Verwendung. Die Liste ist nicht vollständig. Weitere Informationen finden Sie in den verknüpften Artikeln.
N-Ebene
N-Ebene ist eine herkömmliche Architektur für Unternehmensanwendungen, die eine Anwendung in logische Ebenen und physische Ebenen aufteilen. Jede Ebene hat eine bestimmte Verantwortung, und Ebenen verwalten Abhängigkeiten, indem sie nur die darunterliegenden Ebenen aufrufen. Typische Ebenen umfassen Präsentation, Geschäftslogik und Datenzugriff.
N-Tier-Architekturen eignen sich gut für die Migration vorhandener Anwendungen, die bereits eine mehrschichtige Architektur verwenden. Dieser Ansatz erfordert minimale Änderungen beim Wechsel zu Azure und unterstützt gemischte Umgebungen mit lokalen und Cloudkomponenten. Die horizontale Schichtung kann es jedoch schwierig machen, Änderungen einzuführen, ohne dass sich dies auf mehrere Teile der Anwendung auswirkt, was die Flexibilität für häufige Updates begrenzt.
Web-Warteschlange-Worker
Web-Queue-Worker ist eine Architektur, die aus einem Web-Front-End, einer Nachrichtenwarteschlange und einem Back-End-Worker besteht. Das Web-Front-End verarbeitet HTTP-Anforderungen und Benutzerinteraktionen, während der Worker ressourcenintensive Aufgaben, lange ausgeführte Workflows oder Batchvorgänge ausführt. Die Kommunikation zwischen Front-End und Worker erfolgt über eine asynchrone Nachrichtenwarteschlange.
Diese Architektur eignet sich ideal für Anwendungen mit relativ einfachen Domänen mit ressourcenintensiven Verarbeitungsanforderungen. Es ist einfach zu verstehen und bereitzustellen mit verwalteten Azure-Diensten wie App Service und Azure Functions. Sie können das Front-End und den Mitarbeiter unabhängig skalieren, um Flexibilität bei der Ressourcenzuordnung zu bieten. Aber ohne sorgfältiges Design können beide Komponenten groß und monolithisch werden.
Microservices
Die Microservices-Architektur dekompiliert Anwendungen in eine Sammlung kleiner, autonomer Dienste. Jeder Dienst implementiert eine einzelne Geschäftsfunktion innerhalb eines gebundenen Kontexts und ist eigenständig mit seinem eigenen Datenspeicher. Dienste kommunizieren über klar definierte APIs und können unabhängig entwickelt, bereitgestellt und skaliert werden.
Microservices ermöglichen Es Teams, autonom zu arbeiten und häufige Updates mit höherer Veröffentlichungsgeschwindigkeit zu unterstützen. Diese Architektur eignet sich gut für komplexe Domänen, die häufige Änderungen und Innovationen erfordern. Dies führt jedoch zu erheblicher Komplexität in Bereichen wie Dienstermittlung, Datenkonsistenz und verteilter Systemverwaltung. Erfolg erfordert ausgereifte Entwicklungs- und DevOps-Praktiken, wodurch sie für Organisationen mit erweiterten technischen Fähigkeiten besser geeignet ist.
Ereignisgesteuerte Architektur
Ereignisgesteuerte Architekturen verwenden ein Veröffentlichungsabonnentmodell, bei dem Ereignishersteller Datenströme von Ereignissen generieren und Ereigniskonsumenten auf diese Ereignisse in nahezu Echtzeit reagieren. Produzenten und Verbraucher werden miteinander entkoppelt, wobei die Kommunikation über Ereigniskanäle oder Broker erfolgt. Diese Architektur unterstützt sowohl einfache Ereignisverarbeitung als auch komplexe Ereignismusteranalyse.
Ereignisgesteuerte Architekturen zeichnen sich in Szenarien aus, die eine Echtzeitverarbeitung mit minimaler Latenz erfordern. Einige Beispiele sind IoT-Lösungen, Finanzhandelssysteme oder Anwendungen, die hohe Mengen an Streamingdaten verarbeiten müssen. Ereignisgesteuerte Architekturen bieten hervorragende Skalierbarkeit und Fehlerisolation, stellen jedoch Herausforderungen hinsichtlich garantierter Zustellung, Ereignisbestellung und eventueller Konsistenz über verteilte Komponenten hinweg her.
Big Data
Big Data-Architekturen verarbeiten die Erfassung, Verarbeitung und Analyse von Daten, die zu groß oder komplex für herkömmliche Datenbanksysteme sind. Diese Architekturen umfassen in der Regel Komponenten für die Datenspeicherung (z. B. Data Lakes), Batchverarbeitung für historische Analysen, Datenstromverarbeitung für Echtzeiterkenntnisse und analytische Datenspeicher für Berichterstellung und Visualisierung.
Big Data-Architekturen sind für Organisationen unerlässlich, die Erkenntnisse aus massiven Datasets extrahieren, Predictive Analytics mithilfe von maschinellem Lernen unterstützen oder Echtzeitstreamingdaten von IoT-Geräten verarbeiten müssen. Moderne Implementierungen verwenden häufig verwaltete Dienste wie Microsoft Fabric, um die Komplexität des Erstellens und Verwaltens von Big Data-Lösungen zu vereinfachen.
Großrechner
Große Computearchitekturen unterstützen große Workloads, die Hunderte oder Tausende von Kernen für rechenintensive Vorgänge erfordern. Die Arbeit kann in diskrete Aufgaben aufgeteilt werden, die gleichzeitig über viele Kerne hinweg ausgeführt werden, wobei jede Aufgabe Eingaben übernimmt, sie verarbeitet und Die Ausgabe erzeugt. Aufgaben können unabhängig (peinlich parallel) oder eng gekoppelt sein, die eine schnelle Kommunikation erfordern.
Big Compute ist für Simulationen, Finanzrisikomodellierung, wissenschaftliches Computing, technische Stressanalyse und 3D-Rendering unerlässlich. Azure bietet Optionen wie Azure Batch für verwaltete große Computearbeitslasten oder HPC Pack für herkömmlichere Clusterverwaltung. Diese Architekturen können bei Bedarf Kapazität schnell erweitern und auf Tausende Kerne skalieren.
Architekturstile als Einschränkungen
Ein Architekturstil platziert Einschränkungen für den Entwurf, einschließlich der Elemente, die angezeigt werden können, und die zulässigen Beziehungen zwischen diesen Elementen. Einschränkungen leiten die "Form" einer Architektur, indem sie die Auswahlmöglichkeiten einschränken. Wenn eine Architektur den Einschränkungen eines bestimmten Stils entspricht, entstehen bestimmte wünschenswerte Eigenschaften.
Zu den Einschränkungen in Microservices gehören beispielsweise:
- Ein Dienst stellt eine einzige Verantwortung dar.
- Jeder Dienst ist unabhängig von den anderen.
- Daten sind privat für den Dienst, der sie besitzt. Dienste teilen keine Daten.
Wenn Sie diese Einschränkungen einhalten, erhalten Sie ein System, mit dem Sie die folgenden Aktionen ausführen können:
- Stellen Sie Dienste unabhängig bereit.
- Fehler isolieren.
- Nehmen Sie häufigere Updates vor.
- Neue Technologien einfacher in die Anwendung einführen.
Jeder Architekturstil verfügt über eigene Kompromisse. Bevor Sie einen Architekturstil auswählen, ist es wichtig, die zugrunde liegenden Prinzipien und Einschränkungen zu verstehen. Ohne dieses Verständnis riskieren Sie, ein Design zu erstellen, das oberflächlich dem Stil entspricht, ohne dessen volle Vorteile zu erkennen. Konzentrieren Sie sich mehr darauf, warum Sie einen bestimmten Stil wählen, als darauf, wie Sie ihn umsetzen. Seien Sie praktisch. Manchmal ist es besser, eine Einschränkung zu lockern, als technische Reinheit zu verfolgen.
Im Idealfall sollte die Wahl des Architekturstils mit Beiträgen von informierten Arbeitsauslastungsbeteiligten getroffen werden. Das Workloadteam sollte damit beginnen, die Art des Problems zu identifizieren, das sie lösen. Anschließend sollten sie die wichtigsten Geschäftstreiber und die entsprechenden Architekturmerkmale definieren, auch als nichtfunktionelle Anforderungen bezeichnet und priorisiert werden. Wenn beispielsweise Zeit für den Markt kritisch ist, kann das Team Die Wartbarkeit, Testbarkeit und Zuverlässigkeit priorisieren, um eine schnelle Bereitstellung zu ermöglichen. Wenn das Team enge Budgeteinschränkungen aufweist, kann die Machbarkeit und Einfachheit Vorrang haben. Die Auswahl und Erhaltung eines Architekturstils ist keine einmalige Aufgabe. Sie erfordert fortlaufende Messungen, Validierung und Verfeinerung. Da eine spätere Änderung der Architekturrichtung kostspielig sein kann, lohnt es sich oft, im Vorfeld mehr Aufwand zu investieren, um die langfristige Effizienz zu unterstützen und Risiken zu reduzieren.
In der folgenden Tabelle wird zusammengefasst, wie jede Formatvorlage Abhängigkeiten verwaltet, und die Domänentypen, die für jede Formatvorlage am besten geeignet sind.
| Architekturstil | Abhängigkeitsverwaltung | Domänentyp |
|---|---|---|
| N-Ebene | Horizontale Ebenen dividiert durch Subnetz | Traditionelle Geschäftsdomäne. Die Häufigkeit der Updates ist niedrig. |
| Web-Queue-Worker | Front-End- und Back-End-Jobs, entkoppelt durch asynchrone Nachrichtenübermittlung. | Relativ einfache Domäne mit einigen ressourcenintensiven Vorgängen. |
| Microservices | Vertikal (funktionell) dekompilierte Dienste, die sich über APIs gegenseitig aufrufen. | Komplizierte Domäne. Häufige Updates. |
| Ereignisgesteuerte Architektur | Hersteller oder Verbraucher. Unabhängige Ansicht für jedes Subsystem. | Internet of Things (IoT) und Echtzeitsysteme. |
| Big Data | Teilen Sie ein riesiges Dataset in kleine Blöcke auf. Parallele Verarbeitung für lokale Datasets. | Batch- und Echtzeit-Datenanalyse. Prädiktive Analyse durch die Verwendung von maschinellem Lernen. |
| Big Compute | Datenzuweisung an Tausende von Kernen. | Berechnungsintensive Domänen wie Simulation. |
Berücksichtigen von Herausforderungen und Vorteilen
Einschränkungen schaffen auch Herausforderungen, daher ist es wichtig, die Nachteile zu verstehen, wenn Sie eines dieser Stile übernehmen. Ermitteln Sie, ob die Vorteile des Architekturstils die Herausforderungen für diese Unterdomäne und den gebundenen Kontext überwiegen.
Berücksichtigen Sie beim Auswählen eines Architekturstils die folgenden Arten von Herausforderungen:
Kompliziertheit: Die Komplexität der Architektur muss mit der Domäne übereinstimmen. Wenn es zu einfach ist, kann es zu einem großen Schlammball führen, in dem Abhängigkeiten nicht gut verwaltet werden und die Struktur zerbricht.
Asynchrones Messaging und letztendliche Konsistenz: Asynchrones Messaging wird verwendet, um Dienste zu entkoppeln und die Zuverlässigkeit zu verbessern, da Nachrichten wiederholt werden können. Es verbessert auch die Skalierbarkeit. Asynchrone Nachrichtenübermittlung führt jedoch auch zu Herausforderungen bei der Behandlung der eventuellen Konsistenz und der Möglichkeit doppelter Nachrichten.
Interservice-Kommunikation: Durch das Dekompilieren einer Anwendung in separate Dienste kann der Kommunikationsaufwand erhöht werden. In Microservices-Architekturen führt dieser Overhead häufig zu Latenzproblemen oder Netzwerküberlastungen.
Fügsamkeit: Die Verwaltung der Anwendung umfasst Aufgaben wie Überwachung, Bereitstellen von Updates und Verwalten des Betriebszustands.