nd3000 - stock.adobe.com
Drei typische DevOps-Fehler und wie Sie diese vermeiden
Eine DevOps-Initiative hat weitreichende Folgen für die Technologie, Prozesse und Kultur eines Unternehmens. Das gelingt nur, wenn eine kooperative Grundeinstellung vorhanden ist.
Die Umstellung auf DevOps kann das Durchführen kurzfristig umsetzbarer Veränderungen bedeuten – beispielsweise tägliche Code-Implementierungen in der Produktion – aber es braucht Zeit, um die Praktiken, Prozesse und Ideale von DevOps nachhaltig im Unternehmen zu verankern.
Verantwortliche sind manchmal der Meinung, dass das Bilden eines dedizierten DevOps-Teams ausreicht, um beispielsweise Code-Bereitstellung am selben Tag zu etablieren. Andere glauben, dass ein radikaler Wechsel von traditionellen Softwareentwicklungspraktiken zu DevOps die besten Ergebnisse bringt. Doch das bewahrheitet sich leider nicht immer.
Genauso wie es Schritte zu einem erfolgreichen Übergang zu DevOps gibt, gibt es auch die klassischen Fallen bei der Umsetzung von DevOps-Strategien: gängige, aber letztendlich ineffektive Muster, in die Unternehmen verfallen.
Doch in diesem Fall ist ein Bewusstsein für die lauernden Gefahren bereits der erste Schritt, sie zu vermeiden. Im Folgenden erklären wir drei klassische DevOps-Fallen – und wie man sie vermeidet.
Falle 1: Sich zu sehr auf das DevOps-Team konzentrieren
Gefühl ist alles; Name ist Schall und Rauch. Das gilt insbesondere häufig für DevOps-Teams.
Damit das Team etwas bewirken kann, muss die Unternehmensleitung eine Organisationsstruktur, eine Reihe von Prozessen und eine dynamische Kultur fördern, die schnellere Software-Release-Zyklen tragen können. Eine Gruppe von Entwicklern und IT-Administratoren einfach als DevOps-Team zu bezeichnen, macht sie nicht zu einem solchen.
Das Team sollte sich aus bestehenden Entwickler- und Betriebsteams zusammensetzen und nicht eine parallel existierende Einheit sein. Das Schaffen einer getrennten DevOps-Abteilung kann funktionieren, wenn langfristig geplant ist, das bestehende Personal in diese Gruppe zu integrieren. Dieser Ansatz kann jedoch zu Konflikten zwischen den neuen und alten Teams führen.
Ein DevOps-Team ist auch nicht gleichbedeutend mit dem Team, das an den CI/CD Tools (Continuous Integration/Continuous Delivery, kontinuierliche Integration/Auslieferung) arbeitet und einen integrierten Tool Stack erstellt, da ein solches Team keine Anwendungen für die Produktion erstellt. Das müsste das Team aber, um wirklich ein DevOps-Team zu sein.
Die genannten Probleme lassen sich jedoch in drei Schritten vermeiden:
1. Korrigieren Sie zunächst die zugrundeliegenden Prozesse. Unternehmen müssen eine kontinuierliche Integration implementieren, die automatisierte Regressionstests, Sicherheits-Scans, Open Source Compliance und Lizenzüberwachung sowie Code-Prüfungen umfasst. Sie sollten außerdem eine kontinuierliche Bereitstellung (CD, Continuous Deployment) in allen Umgebungen implementieren, einschließlich Entwicklung, Qualitätskontrolle und Produktion. Auch kontinuierliche Messungen sollten Teil Ihrer Überlegungen sein. In der Endlosschleife von DevOps ist es von entscheidender Bedeutung, die Umgebung und die Anwendungen zu überwachen, um Feedback an die Entwickler und den Betrieb zu geben.
2. Strukturieren Sie Ihre Teams stringent. Eine Teamstruktur in einer DevOps-Organisation muss nicht nur alle Abteilungen – Entwickler, Infosec- und Betriebspersonal – zusammenwirken lassen, um Ergebnisse zu erzielen, sondern diese Zusammenarbeit sollte ausgewogen sein.
Sie sollten vermeiden, dass eine Partei in Ihren Teams tonangebend wird, oder, dass Sie Ihre Teams so überreglementieren, dass es nicht zu einem freien Austausch kommen kann.
3. Fördern Sie eine DevOps-Kultur. Der Begriff der DevOps-Kultur mag abgedroschen klingen, aber es geht leider nicht ohne. Damit sich eine DevOps-Organisation weiterentwickeln und den Code schneller zur Produktion bringen kann, muss das Management Schlüsselprinzipien der DevOps-Kultur durchsetzen, wie Zusammenarbeit, kontinuierliche Verbesserung und eine vernünftige Fehlerkultur.
Falle 2: Zu viel, zu schnell
Ein direkter Übergang von einer traditionellen Entwicklungs-Pipeline zu DevOps ist für die meisten Unternehmen ein zu großer Sprung. Es ist zwar notwendig, sich von den alten Mustern wegzubewegen, aber Mitarbeiter, die bisher mit Worklows gearbeitet haben, die alles andere als agil waren, plötzlich ins kalte Wasser zu werfen, wird sie abschrecken und überfordern.
DevOps im Hauruckverfahren bedeutet, dass Mitarbeiter von heute auf morgen ihre Prozesse, Einstellung und Arbeitsweise verändern müssen und zeitgleich viele neue Aufgaben aus den zeitgleichen Releases zugeteilt bekommen. Schnell entsteht bei der Belegschaft der Eindruck, DevOps bedeutet mehr Stress, ein höheres Arbeitspensum und weniger Qualität. Um diesem Problem vorzubeugen, sollten Sie einen Schritt zurücktreten und den Übergang zwischen den verschiedenen Softwareentwicklungsmethoden langsamer vollziehen. Wechseln Sie von Ihrem klassischen Wasserfallmodell zu einem Wasserfall mit Scrum, implementieren Sie einzelne Agile-Prinzipien, dann einen vollen Agile-Ansatz und schließlich wechseln Sie zu DevOps.
Für den Wechsel zu einer agileren Kultur, sollten Sie ein bis zwei Jahre einräumen und dann damit beginnen, mehr DevOps-Philosophie zu implementieren. Das gibt Ihnen Zeit, Ihre Kultur zu ändern und Prozesse anzupassen, so dass Teams besser organisiert sind und eine Grundlage haben, um DevOps richtig zu verstehen.
Sie sollten für ihre Sprints regelmäßig den Übergang in die Produktion als Ziel setzen und Sie sollten langfristig anstreben, die Zeit zum Erreichen der Produktion zu verkürzen. Auf diese Weise finden Sie schneller heraus, wo es in Ihrem Betrieb zu Verzögerungen kommt und welche Praktiken häufigere Releases behindern. Ihre Teams haben Zeit, gemeinsam nach Lösungen suchen.
Falle 3: Administratoren sind nicht auf DevOps vorbereitet
Wenn ein Unternehmen keinen Code für die Produktion einsetzt, kann es nicht den Begriff DevOps für sich beanspruchen.
Der Clou bei DevOps ist schließlich auch das Einbringen von Entwicklerexpertise in die Administration und umgekehrt. Selbst wenn ein Entwicklerteam eine DevOps-Implementierung vorantreibt, die richtigen Werkzeuge einsetzt, einen CI-Prozess einrichtet, der mit Open-Source-Compliance-Praktiken zusammen passt und dieses Team Sicherheitsscans durchführt, bringt das nichts, wenn die Mitarbeiter mit der Kontrolle über die Produktionsumgebung den Code nicht bereitstellen können.
An dieser Stelle kann eine schlechte Integration oder Kommunikation den Einsatz stoppen. Wenn die Administratoren bei DevOps nur halbherzig dabei sind, oder überhaupt nicht darüber informiert wurden, müssen die Entwickler erst bei den Administratoren eine Anfrage dazu stellen und mit ihnen konferieren und verhandeln.
Am Ende vergehen Monate, bis der Code in der Produktion landet. Integrieren Sie alle Teams in die Strategie und schaffen Sie von Anfang an eine auf Kooperation eingestellte Umgebung, um diese Art von Verzögerung zu vermeiden.