Freigeben über


Designprinzipien für Azure-Anwendungen

Die Designprinzip-Artikel in diesem Abschnitt bieten eine Grundlage, mit der Sie Cloudanwendungen erstellen können, die Fehlern standhalten, mit Bedarf skalieren und sich mit den geschäftlichen Anforderungen weiterentwickeln können. Ganz gleich, ob Sie ein neues System entwerfen, ältere Anwendungen modernisieren oder Produktionsworkloads planen möchten, diese miteinander verbundenen Prinzipien helfen Ihnen dabei, fundierte Entscheidungen über Zuverlässigkeit, Leistung und Wartung zu treffen. Gemeinsam bilden sie einen umfassenden Ansatz für cloudeigenes Anwendungsdesign, das technische Exzellenz mit geschäftlichem Wert verbindet.

Um Ihre Anwendung skalierbarer, robuster und verwaltbarer zu machen, befolgen Sie diese Designprinzipien.

Kernprinzipien

  • Design für die Selbstheilung. Entwerfen Sie Ihre Anwendung so, dass Fehler erkannt, ordnungsgemäß reagiert und automatisch wiederhergestellt werden. In verteilten Systemen sind Fehler unvermeidlich. Um Fehler zu isolieren und die Systemverfügbarkeit aufrechtzuerhalten, implementieren Sie Wiederholungslogik, Gesundheitsendpunktüberwachung, Circuit-Breaker-Muster und Bulkhead-Muster.

  • Machen Sie alle Dinge redundant. Erstellen Sie Redundanz in Ihrer Anwendung, um einzelne Fehlerpunkte zu vermeiden. Verwenden Sie Load Balancer, mehrere Instanzen, Datenbankreplikate und Multizonen- oder multi-regionale Bereitstellungen. Entwerfen Sie die Redundanzstufe, die Ihren Geschäftsanforderungen und Risikotoleranz entspricht.

  • Minimieren Sie die Koordination. Minimieren Sie die Koordination zwischen Anwendungsdiensten, um Skalierbarkeit zu erzielen. Verwenden Sie entkoppelte Komponenten, die asynchron kommunizieren, setzen Sie gegebenenfalls auf Eventual Consistency, und verwenden Sie Domänenereignisse, um den Zustand ohne enge Kopplung zu synchronisieren.

  • Entwerfen sie, um die Skalierung zu verkleineren. Entwerfen Sie Ihre Anwendung für die horizontale Skalierung, indem Sie Instanzen bei Bedarfsänderungen hinzufügen oder entfernen. Vermeiden Sie Sitzungsbindung, identifizieren Sie Engpässe, teilen Sie Workloads nach Skalierungsanforderungen auf, und verwenden Sie die automatische Skalierung auf der Grundlage von Echtzeitmetriken, um variable Lasten effizient zu bewältigen.

  • Partition um Grenzwerte. Verwenden Sie die Partitionierung, um Datenbank-, Netzwerk- und Computegrenzwerte zu umgehen. Partitionieren Sie Daten horizontal, vertikal oder funktionell, und entwerfen Sie Partitionsschlüssel, um Hotspots zu vermeiden. Erwägen Sie die Partitionierung auf mehreren Ebenen, einschließlich Datenbanken, Warteschlangen und Computeressourcen.

Operative Grundsätze

  • Design für Vorgänge. Entwerfen Sie Ihre Anwendung so, dass Betriebsteams die Tools bereitstellen, die sie für die Bereitstellung, Überwachung und Reaktion auf Vorfälle benötigen. Implementieren Sie umfassende Protokollierung, verteilte Ablaufverfolgung, standardisierte Metriken und automatisieren Sie Verwaltungsaufgaben, um eine effektive operative Aufsicht zu ermöglichen.

  • Verwenden Sie verwaltete Dienste. Verwenden Sie Plattform als Dienst (PaaS) anstelle der Infrastruktur als Service (IaaS). Verwaltete Dienste reduzieren den Betriebsaufwand, bieten integrierte Skalierungsfunktionen und ermöglichen Es Teams, sich auf Anwendungslogik zu konzentrieren, anstatt die Infrastrukturwartung zu warten.

  • Verwenden Sie einen Identitätsdienst. Verwenden Sie eine verwaltete Identitätsplattform wie Microsoft Entra ID, anstatt Ihr eigenes Identitätssystem zu erstellen oder zu betreiben. Verwaltete Lösungen bieten Anmeldeinformationsspeicherung, Authentifizierungsfeatures, Verbundfunktionen und Compliance mit Branchenstandards.

Strategische Prinzipien

  • Entwerfen Sie für die Weiterentwicklung. Design für kontinuierliche Innovation, da sich alle erfolgreichen Anwendungen im Laufe der Zeit ändern. Erzwingen Sie lose Kopplung, kapseln Sie Domänenwissen, verwenden Sie asynchrones Messaging und stellen Sie klar definierte APIs bereit, die umfassendes Versionsmanagement beinhalten, um die unabhängige Weiterentwicklung von Diensten zu ermöglichen.

  • Bauen Sie für die Bedürfnisse von Unternehmen. Treffen Sie Designentscheidungen basierend auf den geschäftlichen Anforderungen. Definieren Sie klare Ziele wie Wiederherstellungszeitvorgaben (Recovery Time Objectives, RTOs), dokumentieren Sie Service-Level-Vereinbarungen (SLAs) und Service-Level-Ziele (SLOs), modellieren Sie Anwendungen um Geschäftsdomänen und planen Sie Wachstum, während Sie funktionale und nicht-funktionale Anforderungen ausgleichen.

  • Durchführen der Fehlermodusanalyse für Dienste. Identifizieren Sie potenzielle Fehlerpunkte in Ihrem System systematisch und planen Sie Wiederherstellungsstrategien. Um die Zuverlässigkeit von Anfang an sicherzustellen, führen Sie eine Fehlermöglichkeits- und Einflussanalyse (FMEA) während der Architektur- und Entwurfsphasen durch. Bewerten Sie jeden Fehlermodus nach Risiko und Auswirkungen, und ermitteln Sie dann geeignete Reaktions- und Wiederherstellungsmechanismen.

Anwenden dieser Prinzipien

Diese Prinzipien arbeiten zusammen, um robuste, skalierbare Anwendungen zu erstellen:

  • Beginnen Sie mit den Geschäftlichen Anforderungen , um zu verstehen, was Sie erstellen und warum.

  • Planen Sie für Ausfälle, indem Sie Selbstheilungsfunktionen und Redundanz implementieren.

  • Planen Sie die Skalierung durch horizontale Skalierung, Partitionierung und minimale Koordination.

  • Verwenden Sie Azure-Dienste , um die Betriebskomplexität zu reduzieren und sich auf geschäftslogik zu konzentrieren.

  • Unterstützen Sie Vorgänge durch ordnungsgemäße Überwachung, Protokollierung und Automatisierung.

  • Gestalten Sie für Veränderungen, um sicherzustellen, dass Ihre Anwendung mit den geschäftlichen Anforderungen weiterentwickelt werden kann.