Application Performance Management (APM) als Basis

DevOps für agiles Deployment und schnelles Bugfixing

15.08.2016 von Karsten Flott
Mit einem DevOps-Ansatz können Unternehmen ihre Prozesse für agiles Deployment und schnelles Bugfixing optimieren. Doch dafür braucht es einen genauen Überblick über den aktuellen Zustand einer Applikationslandschaft. Dabei hilft ein Application Performance Management (APM).

Zunehmend komplexere IT-Umgebungen sind wartungsintensiver und auch anfälliger für Ausfälle. Neue Anforderungen von Kunden und Mitarbeitern erfordern eine hohe Flexibilität von IT-Abteilungen, um IT-Services schnell und performant zur Verfügung zu stellen. Moderne Teamstrukturen und professionelle Tools helfen dabei, Downtimes zu minimieren. Mit einem DevOps-Ansatz etablieren Unternehmen optimierte Prozesse für agiles Deployment und schnelles Bugfixing. Grundlage für eine erfolgreiche Zusammenarbeit von Entwicklung und Betrieb ist ein teamübergreifender Echtzeit-Überblick über den Zustand der gesamten Applikationslandschaft. Dies gelingt mit einem modernen Application Performance Management (APM).

Ausfälle kosten Unternehmen heute durchschnittlich 75.000 Euro pro Stunde. Dementsprechend hoch ist das Interesse in allen Branchen, Ausfallzeiten und Pannen auf ein Minimum zu reduzieren. Bis ein Problem behoben ist, vergeht aber häufig zu viel Zeit: In einer Studie von IDC und AppDynamics gaben 35 Prozent der befragten Unternehmen an, dass sie bis zu 12 Stunden, teilweise auch mehrere Tage benötigen, bis eine fehlerhafte Applikation wieder funktioniert. Häufig geht die meiste Zeit dafür verloren, die Ursache einzugrenzen und zu identifizieren. Mit den richtigen Tools und Prozessen lässt sich der zeitliche Aufwand deutlich verkürzen und die Behebung des Fehlers damit wesentlich beschleunigen.

DevOps spart Zeit

Prozesse und Arbeitsabläufe innerhalb der IT-Abteilung sind für die Performance der Applikationen mindestens genauso wichtig wie das Hardware- und Infrastruktur-Setting. In vielen Unternehmen arbeiten Entwicklung und IT-Betrieb aber immer noch getrennt voneinander. Bei einem akuten Problem kostet das wertvolle Zeit. In der Regel ist das Operations-Team dafür verantwortlich, einen Ausfall zu beheben. Mit verschiedenen Monitoring- und Management-Tools werden einzelne, isolierte Teile der Infrastruktur wie CPU, Hauptspeicher oder Netzwerk durchleuchtet. Manchmal reicht dies aus, um die Ursache zu identifizieren und zu beheben. Häufig müssen jedoch Entwickler hinzugezogen werden, die das Problem dann mit ihren Diagnose-Tools angehen.

Das DevOps-Puzzle
Das fertige Puzzle
So sieht das fertige Puzzle aus: neun Teile, die sich in drei inhaltlich definierte Reihen fügen.
Die obere Reihe
Bei Strategien und Zielen sind die Anwender signifikant weiter als anderswo. Anders gesagt: Die linke obere Ecke des Puzzles haben die meisten bereits richtig platziert.
Die mittlere Reihe
Tückisches Teil: Am schwersten fällt es den Unternehmen, für kulturelle Harmonie in der IT zu sorgen.
Die untere Reihe
DevOps benötigt die richtigen Tools sowie Sicherheits- und Compliance-Instrumente. Die Analysten nennen als ein Beispiel Lösungen für Release Automation.
Performance im Markt
Anwender, die einen großen Teil des Puzzles zusammengesetzt haben, erweisen sich auf dem Markt als leistungsstärker. Das zeigt diese Grafik.
Effekt in der Scorecard
Ganzheitliche DevOps-Anwender profitieren auch bei den KPIs der Business Scorecard. Das zeigt sich in dieser Grafik. Überraschend ist allerdings der geringe Abstand zwischen DevOps-Abstinenzlern und Anwendern mit limitiertem Einsatz.

