Professional Cloud DevOps Engineer

Tätigkeitsbeschreibung

Ein Professional Cloud DevOps Engineer sorgt für effiziente DevOps-Prozesse, um bei der Bereitstellung von Diensten ein ausgewogenes Maß an Zuverlässigkeit und Geschwindigkeit zu ermöglichen. Er setzt die Google Cloud Platform kompetent ein, um Pipelines für die Softwarelieferung zu erstellen, Dienste bereitzustellen und zu überwachen sowie Vorfälle zu verwalten und daraus zu lernen.

Prüfungsleitfaden

1. Site Reliability Engineering-Grundsätze auf einen Dienst anwenden

    1.1 Ausgewogenes Verhältnis zwischen Änderungen, Geschwindigkeit und Zuverlässigkeit des Diensts schaffen:

    • SLIs ermitteln (Verfügbarkeit, Latenz usw.)
    • SLOs definieren und SLAs verstehen
    • Maßnahmen bei Überschreitung des Fehlerbudgets vereinbaren
    • Feedback-Loops als Inspirationsquelle für neue Entwicklungen erstellen
    • Komplexe Abläufe automatisieren

    1.2 Dienstlebenszyklus verwalten:

    • Dienste verwalten (z. B. Dienste einführen, bereitstellen, verwalten und deaktivieren)
    • Kapazität planen (z. B. Kontingente und Limits)

    1.3 Für stabile Kommunikation und Zusammenarbeit bei Prozessen sorgen:

    • Burnout vermeiden (z. B. Prozesse automatisieren, um Überlastungen zu verhindern)
    • Lernkultur fördern
    • Kultur der Schuldlosigkeit fördern

2. CI/CD-Pipelines für einen Dienst erstellen und implementieren

    2.1 CI/CD-Pipelines entwickeln:

    • Nicht veränderbare Artefakte mit Container Registry
    • Artefakt-Repositories mit Container Registry
    • Bereitstellungsstrategien mit Cloud Build und Spinnaker
    • Bereitstellung in Hybrid- und Multi-Cloud-Umgebungen mit Anthos, Spinnaker und Kubernetes
    • Strategien für die Artefakt-Versionsverwaltung mit Cloud Build und Container Registry
    • CI/CD-Pipeline-Trigger mit Cloud Source Repositories, Cloud Build GitHub App und Cloud Pub/Sub
    • Neue Version mit Spinnaker testen
    • Bereitstellungsverfahren konfigurieren (z. B. Genehmigungsabläufe)

    2.2 CI/CD-Pipelines implementieren:

    • CI mit Cloud Build
    • CD mit Cloud Build
    • Open-Source-Tools (z. B. Jenkins, Spinnaker, GitLab, Concourse)
    • Bereitstellungen prüfen und verfolgen (z. B. CSR, Cloud Build, Cloud-Audit-Logs)

    2.3 Konfiguration und Secrets verwalten:

    • Sichere Speichermethoden
    • Secret-Rotation und Konfigurationsänderungen

    2.4 Infrastruktur als Code verwalten:

    • Terraform/Cloud Deployment Manager
    • Infrastrukturcode versionieren
    • Änderungen der Infrastruktur sicherer gestalten
    • Nicht veränderbare Architektur

    2.5 CI/CD-Tools bereitstellen:

    • Zentralisierte Tools oder mehrere Tools (ein oder mehrere Mandanten)
    • Sicherheit von CI/CD-Tools

    2.6 Unterschiedliche Entwicklungsumgebungen verwalten (z. B. Staging, Produktion usw.):

    • Anzahl der Umgebungen und deren Zweck festlegen
    • Umgebungen dynamisch pro Funktionszweig mit GKE und Cloud Deployment Manager erstellen
    • Lokale Entwicklungsumgebungen mit Docker, Cloud Code und Skaffold

    2.7 Bereitstellungspipeline schützen:

    • Sicherheitsanalysen mit Container Registry
    • Binärautorisierung
    • IAM-Richtlinien pro Umgebung

