Die Vorteile von DevOps in der Praxis

Die Vorteile von DevOps in der Praxis

 in der Netzwoche 08/2019 – ein Fachbeitrag von Markus Speth.

DevOps steht für eine neue Kultur und Herangehensweise in der Zusammenarbeit von bis dato getrennten Abteilungen. Development (Softwareentwicklung) und Operations (IT-Betrieb) ziehen an einem Strang, um die Softwarequalität und die Verfügbarkeit zu erhöhen und damit die Kundenzufriedenheit zu steigern.

In einer Welt, in der Software immer wichtiger wird, hängt der Erfolg eines Unternehmens zunehmend davon ab, wie schnell Software entwickelt und bereitgestellt werden kann. Die technologischen Möglichkeiten entwickeln sich rasant, sind für jeden zugänglich und internationale Entwicklungsteams stehen auf Abruf bereit – wie kann man sich also im Wettbewerb noch abheben? Ausschlaggebend ist heute, wie gut ein Unternehmen seine Zielgruppe kennt und wie es durch schnelle Iteration die Kundenbedürfnisse besser und schneller befriedigt als die Konkurrenz. DevOps kann hierfür ein Wegbereiter sein.

Was ist DevOps?

DevOps ist ein schillernder Begriff, aber oft ähnlich vage wie „Cloud“ oder „Container“. Jeder versteht etwas anderes darunter, und teilweise wird DevOps schon inflationär oder einzig zu Marketingzwecken verwendet. Die Mehrheit ist sich jedoch einig darüber, dass DevOps im Mainstream angekommen ist. Ganz grundsätzlich ist DevOps ein Kunstwort aus „Development“, also der Softwareentwicklung, und „Operations“, dem IT-Betrieb beziehungsweise der Systemadministration. DevOps steht symbolisch für eine neue Kultur von zusammenarbeitenden Abteilungen, die historisch eher unterschiedliche Ziele verfolgten: Die Softwareentwicklung muss agil, kreativ und am Puls der technologischen Entwicklung sein, um ständig neue Features liefern zu können. Im Gegensatz dazu ist der IT-Betrieb auf Stabilität, Sicherheit und Verlässlichkeit ausgerichtet. DevOps versucht nun genau diesen scheinbaren Widerspruch zwischen Agilität und Stabilität zu vereinen. Als logische Weiterentwicklung der agilen Softwareentwicklung soll durch DevOps die gesamte Wertschöpfungskette interdisziplinär mit einbezogen werden. DevOps soll bestehendes Silo-Denken aufbrechen.

(Illustration ©️ Daniel Stori – vielen Dank)

DevOps besteht aus Prozessen, Tools und Kulturkomponenten, wobei es in erster Linie auf die Menschen ankommt. Eine DevOps-Kultur muss gelebt werden. DevOps kann nicht „eingekauft“ werden, weder durch die Nutzung von Tools, Einführung neuer Prozesse oder das Einstellen eines DevOps Engineers. DevOps ist die interdisziplinäre Zusammenarbeit, nicht nur von Dev und Ops, sondern von allen am Produktlebenszyklus beteiligten Parteien wie Product Owner, Scrum Master, Testing und Security. Die gesamte Organisation muss dazu beitragen. Ohne engagierte Menschen, die aus dem Denkmuster „Sysadmin vs. Programmierer“ ausbrechen, ist es nicht möglich, eine DevOps-Kultur im Unternehmen zu etablieren. Dazu braucht es Leader, die die Kooperation und Zusammenarbeit zwischen den Teams fördern. Das Management muss die Vorstellungen teilen und sie vorleben. DevOps ist eine Philosophie beziehungsweise holistische Herangehensweise – keine Methodologie, kein Management-Framework, das einfach über eine bestehende Organisation gestülpt werden kann.

Wer profitiert von DevOps?

DevOps betrifft alle Sektoren und ist nicht nur auf die reine Softwareentwicklung beschränkt. Viele traditionelle Wirtschaftszweige unterstützen heute ihr Kerngeschäft durch Software: Egal ob Banken, Versicherungen, Handel oder Industrie – die Digitalisierung macht vor keiner Branche halt. Ist der Kunde glücklich, ist es auch das Team, der einzelne Mitarbeiter und letztlich auch das Unternehmen. Am Ende profitieren also alle von DevOps.