Die Folge ist eine unübersichtliche Anzahl nicht integrierter Informationsquellen. Das gilt insbesondere für große IT-Abteilungen, in denen die Mitarbeiter an unterschiedlichen Standorten sitzen und sich teilweise gar nicht kennen. Dann vergeht sehr viel Zeit, bis ein Problem analysiert und behoben ist.

Durch eine DevOps-Kultur, die Anwendungsentwicklung und IT-Betrieb enger miteinander verzahnt, vermeiden Unternehmen derartige Szenarien. Der Ansatz nimmt beide Bereiche gleichermaßen in die Verantwortung für eine performante Applikationsumgebung. Im gängigen Setting ist das Development-Team für die Entwicklung von neuem Code zuständig, den der Betrieb dann im laufenden System ausrollt. Bei einem DevOps-Ansatz sind beide Einheiten von Anfang an in alle Prozesse und Aufgaben involviert und damit an der Lösung beteiligt.

Das setzt jedoch eine "Single Source of Truth" voraus - eine einheitliche Sicht auf sämtliche Anwendungen, Prozesse und Komponenten für alle Beteiligten. Ein professionelles Monitoring-Tool, wie zum Beispiel eine Application-Performance-Monitoring-Lösung, kann genau dies leisten und einen 360° Überblick für alle Beteiligten ermöglichen. IT-Abteilungen können sich damit besser miteinander abstimmen.

Neue Applikationen und Features ohne Ausfall

Ein DevOps-Ansatz kann sowohl Ausfallzeiten minimieren als auch die gesamte Applikations-Landschaft optimieren. Updates, Bugfixes und neue Features werden schnell und reibungslos in das Produktivsystem eingespielt. Indem Entwicklungsumgebung und produktive Systemumgebung nicht mehr strikt getrennt sind, entstehen bei Updates, Fehlerkorrekturen oder neuen Features weniger Probleme, beziehungsweise können diese direkt im gemeinsamen Arbeitsprozess erkannt und vermieden werden. Die Fehlerwahrscheinlichkeit bei neuen Releases und die mittlere Reparaturzeit bei Ausfällen werden dadurch signifikant reduziert. Zeitaufwendige nachträgliche Anpassungen der neuen Konfigurationen lassen sich so vermeiden. Neue Funktionen können schnell in der Produktivumgebung ausgerollt werden.

DevOps, automatisierte und optimierte Prozesse

Kommunikation und Kooperation innerhalb der DevOps-Teams werden durch die Automatisierung von Prozessen wie Code-Testings für die beiden unterschiedlichen Umgebungen maßgeblich unterstützt. Neben erheblicher Zeitersparnis lässt sich so vor allem sicherstellen, dass beide Umgebungen mit derselben Konfiguration arbeiten. Ein weiterer positiver Effekt ist, dass die Entwickler Code in kleineren Einheiten schreiben und diesen schneller in der Entwicklungsumgebung einsetzen können. Neue Features, Änderungen und Bugfixes greifen dadurch schneller.

Umdenken in der IT

Abgesehen von den technischen Aspekten ist zur erfolgreichen Einführung von DevOps-Strukturen ein Mentalitätswechsel in der IT nötig. Neben optimierten Arbeitsabläufen und Kommunikationsprozessen innerhalb der Abteilungen ist die Auswahl geeigneter Mitarbeiter entscheidend. Die Größe und richtige Teamzusammenstellung ist ebenso wichtig wie die sinnvolle Integration externer Entwicklungspartner. Zuletzt müssen noch klare Kompetenzen und Aufgaben zugeteilt werden, zum Beispiel was spontane Systemausfälle und Netzwerkprobleme betrifft. Ist das der Fall, können Unternehmen mithilfe von Application Performance Monitoring ein agiles Deployment und schnelles Bugfixing sicherstellen.