DevOps Definition, Ziele, Best Practices und Tools

DevOps Definition, Ziele, Best Practices und Tools

DevOps ist heute in aller Munde. Von manchen als "next big thing" gesehen, von anderen als buzzword-verdächtiges Geldgrab.

Definition: Aber was ist DevOps wirklich?

DevOps ist die Abkürzung von Development und Operations. Anders ausgedrückt handelt es sich um die Verbindung zweier Bereiche, die zwar miteinander zu tun haben, aber klassisch meistens für sich stehen. Wenn wir uns jedoch von dieser Abkürzung lösen, ist DevOps viel mehr: es handelt sich um eine neue Unternehmenskultur, bei der die schnelle Auslieferung von qualitativ hochwertiger Software im Vordergrund steht. Diese wird durch die Verbindung von Development und Operations erreicht.

Im vorherigen Absatz wurde auch der Haupt-Vorteil angedeutet: eine hohe Auslieferungsrate, die nicht mit geringerer Qualität einhergeht. Die großen US-Unternehmen - Amazon, Netflix & Co. - machen genau dies vor. Insbesondere von Amazon ist bekannt, dass dort beim Continuous Deployment-Ansatz minütlich mehrere Deployments in die Live-Umgebung stattfinden.

Um eine solch schnelle Auslieferung zu erreichen, sind mehrere Schritte erforderlich, von denen einige im Folgenden kurz angerissen werden.

Einsatz von DevOps - Prozessen

Manche Unternehmen sehen DevOps als Tool oder als Software, aber da - wie beschrieben - DevOps eine neue Unternehmenskultur ist, greift dieser Ansatz wesentlich zu kurz. Es spielen für die Einführung im Unternehmen vor Allem die entsprechenden Prozesse eine wesentliche Rolle. Alle Prozesse, die die Entwicklung, den Betrieb und die Auslieferung von der Entwicklung in den Betrieb betreffen, müssen gegebenenfalls angepasst werden. Dies ist zwar einfacher, wenn bereits agile Prozesse existieren, die Agilität ist aber nur ein erster Schritt. Die agilen Prozesse betreffen aber zunächst die Entwicklung (und den Bereich Test) - die Prozesse zur Auslieferung (= Delivery) müssen hier somit einen weiteren Weg zurücklegen.

Dies ist vielleicht leichter zu verstehen, wenn die entsprechenden Tools und die Prozesskette betrachtet wurden.

DevOps Tools - Prozesse und Tools

DevOps hängt von der passenden Software ab. Diese sorgt dafür, dass

  • entsprechende Prozesse definiert werden
  • sich der Software-Auslieferungsprozess in diesen Prozessen bewegt
  • das Monitoring den Prozess und die Server überwacht

Die gesamte Prozesskette läuft im Allgemeinen wie folgt ab

1.- Checkin einer neuen Version in das Repository
2.- Unittests + Test auf Code Conventions
3.- Packaging + Build
4.- automatisierte Integrationstests
5.- automatisierte Frontend-Tests
6.- Release (Management)
7.- Konfiguration
8.- Monitoring.

Dieser Gesamtprozess kann mit den richtigen Tools automatisiert werden. Hier gibt es entsprechende Produkte, vor allem aus dem Open Source-Umfeld.
DevOps Tools - Prozesse und Tools

Open Source Tools - DevOps

Gerade im Open Source-Bereich gibt es viele Tools, die bei der Erstellung einer DevOps-Pipeline unterstützen. Durch die Offenheit dieser Software lassen sich auch in vielen Fällen weitere Plugins einbinden, sodass Sie Prozesse auch für spezielle Umgebungen modellieren können.

Es könnten zum Beispiel folgende Produkte zum Einsatz kommen

  • Docker
  • Git
  • JUnit
  • Jenkins
  • Apache Maven
  • Selenium

Denken - Change-Prozess | DevOps

Die neuen Prozesse und Strukturen müssen selbstverständlich auch in den Köpfen der Mitarbeiterinnen und Mitarbeiter ankommen. Dies betrifft die Arbeit auf mehreren Ebenen: das Projekt- oder Produktmanagement erhält neue Freigabeprozesse, die Entwicklung muss eventuell das eigene Qualitätsverständnis anpassen - zum Beispiel auch den Umgang mit dem Repository.

Eine große Änderung kommt jedoch auch auf den Operations-Bereich zu: dieser Bereich hat ganz besonders das Ziel von stabilen Plattformen und Versionen - und damit eher seltenen Deployments. Es muss Überzeugungsarbeit geleistet werden, um von den Vorteilen des neuen Prozesses zu überzeugen.

Hier hilft es, den oben genannten 6. Schritt zu betonen - vor dem endgültigen Release auf den Server eine Prüfung der Testergebnisse durchführen zu lassen.

Tags: