Bei DevOps gibt es keine Standardlösung

Puzzle HandMit DevOps entsteht eine ganzheitliche Sicht auf den zyklischen Prozess der Softwarebereitstellung. DevOps wendet die Prinzipien der agilen Softwareentwicklung auch auf den IT-Betrieb an und schafft so die Voraussetzungen für eine bessere Abstimmung zwischen Entwicklung und IT-Betrieb.

So absurd es auch klingt: Einige IT-Verantwortliche wünschen sich manchmal die guten alten Tage des Mainframes zurück. Bei dieser sperrigen Maschine mit ihren dummen Terminals und Tausenden von Lochkarten hatte die IT die volle Kontrolle. Citizen Developer beziehungsweise Power User oder Business-Analysten waren nicht vorgesehen. Mit dem Aufkommen von Desktopsystemen in den Fachbereichen und ihren unterschiedlichen Betriebssystemen und Anforderungen wurden Verwaltung und Betrieb deutlich komplizierter. Kurzfristig machten serverbasierte Web-Applikationen das Management wieder etwas einfacher.

Anzeige

Mit Mobile Computing aber wird alles komplizierter als jemals zuvor. Anstatt zentral eine Applikation auf einem Server upzudaten, muss jetzt jedes mobile Endgerät aktualisiert werden – oft müssen Apps für die unterschiedlichen mobilen Plattformen angepasst und auf die Endgeräte verteilt werden. Für die IT bedeutet dies einen enormen Aufwand. Optimal eingesetzt sorgt DevOps für Abhilfe.

Die Evolution von DevOps

Die agile Softwareentwicklung – ein Begriff, den es seit 2001 gibt – steht in enger Verbindung zur DevOps-Methode, die auf einer IT-Konferenz in Belgien 2009 erstmals vorgestellt wurde. Nach 15 Jahren agiler Softwareentwicklung und sechs Jahren DevOps hat sich herausgestellt, dass diese eng miteinander verbundenen Termini sehr weit gefasst sind und unterschiedliche Einstellungen und Herangehensweisen, Plattformen, Tools und Lösungen umfassen. Die agile Softwareentwicklung mit ihren Scrum-Meetings und ihren schnellen Änderungszyklen hat die Softwareentwicklung beschleunigt, aber manchmal auch deutlich mühsamer gemacht, weil viele Unternehmen die raschen Änderungszyklen nur unzureichend unterstützen konnten.

Mit all seinen Plattformen, Tools und Methoden legt der DevOps-Ansatz Wert auf eine enge Abstimmung von IT-Betrieb und Entwicklung. Ziel von DevOps ist die Bereitstellung neuer und fortlaufend getesteter Applikationen, die ständige Weiterentwicklung von Features und eine laufende Wartung, um Applikationen schneller ausliefern zu können. Die Absicht ist schön und gut. Der Erfolg von DevOps ist jedoch abhängig von den jeweiligen Einsatzszenarien.

Bei den heutigen Entwicklungsumgebungen unterscheidet Progress drei Bereiche: Low-Code, betriebszentrierte (Deployment-Centric) und mobile Entwicklung. Für die Auslieferung von Applikationen in diesen drei Umgebungen ist ein breites Spektrum von Fertigkeiten und Tools erforderlich. Auch die Art und Weise, wie DevOps in diesen drei Umgebungen zum Einsatz kommt, ist sehr unterschiedlich: Eine Low-Code-Umgebung kommt ohne viel DevOps aus, eine Mobile-Umgebung dagegen erfordert einen umfangreichen Einsatz.

Wenig Programmcode verursacht geringen DevOps-Bedarf

In Cloud-basierten Application-Platform-as-a-Service (aPaaS)-Umgebungen, in denen nur wenig Programmcode (Low-Code) zum Einsatz kommt, spielt DevOps keine sehr große Rolle. Während der Cloud-Provider die Betriebsumgebung verwaltet, wartet und überwacht, können die Citizen Developer oder Business-Analysten mit ihren GUI-Entwicklungsumgebungen ihre Anwendungen erstellen, anpassen und implementieren – und dies ohne umfangreiche Unterstützung durch die IT-Abteilung. Da es keine strikte Trennung zwischen Entwicklung und Betrieb gibt, sind auch keine umfangreichen DevOps-Maßnahmen erforderlich. Business-Analysten nehmen die Änderungen an einer Applikation vor und geben sie für den produktiven Einsatz frei.

