DevOps: Agile Zusammenarbeit in der IT

Was sind DevOps, und warum ist es für Unternehmen wichtig, sie zu verstehen und umzusetzen?

Im Folgenden bietet WebGate eine umfassende, nicht-technische Erklärung, was DevOps bedeutet, und geht der Frage nach, warum die DevOps-Prinzipien für Unternehmensorganisationen aller Couleur von entscheidender Bedeutung sind. Dieser Artikel, der sich an ein nicht-technisches Publikum richtet, soll in erster Linie klären, was genau DevOps sind. Anhand konkreter Beispiele werden in diesem Artikel einige DevOps-Prinzipien erklärt und IBM CloudPak als eine ganzheitliche DevOps-Lösung vorgestellt.

Was ist DevOps?

DevOps ist ein ein Kunstwort aus den Begriffen Development (englisch für Entwicklung) und IT-Operations (englisch für IT-Betrieb). Kurz gesagt werden die traditionell getrennten Softwareentwicklung und Systemadministration zusammengeführt. Es soll die Qualität der Software, die Geschwindigkeit der Entwicklung und der Auslieferung sowie das Miteinander der beteiligten Teams verbessert werden. 

DevOps kann nicht einfach eingekauft werden, sondern muss vielmehr als interdisziplinäre Zusammenarbeit aller an einer Produktentwicklung beteiligten Rollen verstanden werden. Eine DevOps-Kultur muss gefördert und gelebt werden. In erster Linie kommt es auf die einzelnen Menschen im Team an, wie sie zusammenarbeiten, wie unterstützende Tools eingesetzt und neue Prozesse eingeführt werden. 

Da die Software-Entwicklung und der Betrieb immer enger miteinander verflochten sind und die Unternehmen immer mehr von der Cloud-Infrastruktur abhängig sind, müssen Führungskräfte und Projektmanager fliessende Kenntnisse in DevOps entwickeln, um wettbewerbsfähig zu bleiben und sicherzustellen, dass ihre Teams ihr volles Potenzial ausschöpfen. 

Dafür braucht es eine DevOps-Kultur im Unternehmen mit engagierten Führungskräften und Mitarbeitenden, die aus dem Silo-Denkmuster «Systemadministration versus Programmierer» ausbrechen und die Kooperation und Zusammenarbeit zwischen den Teams fördern. So kommt es auch beim Einstellen eines DevOps Engineers auf die Team- und Kommunikationsfähigkeit an, denn technischen Fähigkeiten können vergleichsweise einfach erlernt und kontinuierlich on-the-job erweitert werden. DevOps ist eine Philosophie, die grundlegend die Art der Zusammenarbeit verändert und kann nicht einfach als Management-Framework über eine bestehende Organisation gestülpt werden. Das Management muss diese Kultur vorleben und die Mitarbeitenden dabei fördern und unterstützen.

Was bringt DevOps?

Ein Chief Digital Officer erklärt in einem Interview von TechBeacon , wie sein Unternehmen von einer klobigen, veralteten IT-Infrastruktur zu «einem agilen, auf DevOps basierenden Ansatz» überging, der die Entwicklungsproduktivität um ein vierfaches steigerte. Updates werden viel schneller veröffentlicht, und die IT hat das Vertrauen wiedergewonnen, weil sie wieder die Erwartungen der Benutzer erfüllte.

Die Ergebnisse des Berichts zum Stand der DevOps 2017 deuten auf einen auffälligen Unterschied zwischen Unternehmen hin, die die DevOps-Prinzipien anwenden, und solchen, die dies nicht tun. Dem Bericht zufolge haben die Top-Performer eine weitaus höhere Software-Implementierungshäufigkeit (46-mal häufiger) und weitaus kürzere Entwicklungszeiten (440-mal schneller). Die gemeinsame Arbeit von Entwicklung und Betrieb erlaubt ein klareres Bild des aktuellen Projektstandes, was die Projektumsetzung effizienter und schneller macht.

Weiter haben diese Unternehmen eine deutlich niedrigere Fehlerquote bei den Updates (fünfmal niedriger) als ihre leistungsschwächeren Pendants. Denn die am häufigsten auftretenden Fehler sind Entwicklungsfehler. Durch die Möglichkeit schneller und sicherer Aktualisierungen bei Systemen vorzunehmen, wird viel Zeit gespart. Dadurch verkürzt sich die Wiederherstellungszeit beim Beheben von Fehlern und somit die potenzielle Ausfallzeit.

DevOps-Prinzipien fördern den Projektbezug und die Zusammenarbeit. Durch eine bessere Kommunikation sind die Projektbeteiligten involvierter und produktiver. Das Vertrauen zwischen den Teams fördert die Innovation und das Experimentieren mit neuen Technologien.

