Ich habe kürzlich an einer Agile & DevOps-Konferenz in Großbritannien teilgenommen und dort einen kurzen Vortrag über "AI-powered DevOps" gehalten. Dieser Beitrag ist eine leicht veränderte Version dieses Vortrags.
DevOps ist ein geschäftsorientierter Ansatz
Im Gegensatz zu der Auffassung, dass DevOps ein technologieorientierter Ansatz ist, bin ich der festen Überzeugung, dass es sich in erster Linie um ein geschäftsorientiertes Paradigma handelt. Die Essenz von DevOps ist eine nahtlose Zusammenarbeit zwischen allen Beteiligten in der Software-Lieferkette, um eine
Entwicklung vs. Ops: Agilität vs. Stabilität
In einem typischen Unternehmen arbeiten Entwicklung und Ops auf unterschiedliche Ziele hin. Der Schwerpunkt der Entwicklung liegt auf Agilität. Sie ist stets bestrebt, neue Funktionen zu entwickeln und diese so schnell wie möglich auf den Markt zu bringen.
Auf der anderen Seite liegt der Schwerpunkt des Betriebs auf der Stabilität und Qualität der Software, die an den Kunden ausgeliefert wird. Die Ops-Seite des Unternehmens macht sich in der Regel Sorgen darüber, ob die neue Funktionalität einen Mehrwert für das Unternehmen darstellt oder den Wartungsaufwand erhöht. Daher ist es nicht verwunderlich, dass Dev und Ops in den meisten Fällen organisatorische und funktionale Silos sind.
Die Herausforderung besteht darin, einen Weg zu finden, diese Silos aufzubrechen und Dev und Ops zu integrieren. Auch wenn es kein Patentrezept gibt, empfehle ich aus der Sicht eines Praktikers eine Shift-Links-Strategie. Kurz gesagt bedeutet dies, dass die Ops bereits in einem sehr frühen Stadium in das Projekt einbezogen werden müssen und nicht warten dürfen, bis die Entwicklung abgeschlossen ist. Wenn die Software in der Entwicklungspipeline prozessual nach rechts wandert, rücken die Ops-Leute nach links und werden stärker in das Entwicklungsteam eingebunden. Diese Strategie erfordert:
- Funktionale Umstrukturierung zur Integration von Entwicklung und Betrieb, d.h. ein und dasselbe funktionale Team sollte aus Mitarbeitern aus der gesamten Softwareentwicklungspipeline bestehen, ohne künstliche Silos
- Der Kulturwandel sollte dazu führen, dass sich die Organisation darauf konzentriert, einen kontinuierlichen Geschäftswert mit qualitativ hochwertiger und schneller Software zu liefern.
Akzeptieren Sie Agilität und weiten Sie sie auf die Ops aus
Mit dem Aufkommen von Agile werden die Barrieren zwischen Unternehmen, Entwicklung und QS durchbrochen, was zu greifbaren Vorteilen führt, wie z.B.:
- iterative Veröffentlichungen
- Früher und häufiger Einsatz
- Kontinuierliche Tests und Integration
- verbesserte Qualität
- Fähigkeit, schnell auf sich ändernde Bedürfnisse zu reagieren
Aber am wichtigsten ist, dass die Einführung von Agile auch einen tiefgreifenden kulturellen Wandel in den Softwareunternehmen eingeleitet hat. Zum ersten Mal gibt es keine künstlichen Silos mehr zwischen Business, Entwicklung und Qualitätssicherung. Sie alle arbeiten nun mit dem gemeinsamen Ziel zusammen, Software zu entwickeln, die die Kunden wirklich wollen und brauchen. Mit anderen Worten: Die gesamte Entwicklungsorganisation ist darauf ausgerichtet, einen geschäftlichen Mehrwert zu schaffen.
Aber Agilität endete bei der Entwicklung und erstreckte sich nicht auf die Bereitstellung, den Einsatz und den Support. Infolgedessen blieb Ops bis vor kurzem ein isoliertes und separates Silo. Bei DevOps geht es darum, diese letzte Barriere zu durchbrechen und Agile auf die Ops-Seite des Softwareunternehmens auszuweiten.
Es ist nicht mehr möglich, die Mitarbeiter, die die Software entwickeln (Dev), und die Mitarbeiter, die die produzierte Software einsetzen und warten (Ops), getrennt zu halten. Das Gebot der Stunde ist es, dafür zu sorgen, dass sie zusammenarbeiten, und die Herausforderung besteht darin, dies auf die richtige Art und Weise und mit den richtigen Tools zu tun.
Automatisieren Sie alles und durchbrechen Sie die letzte Barriere
Wenn das Ziel darin besteht, Software zu entwickeln, die den Kunden mit gleichbleibender Qualität einen geschäftlichen Nutzen bringt, ist es unerlässlich, dass alle im Unternehmen dieselbe Sprache sprechen. Der beste Weg, dies zu erreichen, ist die Verwendung eines gemeinsamen Satzes von Tools und Prozessen, die von allen verstanden werden. An dieser Stelle wird Automatisierung unverzichtbar.
Selbst in Unternehmen mit ausgereiften agilen Entwicklungsprozessen wird der letzte Schritt, d.h. die Auslieferung und Bereitstellung, sehr oft noch manuell durchgeführt, was die Effektivität der kontinuierlichen Bereitstellung einschränkt.
"Der beste Weg, diese letzte Hürde zu überwinden, besteht darin, die Automatisierung von der Entwicklung bis zur Auslieferung und Bereitstellung zu erweitern.
Damit die kontinuierliche Bereitstellung funktioniert, muss der letzte Schritt zwischen Auslieferung und Bereitstellung unbedingt automatisiert werden, wie in der obigen Abbildung gezeigt. Durch die Automatisierung werden zwei wichtige Ziele für die kontinuierliche Softwarebereitstellung erreicht, nämlich Zuverlässigkeit und Wiederholbarkeit. Durch den Wegfall manueller Eingriffe und den Einsatz automatisierter Tools verfügen Sie nun über einen durchgängigen, zuverlässigen und wiederholbaren Prozess, der für schnelle Änderungen, häufige Veröffentlichungen und kontinuierliche Bereitstellung und Auslieferung genutzt werden kann.
Verwenden Sie Bots zur Automatisierung der CI/CD-Pipeline
In den letzten Jahren hatte die Entwicklung hochentwickelter Technologien wie KI und ML einen erheblichen Einfluss auf die wichtigsten Softwareentwicklungsverfahren, vom Rapid Prototyping bis hin zu intelligenten Programmierassistenten. Die größte Auswirkung hat jedoch der Einsatz von KI/ML zur Automatisierung von Softwaretests, Fehlererkennung und Integration. In diesem Bereich wird die erste Generation von Bots als Teil der CI/CD-Pipeline eingeführt. Leistungsstarke Softwareunternehmen setzen zunehmend Bots in Kombination mit ihren Collaboration-Tools (z.B. Hubot und Slack) ein, um einige der Routineaufgaben im Rahmen des CI/CD-Workflows zu automatisieren, wie z.B.:
- Erfassen von Informationen über Fehlschläge/Erfolge bei der Erstellung und Erzeugen automatischer Warnungen für alle Beteiligten
- Klassifizierung und Ursachenanalyse von Gebäudedaten
- prädiktive Analytik, um potenzielle Problembereiche für künftige Bauvorhaben zu erkennen
- Zuweisung von Fehlerbehebungen und Problemen an die zuständigen Personen auf der Grundlage von Build/Commit-Daten
- Code einfrieren und wieder freigeben
Abschließende Gedanken
Ich glaube, dass wir an der Schwelle zu einem großen Umbruch in der Art und Weise stehen, wie Software konzipiert, entwickelt, getestet, geliefert, eingesetzt und unterstützt wird. Automatisierung und kognitive Technologien werden eine zunehmende Rolle bei der Reduzierung des manuellen Aufwands spielen und die Zuverlässigkeit und Wiederholbarkeit der End-to-End-Prozesse in der Software-Lieferkette verbessern. Dies ist eine hervorragende Gelegenheit für Softwareunternehmen, diese aufkommenden Technologien zu nutzen, echte Continuous-Delivery-Fähigkeiten zu erreichen und sich in Hochleistungsunternehmen zu verwandeln.
[contact-form-7 id="20990" title="DevOps für kontinuierliche Innovation"]
Verfasst von
Sashikanth Pochimcharla
Sashi’s motto is “operational excellence” and it is easier said than done. Sashi has a knack for understanding the customer requirements, and translating them into tangible operational goals in terms of people and processes.
Unsere Ideen
Weitere Blogs
Contact
Sashikanth Pochimcharla
EVP, Lieferung & Kundenerfolg



