Hier auf dem Blog habe ich nun bereits einige Technologien aus dem Kontext von DevOps vorgestellt. Jetzt will ich in diesem Artikel einmal darauf eingehen, was DevOps eigentlich genau ist.
Inhaltsverzeichnis
Was ist DevOps?
Es gibt viele unterschiedliche Meinungen dazu, was DevOps nun genau ist. Die einen nennen es Prozessoptimierung, die nächsten Methodik und andere wiederum Unternehmenskultur.
Für mich persönlich ist es ziemlich egal wie das ganze nun genannt wird. Für ist DevOps einfach eine Ansatz die Kommunikation und Aufgabenteilung zwischen Entwicklern (Developer, Dev) und Administratoren (Operations, Ops) zu verbessern.
Das hat positive Auswirkungen auf Ausfall und Deploymentzeit eines Softwareproduktes was letztendlich die Zufriedenheit der Kunden / Anwender steigert. Diese Zufriedenheit führt zu mehr Kunden und dadurch ggf. auch zu Mehr Einnahmen.
Da ist es nicht weiter verwunderlich, dass die meisten IT Firmen mittlerweile einen DevOps Ansatz für die Entwicklung der eigenen Produkte verwenden.
DevOps Kreislauf
DevOps wird meistens als ein nicht endender Kreislauf dargestellt. Ich habe hier mal ein Beispielbild für euch, wie dieser Kreislauf aussieht.
Dem Bild kann man die acht wesentlichen Bereich von DevOps entnehmen, welche ich nun einmal kurz vorstellen möchte.
Die acht Bereich des DevOps Kreislaufes
Code
Der erste Schritt im Lebenszyklus von DevOps ist die Erstellung und Entwicklung des Programmes, der Erweiterung, des Modules oder was auch immer implementiert werden soll. Der Quellcode sollte dabei nach Möglichkeit immer in einem Versionskontrollsystem abgelegt werden.
Build
Die Entwickler bauen in dieser Phase eine neue Version der Software in Form von Kompilierten Code, Packages, Libraries oder ähnliches. Das daraus entstehende Stück Software sollte alles beinhalten um auch auf den Produktivsystemen lauffähig zu sein.
Test
Damit DevOps erfolgreich sein kann, muss der Testprozess mit einem beliebigen Automatisierungswerkzeug automatisiert werden. So ist es möglich die Tests unabhängig von Arbeitszeit und Team Kapazitäten laufen zu lassen. Am Besten wird das ganze soweit automatisiert, dass bei einem Fehlgeschlagenen Tests direkt ein Benachrichtigung an das Entwickler Team geht (zb. Ticket im Ticketsystem).
Release
Ein Prozess zur Verwaltung, Planung, Terminierung und Kontrolle des Builds in verschiedenen Umgebungen nach dem Testen und vor der Bereitstellung.
Deploy
In dieser Phase werden alle Artefakte/Codedateien der Anwendung fertig gestellt und auf dem Server verteilt/ausgeführt. Dadurch werden die neuen Features für die Benutzer
Operate
Die Anwendung wird nach ihrer Bereitstellung ausgeführt, wobei die Kunden sie in realen Szenarien verwenden. In großen Umgebungen kann es auch sinnvoll sein, erst einen Teil der Produktivumgebung zu aktualisieren und ein paar User das ganze unter realen Bedingungen testen zu lassen.
Monitor
In dieser Phase werden wichtige Informationen zur Verfügung erhoben, die im Wesentlichen dazu beitragen, die Dienstverfügbarkeit und optimale Leistung sicherzustellen.
Plan
In der Planungsphase werden Informationen aus der Monitoringphase gesammelt und entsprechend dem Feedback die Änderungen für eine bessere Leistung umgesetzt. Auch Feedback von den User für z.B. neue Funktionen werden hier besprochen und ggf. mit in die Planung aufgenommen.
DevOps Toolchain
In den meisten Fällen wird das ganze mit dem ein oder anderen Tool unterstützt. Dies kann von Unternehmen zu Unternehmen recht unterschiedlich sein. Ich habe hier eine ganz nette interaktive Seite gefunden, wo man eine Übersicht der einzelnen Tools bekommt. Einfach mal auf das Bild klicken.
Buchempfehlung
Für jeden, der DevOps besser verstehen will, kann ich das Buch Das DevOps Handbuch (Affiliate Link) empfehlen. Hier geht es nicht um Softwaretools sondern eher darum zu verstehen was DevOps ist und wie man das potenzial mit einfachen Mitteln in der eigenen Firma nutzen kann.
Welche Themen interessieren dich besonders im Kontext von DevOps? Ich freu mich über ein kleines Kommentar mit deiner Antwort.
Schreibe einen Kommentar