Der erste Schritt zur Erstellung einer zuverlässigen Infrastruktur für Ihre Cloud-Arbeitslasten besteht darin, die Zuverlässigkeitsanforderungen der Arbeitslasten zu ermitteln. Dieser Teil des Zuverlässigkeitsleitfadens für Google Cloud-Infrastruktur enthält Richtlinien, mit denen Sie die Zuverlässigkeitsanforderungen von Arbeitslasten definieren können, die Sie in Google Cloud bereitstellen.
Arbeitslastspezifische Anforderungen bestimmen
Die Zuverlässigkeitsanforderungen einer Anwendung hängen von der Art des Dienstes ab, den die Anwendung bereitstellt, oder vom Prozess, den sie ausführt. Beispielsweise benötigt eine Anwendung, die TM-Dienste für eine Bank bereitstellt, unter Umständen eine Verfügbarkeit von 5 Neunen. Eine Website, die eine Online-Handelsplattform unterstützt, benötigt möglicherweise eine Verfügbarkeit von 5 Neunen und eine schnelle Reaktionszeit. Ein Batchprozess, der Banktransaktionen am Ende jedes Tages in ein Buchverzeichnis schreibt, kann ein Ziel für die Datenaktualität von acht Stunden haben.
Innerhalb einer Anwendung können die einzelnen Komponenten oder Vorgänge unterschiedliche Zuverlässigkeitsanforderungen haben. Eine Anwendung zur Bestellabwicklung könnte beispielsweise eine höhere Zuverlässigkeit für Vorgänge benötigen, die Daten in die Auftragsdatenbank schreiben, als für Leseanforderungen.
Wenn Sie die Zuverlässigkeitsanforderungen Ihrer Arbeitslasten genau bewerten, können Sie Ihre Ausgaben und Ihren Aufwand auf die Arbeitslasten konzentrieren, die für Ihr Unternehmen wichtig sind.
Kritische Zeiträume identifizieren
Es kann Zeiten geben, zu denen eine Anwendung geschäftskritischer ist als zu anderen Zeiten. Diese Zeiträume sind oft jene, in denen die Anwendung die Spitzenlast hat. Identifizieren Sie diese Zeiträume, planen Sie eine angemessene Kapazität ein und testen Sie die Anwendung in einer Lastspitzensituation. Um das Risiko von Anwendungsausfällen während Spitzenlastzeiten zu vermeiden, können Sie geeignete Betriebspraktiken wie das Einfrieren des Produktionscodes verwenden.
Die folgenden Beispiele zeigen Anwendungen, bei denen saisonale Spitzen auftreten:
- Das Inventarmodul einer Anwendung für die Buchhaltung wird in der Regel stärker an den Tagen verwendet, an denen die monatlichen, vierteljährlichen oder jährlichen Inventarprüfungen geplant sind.
- Eine E-Commerce-Website hat während Fest- und Feiertagen oder Verkaufsaktionen erhebliche Spitzen bei der Last.
- Eine Datenbank, die das Zulassungsmodul einer Universität unterstützt, hat in bestimmten Monaten eines Jahres eine hohe Anzahl an Schreibvorgängen.
- Ein Online-Dienst zur Steuerbearbeitung kann kurz vor den Abgabefristen eine hohe Belastung haben.
- Eine Online-Handelsplattform benötigt möglicherweise Verfügbarkeiten von 5 Neunen und eine schnelle Reaktionszeit, aber nur während der Handelszeiten (z. B. 8:00 bis 17:00 Uhr von Montag bis Freitag).
Andere nicht funktionale Anforderungen berücksichtigen
Neben Zuverlässigkeitsanforderungen können Unternehmensanwendungen weitere wichtige nicht funktionale Anforderungen für Sicherheit, Leistung, Kosten und Betriebeffizienz erfüllen müssen. Berücksichtigen Sie beim Bewerten der Zuverlässigkeitsanforderungen einer Anwendung die Abhängigkeiten und Kompromisse bei diesen anderen Anforderungen.
Die folgenden Beispiele zeigen Anforderungen an die Zuverlässigkeit, die jedoch Kompromisse bei den Zuverlässigkeitsanforderungen mit sich bringen können.
- Kostenoptimierung: Zur Optimierung Ihrer IT-Kosten können in Ihrer Organisation Kontingente für bestimmte Cloud-Ressourcen gelten. Wenn Sie beispielsweise die Kosten von Softwarelizenzen von Drittanbietern reduzieren möchten, kann Ihre Organisation Kontingente für die Anzahl der bereitgestellten Kerne festlegen. Ähnliche Kontingente können für die Datenmenge, die gespeichert werden kann, und für das Volumen des regionenübergreifenden Netzwerkverkehrs bestehen. Berücksichtigen Sie die Auswirkungen dieser Kostenbeschränkungen auf die Optionen, die für das Entwerfen einer zuverlässigen Infrastruktur verfügbar sind.
- Datenstandort:Um die Anforderungen von Verordnungen zu erfüllen, muss Ihre Anwendung möglicherweise Daten in bestimmten Ländern speichern und verarbeiten, auch wenn das Unternehmen Nutzer weltweit bedient. Berücksichtigen Sie solche Datenstandortbeschränkungen, wenn Sie die Regionen und Zonen bestimmen, in denen Ihre Anwendungen bereitgestellt werden können.
Bestimmte Designentscheidungen, die Sie treffen, um andere Anforderungen zu erfüllen, können die Zuverlässigkeit Ihrer Anwendungen verbessern. Hier einige Beispiele:
- Automatisierung der Bereitstellung:Für einen effizienten Betrieb Ihrer Cloud-Bereitstellungen können Sie den Bereitstellungsablauf mithilfe von Infrastruktur als Code (IaC) automatisieren. Ebenso können Sie den Build- und Bereitstellungsprozess der Anwendung mithilfe einer CI/CD-Pipeline (Continuous Integration and Continuous Deployment) automatisieren. Die Verwendung von IaC- und CI/CD-Pipelines kann nicht nur die Betriebseffizienz, sondern auch die Zuverlässigkeit Ihrer Arbeitslasten verbessern.
- Sicherheitskontrollen: Von Ihnen implementierte Sicherheitskontrollen können auch die Verfügbarkeit der Anwendung verbessern. Google Cloud Armor-Sicherheitsrichtlinien können beispielsweise dafür sorgen, dass die Anwendung während Denial-of-Service-Angriffen (DoS) verfügbar bleibt.
- Content Caching:Zur Verbesserung der Leistung einer Inhaltsbereitstellungsanwendung können Sie das Caching als Teil Ihrer Load-Balancer-Konfiguration aktivieren. Mit diesem Design erhalten Nutzer nicht nur schneller Zugriff auf Inhalte, sondern auch eine höhere Verfügbarkeit. Sie können auch dann auf im Cache gespeicherte Inhalte zugreifen, wenn die Ursprungsserver nicht verfügbar sind.
Anforderungen regelmäßig neu bewerten
Wenn sich Ihr Unternehmen weiterentwickelt und wächst, können sich die Anforderungen Ihrer Anwendungen ändern. Prüfen Sie Ihre Zuverlässigkeitsanforderungen regelmäßig und achten Sie darauf, dass sie den aktuellen Geschäftszielen und Prioritäten Ihrer Organisation entsprechen.
Betrachten wir eine Anwendung, die eine Standardverfügbarkeit für alle Nutzer bietet. Möglicherweise haben Sie die Anwendung in zwei Zonen innerhalb einer Region mit einem regionalen Load-Balancer als Frontend bereitgestellt. Wenn Ihre Organisation eine Premium-Dienstoption mit höherer Verfügbarkeit einführen möchte, haben sich die Zuverlässigkeitsanforderungen der Anwendung geändert. Um die neuen Verfügbarkeitsanforderungen zu erfüllen, müssen Sie die Anwendung möglicherweise in mehreren Regionen bereitstellen und einen globalen Load-Balancer mit aktiviertem Cloud CDN verwenden.
Eine weitere Möglichkeit, die Verfügbarkeitsanforderungen Ihrer Anwendungen neu zu bewerten, besteht nach einem Ausfall. Ausfälle können nicht übereinstimmende Erwartungen verschiedener Teams in Ihrem Unternehmen aufdecken. Ein Team kann beispielsweise einen Ausfall von 45 Minuten pro Jahr als akzeptabel betrachten (d. h. 99,99% jährliche Verfügbarkeit). Ein anderes Team erwartet jedoch eine maximale Ausfallzeit von 4,3 Minuten pro Monat, also 99,99% monatliche Verfügbarkeit. Je nachdem, wie Sie die Verfügbarkeitsanforderungen ändern oder klären, sollten Sie Ihre Architektur an die neuen Anforderungen anpassen.