Autonome DevOps: Unabhängige Systeme statt monolithischer Struktur

München, Starnberg, 18. April 2019 - Da es essentiell ist zu unterscheiden, welche Ausfälle unternehmenskritisch sind, sollten Monitoring KPIs implementiert werden...

Zum Hintergrund: Während in traditionellen IT-Abteilungen die klassische Zweiteilung in Systemadministration und Softwareentwicklung vorherrscht, setzen moderne Unternehmen auf die Verschmelzung dieser beiden Bereiche. Dabei fusionieren die Abteilungen Entwicklung (Dev) und Betrieb (Ops) zu agilen Teams. Konkret heißt dies, dass jeder Entwickler nicht nur für seinen Code, sondern auch für dessen Performance auf der Produktionsumgebung zuständig ist. Dies führt dazu, dass die Teams selbst über mehr Entscheidungsspielraum verfügen und auch mehr Verantwortung übernehmen können. Zudem kommt es zu weniger Reibungen zwischen den Teams sowie zu mehr Robustheit durch schnellere Reaktion auf eventuelle Störungen.

Dadurch ist es möglich, schneller und flexibler auf Veränderungen in den Märkten zu reagieren und Produkte und Dienstleistungen zu verbessern. Diese Transformation stellt jedoch eine sehr große Herausforderung für Unternehmen dar. Marktbedingungen verändern sich durch die Digitalisierung rasant.  Auch wenn die Disruption in manchen Branchen noch nicht völlig gegriffen hat, werden Unternehmen in diesen Sektoren aber oft durch die Erwartungshaltung ihrer Kunden dazu gezwungen, sich der Digitalisierung und ihren disruptiven Momenten zu stellen. In diesem Zusammenhang müssen umfassende Maßnahmen getroffen werden, die in den Bereichen Skills, Organisation und Unternehmenskultur Veränderungen herbeiführen.

Die richtige Integration aller Tools und die Automatisierung der Prozesse ist ein entscheidender Faktor für das Funktionieren von autonomen Teams. Carlo Pacifico, Vice President DACH bei New Relic (1), erklärt nachfolgend, welche technischen Voraussetzungen für das erfolgreiche Arbeiten weitgehend selbstständiger Entwicklerteams gelten sollten:

Unabhängige Systeme statt monolithischer Struktur

Unabhängige Teams arbeiten am besten mit Architekturen, die diese Strukturen nachbilden. Das Konzept von Self-contained Systems (SCS) als autonome Web-Anwendungen ist ein gutes Beispiel hierfür. Ähnlich wie bei Microservices gilt bei dem Architekturkonzept, dass Funktionen in mehrere, unabhängige Systeme zerlegt werden.

Microservices dienen im Gegensatz zu monolithischen Varianten dazu, viele Module zu bilden. Jedes Team kann an einem unterschiedlichen Microservice arbeiten und auch einen eigenen Technologiestack nutzen – ganz nach dem Motto „You build it, you run it“. Dieser Grundsatz wird zwar inzwischen kritisch gesehen, da er von Führungskräften verwendet werden kann, um auf Entwickler Druck auszuüben. Er zeigt jedoch auch: Die Verantwortung liegt bei dem, der den Code produziert hat.

Fehler erkennen und sofort beheben

Die Herausforderung besteht allerdings darin, bei der Vielzahl der bereitgestellten Produktionen, den Überblick zu behalten. Beispielsweise lässt sich nur durch ein Monitoring-Tool verfolgen, ob die vorgenommenen Veränderungen oder gewählten Strategien zum gewünschten Erfolg führen. Außerdem gilt: Je unabhängiger die Teams, desto komplexer wird die Systemlandschaft. Kommt es hier zu unternehmenskritischen Ausfällen, ist es umso wichtiger, diese möglichst schnell zu identifizieren und zu beseitigen.

 

Abb. 1: Visuelle Darstellung von Anwendungsdaten mit einem Insights-Dashboard (Bildquelle: New Relic)

Ausgewählte Software-Anbieter von Monitoring-Programmen wie beispielsweise New Relic ermöglichen ihren Kunden Echtzeit-Einsichten aus der Cloud. Dadurch können diese schneller reagieren und die durchschnittliche Zeit vom Auftreten eines Fehlers bis zur Wiederherstellung des ordnungsgemäßen Betriebs des Systems – Mean-Time-To-Recovery (MTTR) – verringern. So wird der Software-Anbieter ein entscheidender Erfolgsfaktor für eine passgenaue Umsetzung der digitalen Transformation eines Unternehmens.


Monitoring unterstützt DevOps

Da es für ein Unternehmen essentiell ist, zu unterscheiden, welche Ausfälle unternehmenskritisch sind, sollten Monitoring KPIs implementiert werden. Zur Überwachung komplexer Umgebungen, wie etwa Microservice-Strukturen, eignet sich vor allem Distributed Tracing. Es bietet die Möglichkeit, einen Befehl über mehrere Container oder Microservices hinweg zu verfolgen. So ist es möglich, schnell und exakt zu definieren, wo etwaige Fehler oder Verzögerungen verursacht werden. Die Daten, die durch das Distributed Tracing generiert werden, sind deshalb die Basis für DevOps, um dann nach individuellen Anforderungen die Informationen analysieren und daraus Handlungsempfehlungen ableiten zu können.

(1) Das Foto zeigt Carlo Pacifico, Vice President DACH bei New Relic

Querverweis (weitere Infos zum Thema):