Agile Operations kein Hexenwerk

Es wird viel vom Dev-, aber weniger vom Ops-Teil in DevOps gesprochen. Ist vielleicht auch verständlich. Development klingt kreativer und spannender. Agil wird die Konstruktion jedoch erst dann, wenn mit der agilen Entwicklung eine genauso agile IT-Operations verbunden ist. Und dieser Betrieb ist – kreativ oder nicht – eine komplexe Aufgabe. Während die Entwicklung effektive Lösungen für bestehende und neue Business-Anforderungen finden muss, arbeitet IT-Operations daran, diese Lösungen skalierbar, sicher, verfügbar, leistungsstark, widerstandsfähig, anwenderfreundlich und möglichst kosteneffizient zur Verfügung zu stellen. Das hat viel mit Hardware, Netzwerken und Security zu tun, also Dingen, die sich nicht mehrmals am Tag oder im Extremfall mehrmals pro Stunde verändern lassen.

Spezielle Ops-Strategien

Deshalb müssen hier neben den generellen DevOps-Maßnahmen wie interdisziplinärer Zusammenarbeit, automatisierten Dashboard oder Continuous Improvement einige spezielle Strategien implementiert werden, damit das Zusammenspiel von Dev und Ops funktioniert. Laut Disciplined agile sind das folgende:

Solution Monitoring – Lösungen müssen ständig mit geeigneten Tools und Systemen hinsichtlich Performance, Fehlerfreiheit, Sicherheit, Verfügbarkeit etc. überprüft werden. Für diese Disziplin gibt es verschiedene Lösungen, die besonders für agile Umfelder geeignet sind. Diese Monitoring-Systeme sollten in Echtzeit und Silo übergreifend funktionieren. Außerdem sollten sie folgende Funktionen aufweisen:

  • Entdecken und Darstellen der Aktivität aller Netzwerk-Devices und deren Anwendungen.
  • Störungen sollten automatisch Silo übergreifend korreliert und in ihrer Schwere bewertet werden können.
  • Application Performance und Real User Monitoring. Es sollten qualitative Aussagen zur Anwendungsperformance bis zum einzelnen User hin erstellbar und in grafischen Auswertungen darstellbar sein.
  • Virtual Machine Monitoring. Auch die Performance von Applikationen in virtuellen Umgebungen muss analysier- und darstellbar sein.
  • Data Center Konsolidierung und Cloud Migration. Diese Funktion erlaubt den Vorher- und Nachhervergleich sowie ein kontinuierliches Messen der Performance während einer Migration.
  • Security Analyse und Erkennen von Angriffen im Netzwerk. Hier geht es um das Aufzeigen von Sicherheitslücken und der Überprüfung der Compliance-Regeln im Netz. Außerdem werden mit dieser Komponente eines Monitoring-Systems Angriffe von Viren erkannt und sofortige Alarmierung ausgelöst.
  • IT Operations Analytics – Damit werden Performance Daten in verschiedenen Applikations-Ebenen und Datacenter-Silos korreliert. Darüber hinaus können Daten für weitere Analysesysteme zur Verfügung gestellt werden.

Standard Platforms – Entwicklungen schnell zu deployen funktioniert einfacher, wenn man es auf einer definierten Zahl verschiedener Hardware-Plattformen realisiert als in einer IT-Landschaft, die aus vielen unterschiedlichen und mitunter auch noch exotischen Plattformen mit spezifischen Anforderungen besteht.

Deployment Testing – Nachdem ein Update oder eine Komponente deployed worden ist, muss sichergestellt werden, dass sie auch im operativen Bereich sicher funktioniert, bevor sie in Produktion geht. Wurden die richtigen Versionen der richtigen Files überall dort installiert wo nötig? Wurden die notwendigen Datenbankanpassungen vollzogen? Auch hier gibt es Testmethoden, die agile Umgebungen besser unterstützen als traditionelle Methoden. Synthetic Monitoring ist zum Beispiel ein Weg, um Performance und Belastbarkeit einer neuen oder erneuerten Applikation oder eines Web-Services automatisiert zu prüfen und gegebenenfalls Schwachstellen zu beseitigen.

Automated Deployment – Damit es nur kleinstmögliche Verzögerungen gibt zwischen Entwicklung und Produktion müssen neue Komponenten automatisch deployed werden können. Das unterstützt das Konzept des Continuous Deployment.

Automated Deployment reduziert die Fehlerhäufigkeit eines manuellen Prozesses. Einmal richtig aufgesetzt und konfiguriert funktioniert der automatische Prozess immer wieder. Das bedeutet, jeder im Team kann Software deployen. Bei automatisiertem Deployment steckt das Wissen im Prozess und nicht mehr im Kopf einzelner Mitarbeiter. Ein manuelles Deployment durchzuführen und zu überprüfen ist zeitaufwendig. Zeit, die Entwicklern für ihre eigentliche Aufgabe genommen wird. Automatisiert funktioniert das Deployen in Sekunden. Menschen müssen sich erst dann darum kümmern, wenn tatsächlich Probleme auftauchen. Außerdem sind automatisierte Deployments nicht nur wiederholbar, sie können auch konfiguriert werden. Während der zugrunde liegende Prozess gleich bleibt, kann das Deployment leicht an spezifische Anforderungen angepasst werden. Die genannten Vorteile haben den Vorteil, dass Software deutlich öfter oder auch continuously deployed werden kann.

Operations Intelligence – Operations Intelligence ist ein Teil von IT-Intelligence. Hier werden BI und Analytics-Technologien auf die IT angewendet. Dabei geht es darum, in komplexen IT-Umgebungen aus großen Mengen an IT-Betriebsdaten Schlussfolgerungen zu ziehen und diese dann in Form von Dashboards oder Reports darzustellen. Die Einsatzbereiche von Operations Intelligence liegen dabei vor allem:

  • im zielgenauen Ermitteln auch bisher unbekannter Ursachen von Systemfehlverhalten,
  • dem Priorisieren von Problemen nach ihrem Schaden für Geschäftsprozesses,
  • Abschätzung des Aufwands für eine Fehlerbeseitigung,
  • Proaktive Kontrolle von Service-Performance und -Verfügbarkeit,
  • Vorausberechnung zukünftiger Systemzustände und ermitteln, wie sich diese auf die Service-Performance auswirkt,
  • Zuordnung der auftretenden Aufgaben zu den am besten geeigneten IT-Operation Teams,
  • Kapazitätsmanagement, es werden historische Trends analysiert und Zukunftsszenarien entwickelt, um den Kapazitätsbedarf vorauszusagen.

Natürlich kann der Teufel bei der Anwendung dieser Ops-Maßnahmen im Detail stecken, aber wer diese Strategien berücksichtigt, für den ist auch der Ops-Teil von DevOps kein Hexenwerk.