Schriftliche DevOps-Schulung
Warum brauchen Sie Feedback für sicherere Produktions-Deployments?
In wettbewerbsintensiven Märkten können Sie sich getrennte Abteilungen für Qualitätssicherung und Betrieb kaum leisten, wenn Sie Kunden schnell bedienen und ihre Anforderungen kontinuierlich erfüllen wollen. Viele Entwickler klagen über Bürokratie. Doch selbst wenn sie mit Qualitätssicherung und Betrieb im eigenen Team zusammenarbeiten können, scheuen sie sich oft, eigenständig und ohne Aufsicht in Produktion zu deployen. Deshalb brauchen Sie Techniken und Maßnahmen für sicherere Produktions-Deployments.
So ermöglichen Sie einen kontinuierlichen DevOps-Arbeitsfluss
Erfolgreiche DevOps-Organisationen bringen häufig kleine Änderungspakete in Produktion, damit die Arbeit reibungslos und kontinuierlich fließt. So können alle im Team Änderungen beurteilen, verstehen und bei Bedarf korrigieren.
Eine automatisierte Deployment-Pipeline allein genügt nicht. Integrieren Sie Telemetrie aus dem Betrieb in die Pipeline, damit Sie schnell Rückmeldung zu den Auswirkungen Ihrer Änderungen in Produktion und Vorproduktion erhalten. Schaffen Sie außerdem ein gemeinsames Verständnis: Alle im DevOps-Team sind für den Zustand und das reibungslose Funktionieren des gesamten Wertstroms und der Deployment-Pipeline verantwortlich.
Nutzen Sie Telemetrie für sicherere Deployments
Eine Änderung und ihr Deployment gelten erst als „fertig“, wenn Sie nachgewiesen haben, dass sie wie geplant und programmiert funktionieren. Überwachen Sie nach dem Deployment die Metriken geänderter Module, gegebenenfalls neu angelegte Metriken und die Metriken anderer Komponenten, die betroffen sein könnten.
Auch wenn Sie in Vorproduktionsumgebungen automatisierte Tests ausführen und das getestete System per Telemetrie überwachen, wird es in Produktion weiterhin Probleme geben. Sie können nicht jedes Problem verhindern, sich aber gut auf seine Behebung vorbereiten. Wenn eine Änderung die Pipeline unterbricht, bringen Sie alle nötigen Fachleute zusammen, um das Problem zu beheben und die Pipeline wiederherzustellen. Drei häufig genutzte Methoden sind:
- Die Funktion abschalten: Das ist der einfachste Weg. Dafür ist kein dringendes Code-Deployment nötig. Schalten Sie die Funktion einfach per Feature-Toggle ab. Sie müssen fehlerhafte Teile des Deployments nicht sofort korrigieren. Ihr Team kann die Ursache sorgfältig ermitteln und seine Methoden so verbessern, dass sich das Problem künftig wahrscheinlich nicht wiederholt.
- Das Problem durch eine nachfolgende Korrektur beheben (Fix Forward): Stellen Sie neuen Code bereit, der das Problem behebt. In traditionellen IT-Organisationen ist Fix Forward bei Produktionsproblemen riskant. In DevOps-Organisationen kann es gut, effizient und sicher funktionieren, wenn automatisierte Tests und Deployments sowie umfassende Produktionstelemetrie vorhanden sind.
- Die Änderung zurücknehmen: Sie entfernen den fehlerhaften Code, sodass das Problem hoffentlich verschwindet.
Vermitteln Sie Ihren Entwicklern Rückmeldung aus dem tatsächlichen Betrieb
Lassen Sie Teammitglieder abwechselnd Aufgaben des Betriebs übernehmen und betriebliche Vorfälle bearbeiten. So verstehen alle im Wertstrom die Aufgaben und Schwierigkeiten nachgelagerter Arbeitsbereiche. Setzen Sie Entwickler, Tester, Architekten, Designer und Führungskräfte in außerplanmäßigen Betriebsdiensten ein, damit auch sie um 3 Uhr morgens einen Alarmanruf erhalten. Dadurch entwickeln alle ein fundiertes Verständnis für die Folgen ihrer täglichen Entscheidungen.
Eine solche Rotation hilft Betriebsfachleuten, sich weniger isoliert und allein zu fühlen. Alle im Team helfen dabei, ein gutes Verhältnis zwischen der Behebung von Produktionsvorfällen, dem Abbau technischer Schulden und der Entwicklung neuer Funktionen zu finden. Wenn Sie Architekten und Entwickler um 3 Uhr morgens wecken, werden Vorfälle schneller behoben als je zuvor.
Wenn Entwickler Kunden beim Nutzen ihrer Software beobachten, erkennen sie oft unmittelbar, was verbessert werden sollte. Das gilt auch für Architekten, Designer, Entwickler und Tester, die nachgelagerte Arbeitsbereiche im Softwarelebenszyklus beobachten. Verstehen sie die Folgen ihrer Arbeit für diese Bereiche, können sie ihre Ergebnisse gezielter verbessern, damit die nachgelagerten Teams besser arbeiten können. Alle im DevOps-Team nehmen nichtfunktionale Betriebsanforderungen in ihre Backlogs und tägliche Arbeit auf. Das gelingt nur mit schnellen, kontinuierlichen Feedbackschleifen.
Lassen Sie Ihre Entwickler ihre eigenen Systeme betreiben
Erfahrungen aus echten Produktionssystemen lassen sich schwer an Entwicklungsteams weitergeben. Deshalb geben einige führende DevOps-Organisationen, darunter Google, ihren Entwicklungsteams während und nach der ersten Produkteinführung die Betriebsverantwortung. In dieser Phase beraten Betriebsingenieure. Wenn das Produkt etwa 6 Monate lang nachweislich stabil genug in Produktion gelaufen ist, wird es an das Betriebsteam übergeben. Voraussetzung sind Prüfungen etwa zu früheren und offenen Fehlern, Telemetrieabdeckung, Vorfällen außerhalb der Arbeitszeit, lose gekoppelter Architektur sowie Sicherheit von Änderungen und Deployments.
Werden beim Betrieb erhebliche, zuvor unerkannte Entwurfs- oder Programmierfehler entdeckt, kann das Produkt an die Entwickler zurückgegeben werden. Sie stabilisieren die Software, während die Betriebsingenieure beratend zur Seite stehen.
FAZIT
Dieses Kapitel hat verschiedene Techniken für einen zuverlässigen und sichereren Ablauf Ihrer Deployment-Pipeline vorgestellt.
Diese Techniken zeigen, wie sich Entwicklung und Betrieb in DevOps-Teams mit gegenseitigem Respekt unterstützen.