Die IT übernimmt hier die Rolle eines Hausmeisters, der nur bei Bedarf tätig wird. Eine solche Umgebung lässt sich daher auch als Zero Ops charakterisieren – je weniger DevOps, desto besser. Die Mitarbeiter aus den Fachbereichen, der IT-Betrieb und die Entwickler können sich damit auf ihre Kernaufgaben konzentrieren, die vorhandenen Ressourcen optimal einsetzen und produktiver arbeiten.

Deployment-centric in einer genau kontrollierten Umgebung

Transaktionsintensive, hochskalierbare und unternehmenskritische Applikationen gehören zur Kategorie Deployment-Centric. Ziel von DevOps in diesen Programmcode-intensiven Umgebungen ist es, Entwickler von Implementierungsthemen zu entlasten, damit sie sich vollständig auf ihre Kernaufgaben bei der Erstellung von Programmcode konzentrieren können.

Mit einem optimal umgesetzten DevOps-Verfahren lassen sich Applikationen effizient von der Entwicklung in den produktiven Betrieb übernehmen und somit eine enge Zusammenarbeit zwischen der Entwicklung und dem IT-Betrieb sicherstellen. Auf Basis eines straff organisierten DevOps-Prozesses kann das DevOps-Team Applikationen implementieren, deren Einsatz steuern und überwachen sowie Applikationen automatisiert und verbrauchsorientiert skalieren. Progress bezeichnet einen solchen Ansatz daher als Controlled Apps, da er eine enge Abstimmung von Entwicklung und IT-Betrieb bedingt.

Mobile-Computing stellt sehr hohe Anforderungen an den IT-Betrieb

Von der Entwicklung über den Betrieb bis hin zur Wartung, Überwachung und Analyse hat Mobile-Computing die Komplexität bei der Bereitstellung von Applikationen weiter gesteigert. Entwickler haben es mit Android, iOS und Windows sowie den unterschiedlichen Versionen innerhalb dieser Betriebssystemwelten zu tun. Weitere Rahmenbedingungen sind die Web-, native oder hybride Entwicklungsumgebung, die Vielzahl verschiedenartiger Smartphones und Tablets sowie die Deployment-Optionen in Public App Stores, Private App Stores und File Sharing Services.

Eine solche Umgebung erfordert einen äußerst umfangreichen IT-Betrieb (Extended Ops): Ein hochkooperatives Umfeld, in dem Entwicklung, Implementierung, Wartung, Support und die Fachabteilungen ihren Beitrag für erfolgreiche Applikationen leisten müssen. Bei mobilen Anwendungen sind alle Beteiligten gefragt, denn die Anforderungen an die Applikationen, angetrieben vor allem durch das Feedback von Anwendern, ändern sich ständig. Erfolg oder Misserfolg einer Applikation sind in hohem Maße von der zügigen Umsetzung häufiger Updates abhängig. Fachanwender müssen daher frühzeitig in das Design und die Entwicklung einbezogen werden. Dazu gehört auch eine fortlaufende Analyse der Art und Weise, wie die Applikation genutzt wird. Erfolgreiche Extended Ops benötigen das Engagement von Anwendern. Sie sind jedoch nicht direkt in den DevOps-Prozess involviert – er bleibt das Metier von Entwicklung und IT-Betrieb.

DevOps hat einen wichtigen Einfluss auf den gesamten Lebenszyklus einer Applikation. Der beginnt bei der Implementierungsgeschwindigkeit und reicht über schnellere Markteinführungszeiten bis hin zu kürzeren Vorlaufzeiten bei neuen Releases mit einer niedrigeren Fehlerrate. Dev-Ops zielt darauf ab, die Planbarkeit, Effizienz, Sicherheit und Wartbarkeit zu maximieren, angefangen bei den einfachsten Apps für mobile Endgeräte bis hin zu hochkomplexen Transaktionssystemen. Der Erfolg von DevOps ist abhängig von der optimalen Zusammenarbeit von Entwicklung und IT-Betrieb sowie dem Einsatz der passenden Tools, die sicherstellen, dass DevOps Qualität und Produktivität verbessert, anstatt sie zu behindern.

Mark TroesterMark Troester ist Vice President, Solutions Marketing bei Progress

www.progress.de

 

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.