Bewährte Methoden in Cloudanwendungen
Diese bewährten Methoden unterstützen Sie bei der Erstellung zuverlässiger, skalierbarer und sicherer Anwendungen in der Cloud. Sie bieten Richtlinien und Tipps zum Entwerfen und Implementieren effizienter und stabiler Systeme, Mechanismen und Ansätze. Viele enthalten auch Codebeispiele, die Sie in Azure-Diensten verwenden können. Die Vorgehensweisen gelten für jedes verteilte System, unabhängig davon, ob Sie Azure oder eine andere Cloudplattform als Host verwenden.
Katalog mit Vorgehensweisen
In dieser Tabelle sind verschiedene bewährte Methoden aufgeführt. Die Spalte Verwandte Säulen oder Muster enthält die folgenden Links:
- Herausforderungen der Cloudentwicklung, auf die die Methode und die zugehörigen Entwurfsmuster ausgerichtet sind
- Säulen des Microsoft Azure Well-Architected Frameworks, die von der Methode besonders berücksichtigt werden
Üben | Zusammenfassung | Verwandte Säulen oder Muster |
---|---|---|
API-Design | Entwerfen Sie Web-APIs mit Unterstützung von Plattformunabhängigkeit, indem Sie Standardprotokolle und vereinbarte Datenformate verwenden. Fördern Sie die Weiterentwicklung von Diensten, sodass Clients Funktionen entdecken können, ohne dass Änderungen erforderlich sind. Verbessern Sie die Antwortzeiten, und verhindern Sie vorübergehende Fehler, indem Sie Teilantworten unterstützen und Möglichkeiten zum Filtern und Paginieren von Daten bereitstellen. | Entwurf und Implementierung, Leistungseffizienz, erstklassige Betriebsprozesse |
API-Implementierung | Implementieren Sie Web-APIs für Effizienz, Reaktionsfähigkeit, Skalierbarkeit und Verfügbarkeit. Sorgen Sie für die Idempotenz von Aktionen, unterstützen Sie die Inhaltsaushandlung, und befolgen Sie die HTTP-Spezifikation. Verarbeiten Sie Ausnahmen, und unterstützen Sie die Ermittlung von Ressourcen. Bieten Sie Möglichkeiten zur Verarbeitung umfangreicher Anforderungen und zur Minimierung des Netzwerkdatenverkehrs. | Entwurf und Implementierung, erstklassige Betriebsprozesse |
Automatische Skalierung | Entwerfen Sie Apps so, dass Ressourcen dynamisch zugeordnet bzw. deren Zuordnung aufgehoben wird, um Leistungsanforderungen zu erfüllen und Kosten zu minimieren. Profitieren Sie von der Azure Monitor-Autoskalierung und der integrierten automatischen Skalierung, die von vielen Azure-Komponenten angeboten wird. | Leistungseffizienz, Kostenoptimierung |
Hintergrundaufträge | Implementieren Sie Batchaufträge, Verarbeitungsaufgaben und Workflows als Hintergrundaufträge. Verwenden Sie Azure-Plattformdienste, um diese Aufgaben zu hosten. Lassen Sie Aufgaben durch Ereignisse oder Zeitpläne auslösen und Ergebnisse an aufrufende Aufgaben zurückgeben. | Entwurf und Implementierung, erstklassige Betriebsprozesse |
Zwischenspeichern | Verbessern Sie die Leistung, indem Sie Daten in schnellen Speicher in der Nähe von Apps kopieren. Speichern Sie Daten zwischen, die Sie häufig lesen, aber nur selten ändern. Verwalten Sie Datenablauf und Parallelität. Erfahren Sie, wie Caches aufgefüllt werden und wie Sie den Azure Cache for Redis-Dienst verwenden. | Datenverwaltung, Leistungseffizienz |
Content Delivery Network | Verwenden Sie Content Delivery Networks (CDNs), um Webinhalte effizient für Benutzer bereitzustellen und die Auslastung von Web-Apps zu reduzieren. Bewältigen Sie Herausforderungen bei Bereitstellung, Versionsverwaltung, Sicherheit und Resilienz. | Datenverwaltung, Leistungseffizienz |
Datenpartitionierung | Partitionieren Sie Daten, um Skalierbarkeit, Verfügbarkeit und Leistung zu verbessern und Konflikte sowie Kosten für die Datenspeicherung zu reduzieren. Verwenden Sie die horizontale, vertikale und funktionale Partitionierung auf effiziente Weise. | Datenverwaltung, Leistungseffizienz, Kostenoptimierung |
Strategien für die Datenpartitionierung (dienstbasiert) | Partitionieren Sie Daten in Azure SQL-Datenbank- und Azure Storage-Diensten wie Azure Table Storage und Azure Blob Storage. Konfigurieren Sie Shards für Ihre Daten, um Lasten zu verteilen, Wartezeiten zu verkürzen und die horizontale Skalierung zu unterstützen. | Datenverwaltung, Leistungseffizienz, Kostenoptimierung |
Beibehaltung des Hostnamens | Erfahren Sie, warum es wichtig ist, den ursprünglichen HTTP-Hostnamen zwischen einem Reverseproxy und seiner Back-End-Webanwendung zu erhalten, und wie Sie diese Empfehlung für die gängigsten Azure-Dienste implementieren. | Entwurf und Implementierung, Zuverlässigkeit |
Überlegungen zur Nachrichtencodierung | Verwenden Sie asynchrone Nachrichten für den Informationsaustausch zwischen Systemkomponenten. Wählen Sie die Nutzdatenstruktur, das Codierungsformat und die Serialisierungsbibliothek aus, die für Ihre Daten am besten funktionieren. | Messaging, Sicherheit |
Überwachung und Diagnose | Verfolgen Sie den Zustand, die Nutzung und die Leistung des Systems über eine Überwachungs- und Diagnosepipeline. Verwandeln Sie Überwachungsdaten in Warnungen, Berichte und Trigger, die in verschiedenen Situationen helfen. Beispiele hierfür sind das Erkennen und Beheben von Problemen, das Ermitteln potenzieller Probleme, das Erfüllen von Leistungsgarantien und das Erfüllen von Überwachungsanforderungen. | Operational Excellence |
Wiederholungsanleitung für bestimmte Dienste | Verwenden Sie die von Azure-Diensten und Client-SDKs angebotenen Wiederholungsmechanismen, passen Sie sie an, und erweitern Sie sie. Entwickeln Sie einen systematischen und stabilen Ansatz für die Verwaltung temporärer Probleme mit Verbindungen, Vorgängen und Ressourcen. | Entwurf und Implementierung, Zuverlässigkeit |
Behandeln vorübergehender Fehler | Behandeln Sie vorübergehende Fehler, die durch nicht verfügbare Netzwerke oder Ressourcen verursacht werden. Bewältigen Sie Herausforderungen bei der Entwicklung geeigneter Wiederholungsstrategien. Vermeiden Sie das Duplizieren von Wiederholungscodeebenen und andere Antimuster. | Entwurf und Implementierung, Zuverlässigkeit |