Der Zuverlässigkeitspfeiler im Google Cloud -Architektur-Framework enthält Prinzipien und Empfehlungen, die Ihnen beim Entwerfen, Bereitstellen und Verwalten zuverlässiger Arbeitslasten in Google Cloudhelfen.
Dieses Dokument richtet sich an Cloud-Architekten, Entwickler, Plattformingenieure, Administratoren und Site Reliability Engineers.
Zuverlässigkeit ist die Fähigkeit eines Systems, seine vorgesehenen Funktionen unter den definierten Bedingungen konstant auszuführen und einen unterbrechungsfreien Dienst aufrechtzuerhalten. Zu den Best Practices für Zuverlässigkeit gehören Redundanz, ein fehlertolerantes Design, Monitoring und automatisierte Wiederherstellungsprozesse.
Die Ausfallsicherheit ist ein Teil der Zuverlässigkeit und beschreibt die Fähigkeit des Systems, Ausfälle oder unerwartete Störungen zu überstehen und sich davon zu erholen, während die Leistung aufrechterhalten wird. Mit Funktionen vonGoogle Cloud wie mehrfachen regionalen Bereitstellungen, automatisierten Sicherungen und Notfallwiederherstellungslösungen können Sie die Resilienz Ihres Systems verbessern.
Zuverlässigkeit ist aus vielen Gründen wichtig für Ihre Cloud-Strategie, darunter:
- Minimale Ausfallzeiten: Ausfallzeiten können zu Umsatzeinbußen, geringerer Produktivität und Reputationsschäden führen. Mit resilienten Architekturen lässt sich dafür sorgen, dass Systeme bei Ausfällen weiter funktionieren oder sich effizient von Ausfällen erholen.
- Verbesserte Nutzererfahrung: Nutzer erwarten nahtlose Interaktionen mit der Technologie. Resiliente Systeme können dazu beitragen, eine gleichbleibende Leistung und Verfügbarkeit zu gewährleisten und einen zuverlässigen Dienst auch bei hoher Nachfrage oder unerwarteten Problemen zu bieten.
- Datenintegrität: Fehler können zu Datenverlusten oder Datenbeschädigungen führen. In resilienten Systemen werden Mechanismen wie Sicherungen, Redundanz und Replikation implementiert, um Daten zu schützen und dafür zu sorgen, dass sie korrekt und zugänglich bleiben.
- Geschäftskontinuität: Ihr Unternehmen ist für wichtige Abläufe auf Technologie angewiesen. Resiliente Architekturen können dazu beitragen, die Kontinuität nach einem katastrophalen Ausfall zu gewährleisten. So können Geschäftsfunktionen ohne größere Unterbrechungen fortgesetzt und eine schnelle Wiederherstellung unterstützt werden.
- Compliance: In vielen Branchen gibt es behördliche Vorschriften für die Systemverfügbarkeit und den Datenschutz. Mit resilienten Architekturen können Sie diese Standards erfüllen, da die Systeme betriebsbereit und sicher bleiben.
- Niedrigere langfristige Kosten: Resiliente Architekturen erfordern eine Vorabinvestition. Resilienz kann jedoch dazu beitragen, die Kosten im Laufe der Zeit zu senken, indem teure Ausfallzeiten vermieden, reaktive Fehlerbehebungen verhindert und eine effizientere Ressourcennutzung ermöglicht werden.
Organisatorische Denkweise
Damit Ihre Systeme zuverlässig sind, benötigen Sie einen Plan und eine Strategie. Diese Strategie muss neben anderen Initiativen auch Schulungen und die Befugnis umfassen, Zuverlässigkeit zu priorisieren.
Machen Sie deutlich, dass die gesamte Organisation für die Zuverlässigkeit verantwortlich ist, einschließlich Entwicklung, Produktmanagement, Betrieb, Plattformentwicklung und Site Reliability Engineering (SRE). Selbst geschäftsorientierte Gruppen wie Marketing und Vertrieb können die Zuverlässigkeit beeinflussen.
Jedes Team muss die Zuverlässigkeitsziele und Risiken seiner Anwendungen kennen. Die Teams müssen für diese Anforderungen verantwortlich sein. Konflikte zwischen Zuverlässigkeit und regelmäßiger Produktfeature-Entwicklung müssen priorisiert und entsprechend eskaliert werden.
Planen und verwalten Sie die Zuverlässigkeit ganzheitlich, über alle Funktionen und Teams hinweg. Sie sollten ein Cloud Center of Excellence (CCoE) einrichten, das eine Säule für Zuverlässigkeit enthält. Weitere Informationen finden Sie unter Cloud-Transformation Ihrer Organisation mit einem Cloud Center of Excellence optimieren.
Schwerpunkte für Zuverlässigkeit
Die Aktivitäten, die Sie zum Entwerfen, Bereitstellen und Verwalten eines zuverlässigen Systems ausführen, können in die folgenden Schwerpunktbereiche kategorisiert werden. Jedes der Zuverlässigkeitsprinzipien und Empfehlungen in diesem Bereich ist für einen dieser Schwerpunktbereiche relevant.
- Umfang definieren: Führen Sie eine detaillierte Analyse der Architektur Ihres Systems durch, um es besser zu verstehen. Sie müssen die Komponenten, ihre Funktionsweise und Interaktion, den Daten- und Aktionsfluss durch das System und die möglichen Fehlerquellen kennen. Sie können potenzielle Fehler, Engpässe und Risiken identifizieren, um Maßnahmen zur Behebung dieser Probleme zu ergreifen.
- Beobachtung: Um Systemausfälle zu vermeiden, sollten Sie eine umfassende und kontinuierliche Beobachtung und Überwachung implementieren. So können Sie Trends besser nachvollziehen und potenzielle Probleme proaktiv erkennen.
- Reaktion: Um die Auswirkungen von Ausfällen zu minimieren, reagieren Sie angemessen und erholen Sie sich effizient. Automatisierte Antworten können auch dazu beitragen, die Auswirkungen von Ausfällen zu verringern. Selbst bei Planung und Kontrollen können Fehler auftreten.
- Lernen: Um Wiederholungen zu vermeiden, sollten Sie aus jeder Erfahrung lernen und entsprechende Maßnahmen ergreifen.
Grundprinzipien
Die Empfehlungen in der Säule „Zuverlässigkeit“ des Architektur-Frameworks sind den folgenden Grundprinzipien zugeordnet:
- Zuverlässigkeit anhand von Zielvorhaben für die Nutzererfahrung definieren
- Realistische Ziele für die Zuverlässigkeit festlegen
- Hochverfügbare Systeme durch redundante Ressourcen erstellen
- Vorteile der horizontalen Skalierung nutzen
- Potenzielle Fehler mithilfe von Observabilität erkennen
- Design für Graceful Degradation
- Tests zur Wiederherstellung nach Fehlern durchführen
- Tests zur Wiederherstellung nach Datenverlust durchführen
- Umfassende Postmortem-Analysen durchführen
Beitragende
Autoren:
- Laura Hyatt | Enterprise Cloud Architect
- Jose Andrade | Enterprise Infrastructure Customer Engineer
- Gino Pelliccia | Principal Architect
Weitere Beitragende:
- Andrés-Leonardo Martínez-Ortiz | Technical Program Manager
- Brian Kudzia | Enterprise Infrastructure Customer Engineer
- Kumar Dhanagopal | Cross-Product Solution Developer
- Daniel Lees | Cloudsicherheitsarchitekt
- Radhika Kanakam | Senior Program Manager, Cloud GTM