Entwurf für den Betrieb
- 15 Minuten
|
|
|---|
Testen Sie Fehler frühzeitig und häufig während der Entwicklung. Bestimmen Sie, wie sich Leistungsprobleme auf die Zuverlässigkeit auswirken. Stellen Sie aus Gründen der Ursachenanalyse und Nachbesprechungen sicher, dass alle Teams den Status von Abhängigkeiten und derzeitigen Ausfällen einsehen können. Verwenden Sie Erkenntnisse, Diagnosen und Warnungen von observierbaren Systemen, um Vorfälle zu verwalten und kontinuierlich zu verbessern.
Contoso University führt eine Web-App aus, die auf Microservices basiert, die Bildungsdienste wie Onlineklassen für Lehrkräfte und Studenten von Contoso bereitstellt. Die Workload basiert auf Azure App Service, Azure SQL-Datenbank, Microsoft Entra ID, Azure Key Vault, Azure Service Bus, Azure Monitor und Azure DevOps.
Hinzufügen einer robusten Überwachung
Erstellen Sie feststellbare Systeme, die Telemetrie korrelieren können.
Überwachung und Diagnose sind wichtige Vorgänge. Wenn etwas fehlschlägt, müssen Sie wissen, dass es fehlgeschlagen ist, wann es passiert ist und warum es passiert ist. Die Beobachtbarkeit auf Komponentenebene ist grundlegend, aber die Gesamtüberwachung von Komponenten und Flüssen bietet einen ganzheitlichen Überblick über den Gesundheitsstatus. Diese Daten helfen Technikern bei der Standortzuverlässigkeit, ihre Bemühungen zur Behebung von Problemen zu priorisieren.
Herausforderung für Contoso
Die Workload-Anwendung wird als Teil einer Suite von fünf entkoppelten Diensten auf mehreren Funktionsebenen bereitgestellt.
Das Team möchte Transaktionen und Benutzeranfragen analysieren können, während sie verschiedene Ebenen des Lösungssystems durchlaufen, um Engpässe zu identifizieren, die zu Instabilität führen und Probleme effizient lösen können.
Anwenden des Ansatzes und der Ergebnisse
Das Workloadteam verwendet Application Insights, um Protokolle und Metriken zu erfassen und die Protokollierung für alle Plattformdienste zu konfigurieren. Alle Protokolle werden an den Azure Monitor-Arbeitsbereich der Workload weitergeleitet.
Daten im Azure Monitor-Arbeitsbereich können verwendet werden, um den Zustand einzelner Komponenten und der Gesamtlösung zu analysieren.
Das Korrelieren von Einträgen, die zu derselben Anforderung über Komponenten und Ebenen hinweg gehören, hilft dem Team, den Arbeitsauslastungsstatus zu ermitteln und Probleme einfacher zu beheben.
Vorhersagen potenzieller Probleme und ungewöhnliches Verhalten
Verwenden Sie priorisierte und umsetzbare Warnungen, um Zuverlässigkeitsprobleme sichtbar zu machen. Investieren Sie in zuverlässige Prozesse und Infrastruktur, um die Triage zu beschleunigen.
Zuverlässigkeitstechniker von Standorten können sofort über Probleme benachrichtigt werden. Sie können fortlaufende Vorfälle auf Live-Systemen bearbeiten und proaktiv potenzielle Ausfälle beheben, die von Vorabwarnungen identifiziert werden, bevor sie zu echten Vorfällen werden.
Herausforderung für Contoso
Das Team erwartet zu Beginn jedes Semesters einen Anstieg des Online-Traffics, indem sich die Studierenden für Kurse registrieren, auf Lehrpläne zugreifen und Lehrbücher kaufen.
In diesem kritischen Zeitraum des akademischen Jahres muss das Team sicherstellen, dass genügend Kapazität zur Bewältigung der erhöhten Last vorhanden ist. Sie müssen schnell auf andere potenzielle Verfügbarkeitsprobleme reagieren können, die möglicherweise auftreten.
Anwenden des Ansatzes und der Ergebnisse
Das Team konfiguriert die Web- und Datenbankebenen so, dass sie automatisch skalieren, sodass zusätzliche Kapazität verfügbar ist, bevor der erwartete Anstieg der Nachfrage einsetzt, und weitere Kapazität hinzugefügt wird, wenn die Auslastung zunimmt.
Der Notfallreaktionsplan wird aktualisiert, sodass das Vorfallreaktionsteam Warnungen im Zusammenhang mit den gestressten Flüssen in diesem Zeitraum priorisiert.
Prüfung auf Zuverlässigkeitsrisiken
Simulieren von Fehlern und Ausführen von Tests in Produktions- und Vorproduktionsumgebungen.
Es ist hilfreich, Fehler in der Produktion zu erleben, damit Sie realistische Erwartungen an die Wiederherstellung festlegen können. Mit dieser Übung können Sie Designentscheidungen treffen, die ordnungsgemäß auf Fehler reagieren. Außerdem können Sie Schwellenwerte testen, die Sie für Geschäftsmetriken festlegen.
Herausforderung für Contoso
Die Kommunikation zwischen der Webebene und dem REST-Dienst für die Schülerregistrierung in dieser Workload basiert auf Clientzertifikaten.
Nach Beginn des Semesters wird die Funktionalität der Schülerregistrierung kaum genutzt. Wenn das Zertifikat abläuft, wird das Problem möglicherweise einige Zeit lang nicht erkannt.
Während des letzten Registrierungszeitraums gab es mehrere Unterbrechungen des Diensts, da das System keine vorübergehenden Konnektivitätsfehler gut behandelt hat. Das Team hat einige Codeverbesserungen zur Behandlung vorübergehender Fehler vorgenommen, weiß aber nicht, wie sich die Funktionalität in realen Produktionsszenarien verhält.
Anwenden des Ansatzes und der Ergebnisse
Das Team erstellt synthetische Transaktionstests, die monatlich in der Produktionsumgebung ausgeführt werden. Dieser Test simuliert mehrere Flüsse, einschließlich des Registrierungsflusses.
Die Warnung wird für die Synthetischen Transaktionstests eingerichtet, sodass das Team benachrichtigt wird, wenn ein Fehler auftritt, z. B. ablaufende Zertifikate.
Das Team fügt ihrem Softwareentwicklungslebenszyklus (SDLC) Chaostests hinzu. Sie führen routinebasierte Chaostests durch und erfassen die Ergebnisse, um Selbsterhaltungstechniken zu validieren und unbekannte Zuverlässigkeitsprobleme aufzudecken.