Eine DevOps-Kultur, die auf Zusammenarbeit und Automatisierung setzt, sorgt nicht nur für Konsistenz und Planbarkeit und eine schnellere Code-Bereitstellung bei gleichzeitiger Erhöhung der Code-Qualität. Auch die Problemlösung profitiert von DevOps. Bugs und Ausfälle werden durch DevOps zwar nicht verhindert, aber durch ein gemeinschaftlich und lösungsorientiert arbeitendes Dev­Ops-Team und einen ausgereiften Automatisierungsgrad wird die Fehlersuche und Problemlösung um ein Vielfaches effizienter und schneller, wodurch die Kosten eines Ausfalls sinken. DevOps steht für den Lean-Gedanken von Continuous Improvement und einer bewussten und aktiven Feedback-Kultur. Fehler dürfen gemacht werden, um die Zusammenarbeit und Prozesse kontinuierlich zu verbessern. Die Softwareentwicklungs- und IT-Betriebsabteilung tragen gemeinsam die Verantwortung für die Bereitstellung der Applikation.

DevOps in der Praxis

Eine funktionierende DevOps-Organisation zeichnet sich in der Praxis durch häufige und schnelle Releasezyklen, automatisierte Deployments (inklusive automatische Rollbacks bei Bedarf) sowie Continuous Integration und automatisiertes Testing aus. Das Idealbild ist eine vollautomatisierte Pipeline ohne die Notwendigkeit des manuellen Eingreifens. Wichtig dabei ist auch, dass das Management die Teams mit der Autorität ausstattet, autonom Entscheidungen treffen zu können, ohne auf ein „Go“ warten zu müssen. Ein praktisches Beispiel ist Selfservice: Der Entwickler kann sich bei Bedarf selbst eine Entwicklungs- oder Testumgebung bereitstellen, ohne auf die IT-Administration warten zu müssen. Die grösste Hürde für die Zusammenarbeit von Teams liegt oft in den festgefahrenen Vorgehensweisen und in der „Macht der Gewohnheit“. In solchen Fällen benötigt es viel Überzeugungsarbeit und Zeit, bevor eine DevOps-Kultur Einzug halten kann. Man muss sich nur vorstellen, wie sich ein Unternehmen auch kulturell ändern muss, damit es sich von wenigen Software-Releases im Jahr durch den Einsatz von Continuous Delivery hin zu täglichen oder gar stündlichen Releases weiterentwickeln kann. Die Softwarebereitstellungszyklen werden durch Continuous Integra­tion / Continuous Delivery (CI/CD) immer kürzer, da Produktionspipelines zunehmend durch Microservices und Cloud-Native-Umgebungen skaliert werden können. Fehler werden idealerweise bemerkt, bevor diese in die Produktion gelangen. Je früher in der Kette ein Fehler gefunden und behoben wird, desto günstiger ist die Fehlerbehebung. DevOps-Prinzipien und Automatisierung ermöglichen das zum Beispiel durch die Nutzung mehrerer Testumgebungen.

Die aktuell erfolgreichsten Produktfirmen wie Netflix deployen ihre Applikationen mehrere hundert bis tausend Mal pro Tag. Ausfälle können nicht verhindert, aber von vornherein eingeplant werden, um von ihnen zu lernen. Durch den Einsatz von Chaos Engineering, das heisst dem absichtlichen und zufälligen Beenden von Servern und Prozessen auch in der Produktion, hat Netflix die Stabilität und Robustheit seines Services signifikant erhöht. 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 oder Amazee.io, das mit Lagoon ein modernes Docker-Build- und Deployment-System für Kubernetes und Openshift entwickelt hat.

Fazit

Im Gegensatz zu Agile geht DevOps über den Entwicklungsteil hinaus und hat die gesamte Wertschöpfungskette im Visier: DevOps-Teams tragen die Verantwortung für ein Produkt über den gesamten Lifecycle hinweg. DevOps hilft zu skalieren und trotzdem flexibel zu bleiben und bietet eine Vielzahl quantifizierbarer Vorteile wie kürzere Entwicklungszyklen, erhöhte Deploymenthäufigkeit und eine schnellere Time-to-Market.

Doch DevOps ist nicht nur dazu da, die Software­entwicklung durch Erhöhung des Automatisierungsgrads und Steigerung der Effizienz und Agilität zu beschleunigen. DevOps kann Enabler des kulturellen Wandels einer Organisation sein und Zusammenarbeit, Arbeitsklima und Motivation insgesamt verbessern. DevOps steht für Kollaboration, Flexibilität, Agilität und die Konzentration auf den gemeinsamen Geschäftserfolg: zufriedene Nutzer, marktgerechte Produkte und langfristig motivierte und loyale Mitarbeiter.

Zum Netzwoche-Artikel

Zum kompletten Artikel in der Netzwoche.

Möchtest du mehr über DevOps erfahren?

Wir haben eine Studie über den Stand von DevOps in der Schweiz durchgeführt, die in Kürze veröffentlicht wird.

Wenn du oder dein Unternehmen mehr über DevOps erfahren und herausfinden möchtest, ob es in der aktuellen Applikationsarchitektur noch Verbesserungsmöglichkeiten gibt, bietet VSHN einen DevOps Workshop an, um genau das herauszufinden.