3. Monitoring-Strategien für Dienste implementieren

    3.1 Anwendungslogs verwalten:

    • Logs von Compute Engine und GKE mit Stackdriver Logging und Fluentd erfassen
    • Logs von Drittanbietern und strukturierte Logs mit Stackdriver Logging und Fluentd erfassen
    • Anwendungslogs mit Stackdriver Logging direkt an Stackdriver API senden

    3.2 Anwendungsmesswerte mit Stackdriver Monitoring verwalten:

    • Messwerte von Compute Engine erfassen
    • GKE/Kubernetes-Messwerte erfassen
    • Metrics Explorer für Ad-hoc-Messwertanalysen verwenden

    3.3 Stackdriver Monitoring-Plattform verwalten:

    • Monitoring-Dashboard erstellen
    • Dashboards filtern und teilen
    • Drittanbieterbenachrichtigung in Stackdriver Monitoring konfigurieren (d. h. PagerDuty, Slack usw.)
    • Benachrichtigungsrichtlinien basierend auf SLIs mit Stackdriver Monitoring definieren
    • Definition von Benachrichtigungsrichtlinien mit Cloud DM oder Terraform automatisieren
    • SLO-Monitoring und -Benachrichtigung mit Stackdriver Monitoring implementieren
    • Stackdriver Monitoring-Integrationen verstehen (z. B. Grafana, BigQuery)
    • Mit SIEM-Tools Audit-/Flusslogs analysieren (z. B. Splunk, Datadog)
    • Stackdriver Arbeitsbereich-Strategie entwickeln

    3.4 Stackdriver Logging-Plattform verwalten:

    • Datenzugriffslogs aktivieren (z. B. Cloud-Audit-Logs)
    • VPC-Flusslogs aktivieren
    • Logs in der GCP Console ansehen
    • Einfache oder erweiterte Filter verwenden
    • Logbasierte Messwerte implementieren
    • Logging-Ausschluss und -Export verstehen
    • Optionen für Logging-Export auswählen
    • Export auf Projekt- oder Organisationsebene implementieren
    • Exportlogs in Cloud Storage und BigQuery ansehen
    • Logs an externe Logging-Plattform senden

    3.5 Logging- und Monitoring-Zugriffskontrollen implementieren:

    • Mit ACL Zugriff auf Audit-Logs mit IAM und Stackdriver Logging einschränken
    • Mit ACL Exportkonfiguration mit IAM und Stackdriver Logging einschränken
    • Mit ACL das Schreiben benutzerdefinierter Messwerte mit IAM und Stackdriver Monitoring zulassen

4. Leistung von Diensten optimieren

    4.1 Leistungsprobleme bei Diensten ermitteln

    • Auswirkung auf Nutzer bewerten und verstehen (Stackdriver Service Monitoring für App Engine, Istio)
    • Mit Stackdriver Nutzung von Cloud-Ressourcen ermitteln
    • Mit Stackdriver Trace/Profiler Profil der Leistungsmerkmale erstellen
    • Service Mesh-Telemetrie interpretieren
    • Image-/Betriebssystemfehler beheben
    • Netzwerkprobleme beheben (z. B. VPC-Flusslogs, Firewalllogs, Latenz, Netzwerkdetails ansehen)

    4.2 Fehler in Anwendungscode beheben:

    • Anwendungsinstrumentierung
    • Stackdriver Debugger
    • Stackdriver Logging
    • Stackdriver Trace
    • Fehler in verteilten Anwendungen beheben
    • Lokaler App Engine-Entwicklungsserver
    • Stackdriver Error Reporting
    • Stackdriver Profiler

    4.3 Ressourcennutzung optimieren:

    • Ressourcenkosten ermitteln
    • Nutzungsgrad von Ressourcen ermitteln
    • Plan zur Optimierung der Bereiche mit den höchsten Kosten oder der geringsten Nutzung entwickeln
    • Auf Abruf bereitgestellte VMs verwalten
    • Rabatte für zugesicherte Nutzung verwenden
    • Gesamtbetriebskosten berücksichtigen
    • Netzwerkpreise berücksichtigen

5. Dienstvorfälle verwalten

    5.1 Während Dienstvorfällen Rollen koordinieren und Kommunikationskanäle implementieren:

    • Rollen definieren (Incident Commander, Communication Lead, Operations Lead)
    • Anfragen zur Bewertung von Auswirkungen verarbeiten
    • Regelmäßige interne und externe Statusaktualisierungen bereitstellen
    • Maßgebliche Änderungen des Vorfallsstatus aufzeichnen (Zeitpunkt der Minderung, Zeitpunkt der Behebung usw.)
    • Kommunikationskanäle einrichten (E-Mail, IRC, Hangouts, Slack, Telefon usw.)
    • Reaktionsteam anpassen und delegieren
    • Erschöpfung/Burnout vermeiden
    • Rollen rotieren/übergeben
    • Stakeholder-Relationship-Management organisieren

    5.2 Vorfallssymptome untersuchen, die sich auf Nutzer auswirken:

    • Mögliche Ursachen für Dienstausfälle ermitteln
    • Symptome und mögliche Ursachen bewerten, Wahrscheinlichkeit von Ursachen anhand des beobachteten Verhaltens einstufen
    • Wahrscheinlichste tatsächliche Ursache untersuchen und isolieren
    • Alternativen zur Minderung von Problemen ermitteln

    5.3 Auswirkung von Vorfällen auf Nutzer mindern

    • Release-Rollback durchführen
    • Traffic senken/umleiten
    • Testfunktion deaktivieren
    • Kapazität hinzufügen

    5.4 Fehler beheben (z. B. Cloud Build, Jenkins):

    • Code ändern/Programmfehler beheben
    • Fehlerbehebung prüfen
    • Fehlerbehebung bestätigen

    5.5 Problem in Postmortem dokumentieren:

    • Ursachen dokumentieren
    • Aufgaben festlegen und priorisieren
    • Postmortem an Stakeholder kommunizieren