"Die Freude an einem Produkt hört dann auf, wenn man zu lange darauf warten muss." Sagte der ehemalige Vorstands- und Aufsichtsratsvorsitzende der BMW AG Eberhard von Kuenheim und hat damit absolut Recht: Gerade im Software-Umfeld ist es dem Kunden nicht vermittelbar, warum er auf ein Produkt, Feature oder eine Fehlerkorrektur warten muss. Dauert es zu lange wechselt man einfach zur Konkurrenz. Somit wird eine moderne und vor allem schnelle Software-Entwicklung zum absoluten Schlüsselfaktor für die eigene Wettbewerbsfähigkeit. Es führt also kein Weg an DevOps und Continuous Delivery vorbei. Damit immer verbunden: Die Containerisierung der Entwicklung mit Docker und Kubernetes.

Die klassische Methode: Tuen Sie sich das nicht an
Doch wie kommt man zu einer schnellen Software-Entwicklung (SE)? Dazu schauen sie sich am Besten erst einmal an, wie die klassische SE funktioniert: Die Anforderungen an das Produkt werden vom Kunden, der Fachabteilung oder einem Gremium beschrieben. Diese werden an das Entwicklungs-Team weitergeben, das daraufhin auf Machbarkeit prüft und gegebenenfalls noch mal in eine Schleife mit dem Auftraggeber geht. Sind die Anforderungen geklärt legen die Entwickler, jeder an einer eigenen Kopie der Applikation, mit der Umsetzung los. Alle Entwicklungen werden nach Ablauf der Produktionszeit dann zu einer Einheit zusammengeführt. Wobei es zu Konflikten im Code kommen kann – je mehr Entwickler, Teams, Einzelschritte und Anforderungen umgesetzt werden sollen, umso größer das Konfliktpotential. Nachdem dann alle (bekannten) Fehler bereinigt sind, kann die Software in die Qualitätssicherung und zum Testing. Wenn dann alle gefundenen Bugs gelöst sind und dadurch keine weiteren Code-Konflikte auftreten, geht die App an die Operations, die hoffentlich die Software betreiben können. In vielen Fällen wird das Code-Werk noch einmal zurück zu den Entwicklern gespielt, da im Realbetrieb noch Fehler aufgetreten sind. Im besten Fall arbeitet währenddessen die Auftraggeberseite schon wieder an neuen Features und Leistungsanforderungen. Sie merken schon beim Lesen: Ein solches Vorgehen kann weder agil noch für alle Beteiligten, bis hin zum Kunden, zufriedenstellend sein.

Das macht DevOps anders
Twitters "Growth-Team" released täglich neuen Code, Amazon sogar minütlich – bis auf Freitags, da sind die Entwickler, laut eigener facebook-Aussage "too drunk to be trusted". Aber was machen die Tech-Firmen anders oder besser? Ganz einfach: Sie setzen auf DevOps und Containerisierung. Mit DevOps ändert sich nicht weniger als die gesamte Firmenkultur. Was auf den ersten Blick vielleicht abschreckend klingt ist auf den zweiten eine große Chance. Von dem Dev-Ops-Wandel profitiert nicht nur die IT-Abteilung. Alle anderen Abteilungen der Firma können auch Fahrt aufnehmen. Wie genau das funktioniert, lesen Sie in unserem Beitrag "Umsetzung der DevOps-Philosophie – Wir Automatisieren Ihr Unternehmen".

Ein weiterer großer Vorteil von DevOps und Containern ist nicht nur die Häufigkeit mit der neue Software veröffentlicht wird: Untersuchungen zeigen, dass die "schnellen Brüter" unter den Software-Firmen auch über 50 Prozent weniger Fehler machen und sich sogar 150 Mal schneller von diesen erholen.
Aber was haben Container mit der DevOps-Philosophie zu tun: Ganz einfach, sie sind die standardisierten Verpackungen für die Applikationen. So kann die Software, wesentlich einfacher und Resourcen-sparender wie bei Virtualisierungen, von einer Umgebung in die andere verschoben werden. Da die Applikation während des gesamten Zyklus – also Entwicklung, Test und Auslieferung – in einem Container betrieben wird, verändert sich die Umgebung nicht. Somit ist der Zyklus deutlich weniger fehleranfällig. Außerdem ermöglichen es die Container die Software in kleine Einheiten zu teilen, die dann voneinander Unabhängig gewartet und aktualisiert werden können. Ein weiterer großer Vorteil: Es ist dem Container zum Beispiel egal in welcher Sprache eine Anwendung geschrieben ist - praktisch alle Apps können in einem Container betrieben werden. Durch all diese Punkte bieten erst Container die nötige Flexibilität und Geschwindigkeit um DevOps umzusetzen.

DevOps und Container sind ein unschlagbares Paar wenn Sie auch morgen noch kraftvoll zubeißen wollen.