Da alle Involvierten auch mit den anderen Disziplinen innerhalb eines Projekts direkt in Berührung kommen, erhöhen sich die Kompetenzen des gesamten Teams. Es kann sich gegenseitig unterstützen und fördern, was zu durchdachteren Lösungen und dem frühen Erkennen von interdisziplinären Problemen führt.

Trotz dieser bedeutenden Vorteile wird der Begriff DevOps allzu oft missbraucht oder missverstanden. Für viele bleibt die Idee verschwommen, und selbst die grundlegende Definition von DevOps kann schwer fassbar erscheinen. Das kann sich potenziell negativ auf Organisationen und Teams auswirken, die versuchen, die DevOps-Prinzipien umzusetzen. Wie ein DevOps-Ingenieur bei IBM in einem von InfoWorld veröffentlichten Artikel sagte: «Wir mussten einige grundlegende Fragen beantworten und die Probleme bestimmen, die wir zu lösen versuchten... Wenn man nicht weiß, wie die Arbeit tatsächlich ausgeführt wird, weiß man nicht, welche Probleme es wert sind, gelöst zu werden». DevOps sollte nicht als ein weiteres vages Schlagwort betrachtet werden, sondern vielmehr als ein wichtiges Konzept mit dem Potenzial, Produkte und Geschäfte dramatisch zu verbessern.


Das DevOps Toolkit

Effizienzsteigerung ist ein wichtiger Treiber für DevOps. Dies wird vor allem durch Automatisierung von langsamen und mühsamen Prozessen in der Software Entwicklung und dem Infrastruktur-Betrieb erzielt. Automation ist also zentral für DevOps, was die folgenden zwei grundlegenden DevOps-Praktiken zeigen.

  1. Bei Continuous Integration(CI) werden die Anpassungen und Weiterentwicklungen nicht mehr gesammelt und in grossen Paketen ausgeliefert. Durch die Unterstützung der Automation ist es möglich, nach jeder Änderung die Software zu aktualisieren, wie dies auch auf Mobile-Apps geschieht. Durch diese vielen, kleinen Weiterentwicklungsschritte sinkt das Fehlerrisiko und verschiedenen Features werden einfacher zusammengeführt.
  2. Durch Continuous Delivery(CD) werden die Versionen einer Software direkt ausgeliefert und installiert. Bestehende Systeme werden bei einer Anpassung automatisch aktualisiert, bei minimalem Aufwand. Dadurch wird viel Zeit an eintönigen Aufgaben eingespart, welche den Mitarbeitenden dann für die Lösung von komplexeren Aufgabenstellungen zur Verfügung steht.

Die aktuell erfolgreichsten Produktfirmen wie zum Beispiel Netflix deployen ihre Applikationen mehrere hundert bis tausend Mal pro Tag. Ausfälle können nicht verhindert, aber besser eingeplant werden. Der Serverausfall wird als Selbstverständlichkeit angesehen und mit in die DNA des Dienstes eingebaut. Ohne eine ausgereifte und flächendeckende DevOps-Mentalität in der gesamten Organisation wäre es unmöglich, Software in dieser Geschwindigkeit und Qualität liefern zu können. Auch in der Schweiz sind Softwarefirmen auf dem Vormarsch, die durch eine gelebte DevOps-Praxis ihre Applikationen stetig verbessern und ihre Kunden in den Vordergrund stellen, beispielsweise Sherpany mit seiner Software für Führungs- und Vorstandssitzungen.

IBM Cloud Paks sind bereit für DevOps

IBM Cloud Paks wurde mit dem Grundgedanken von DevOps entwickelt. Cloud Paks sind gebrauchsfertige, modulare Lösungen, die einen sicheren Weg bieten, Applikationen flexibel und schnell in einer gewünschten Cloud auszurollen und zu verwalten. Jedes Cloud Pak enthält die benötigten Management Services, zusammen mit einem geteilten Integrations-Layer. Laut IBM ist es so möglich, die Entwicklungszeit bis zu 83% zu reduzieren.

Für die Organisation und Aufbereitung der Daten gibt es Add-Ons, die einfach angepasst werden können. Systemspezifische Services wie Messaging oder Event-Management werden out-of-the-box angeboten ohne weitere Anpassungen. Da sämtliche zur Erfüllung der Aufgabe erforderlichen Services bereits enthalten sind, wird die Software stabiler und schneller entwickelt. Die bereits in die Cloud Paks integrierte Automatisierung macht die Applikationen einfacher skalierbar und benötigen für das Deployment nur wenige Klicks. Mit dem Multi-Cloud Management wird das gleichzeitige Deployment auf verschiedene Cloud-Anbieter oder den Wechsel einer Applikation auf eine andere Cloud erheblich vereinfacht.

Wir bei WebGate legen grossen Wert auf Sicherheit und Stabilität. Wir leben DevOps jeden Tag und nutzen Services wie IBM Cloud Paks um versteckte Gefahren oder Fehler schneller zu finden und sicher zu beheben.