Ein Nachruf auf DevOps
(matduggan.com)Konzept und Geschichte von DevOps
- DevOps ist ein Konzept, das etwa 2007 eingeführt wurde und darauf abzielte, die Trennung zwischen denjenigen aufzuheben, die Hardware verwalten, und denjenigen, die Software schreiben
- Anfangs war es ein Versuch, die Sicherheit von Code-Deployments zu erhöhen, indem Verfahren und Ideen der NASA nachgeahmt wurden
- Der Prozess der Softwarebereitstellung sah damals wie folgt aus:
- Das Entwicklungsteam bereitete ein Release der Server-Software vor, das QA-Team testete es anschließend, bevor es an die Kunden ausgeliefert wurde
- Das Betriebsteam erhielt ein Playbook mit den Softwareänderungen und Anweisungen, wie bei Problemen zu reagieren sei
- Updates wurden schrittweise im Rechenzentrum ausgerollt und dabei überwacht
- Ein Deployment-Tag wurde festgelegt, anschließend wurde nach dem Deployment überwacht
Probleme von DevOps
- DevOps war sehr arbeitsintensiv
- Es erforderte Zusammenarbeit zwischen Entwicklungsteam, QA-Team, technischen Redakteuren und Betriebsteam
- Feature-Releases waren langsam, und wichtige Updates wurden priorisiert
- Viele Organisationen führten DevOps aus folgenden Gründen ein:
- Technische Fachkräfte ließen sich nicht einfach ersetzen
- Recruiting war schwierig und teuer
- SaaS-Anbieter reduzierten die Komplexität
- Die Vorteile von Cloud-Plattformen wurden stark hervorgehoben
- Entwickler waren unzufrieden damit, dass selbst kleine Änderungen sehr lange bis zum Deployment brauchten
Wie DevOps in der Praxis aussah
- DevOps zielte darauf ab, Entwicklungs- und Betriebsteam zu einem einzigen Team zu verschmelzen
- QA-Teams wurden entlassen, und durch schnelles Deployment und Feedback verkürzte sich die Dauer interner Tests
- DevOps wird manchmal mit Googles SRE verwechselt, aber SRE verfolgt einen strukturierteren und strengeren Ansatz
- Der tatsächliche DevOps-Prozess sah so aus:
- Entwickler erstellen in git einen Branch und fügen ein Feature hinzu
- Sie öffnen einen PR, ein Teammitglied prüft ihn, danach wird in
maingemergt - Das CI/CD-System startet den Build und pusht den Container in die Registry
- Das CD-System informiert die Server über das neue Release und überwacht, ob das Deployment erfolgreich war
- Über releasebezogene Metriken werden Veränderungen nach dem Deployment beobachtet
Gründe für das Scheitern von DevOps
- Entwickler testeten in lokalen Umgebungen und deployten dann auf Linux-Server, wodurch kleine Unterschiede entstanden
- Das Betriebsteam überwachte Deployments nicht, was die Problemlösung erschwerte
- Entwickler verfügten nicht über ausreichendes Wissen zum Betrieb von Systemen
- Mit der Einführung von Containern wurden einige Probleme gelöst, die Komplexität des Betriebs blieb jedoch bestehen
Einführung und Grenzen von Containern
- Container lösten das Problem „Auf meinem Rechner hat es funktioniert“
- Sie vereinfachten die Komponenten von Linux-Servern
- Verbleibende Probleme
- Betrieb (Operate): Erfordert Fachwissen für Infrastrukturwartung, Upgrades usw.
- Beobachtung (Observe): Schwieriger Aufbau und Betrieb komplexer Monitoring-Systeme
- Kontinuierliches Feedback: Unzureichende Verarbeitung internen Feedbacks
- Entdecken (Discover): Mangelnder Wissensaustausch zwischen Teams
- Planung (Plan): Schwierigkeiten bei zentralisierter Planung
Das Aufkommen von Platform Engineering
- Platform Engineering ist ein Nachfolgekonzept von DevOps: Statt dass Entwicklungsteams den Plattformbetrieb verstehen und Probleme selbst lösen müssen, übernimmt ein Plattformteam diese Aufgabe
- Dieser Ansatz trennt die Verantwortung von Entwicklungsteam und Plattformbetrieb klarer und macht die Rollenverteilung deutlicher, erfordert aber weiterhin viel technisches Know-how
- Sowohl Entwickler als auch Betriebsteam müssen mehr Arbeit leisten
Fazit
- Im Infrastrukturbereich nimmt die Tendenz zu, nach einfachen und nicht plattformgebundenen Tools zu suchen
- Viele Organisationen geben komplexe Technologien wie Kubernetes auf und kehren zu einfacheren Workflows zurück
- Platform Engineering ist keine Universallösung, und Organisationen müssen unterscheiden, was sie wirklich brauchen und was nicht
- Die Vorteile des DevOps-Ansatzes sollten erhalten bleiben, während der Fokus stärker auf Vereinfachung und Stabilität gelegt wird
Meinung von GN⁺
-
Die Entwicklung von DevOps und seine heutige Lage zeigen sehr gut den Wandel der Trends in der Technologiebranche. Es ist interessant zu sehen, wie die Lücke zwischen den anfänglich idealistischen Zielen und der Realität erkannt wird und wie nach pragmatischen Ansätzen gesucht wird
-
Der Übergang zu Platform Engineering wirkt wie ein Versuch, die Grenzen von DevOps anzuerkennen und neue Lösungen zu finden. Doch auch das ist keine perfekte Lösung, und es wird ein maßgeschneiderter Ansatz nötig sein, der zur Größe und den Eigenschaften einer Organisation passt
-
Mit der zunehmenden Komplexität Cloud-nativer Technologien und von Microservices-Architekturen findet eine Neubewertung von Einfachheit und Stabilität statt. Das deutet darauf hin, dass bei Technologieentscheidungen Geschäftswert und Betriebseffizienz noch stärker berücksichtigt werden müssen
-
Die Veränderungen bei DevOps und Platform Engineering unterstreichen die Bedeutung kontinuierlichen Lernens und Anpassens in Softwareentwicklung und Betrieb. Fachkräfte müssen nicht nur neue Tools und Methoden lernen, sondern auch die Fähigkeit entwickeln, ein Gleichgewicht zwischen Geschäftsanforderungen und technischer Komplexität herzustellen
-
Künftige Ansätze für Softwareentwicklung und Betrieb werden voraussichtlich flexibler und situationsgerechter sein. Statt dass große Organisationen und kleine Startups demselben Modell folgen, wird sich der Trend verstärken, je nach eigener Situation die optimalen Prozesse und Tools zu wählen
2 Kommentare
Ziemlich oft
haben Führungskräfte
die falsche Vorstellung, dass allein die Einführung des Konzepts DevOps
ohne Anstrengung eine großartige Innovation hervorbringen werde
(egal ob Großkonzern oder Mittelstand)
bei altmodischen Unternehmen
Hacker-News-Kommentar
Der entscheidende Punkt beim Diagramm des "DevOps-Zyklus" ist der Fokus auf "build, test, deploy"
Dies ist eine Meinung auf Grundlage der Probleme, die DevOps-Teams erlebt haben
Die Kritik an Kubernetes ist fehlgeleitet
Bei DevOps geht es darum, Hürden zu beseitigen, um die Auslieferung von Software zu erleichtern
DevOps ist eine Philosophie, keine Methodik
Das "Aufbrechen von Silos" durch die Führungsebene ist fast nur Formsache
Wenn Nutzer als Tester fungieren können, sollte man das tun
Plattform-Teams sind nur in großen Unternehmen realistisch
DevOps ist eine Philosophie, keine Methodik
DevOps hat gute Absichten