Die unternehmensinterne IT-Infrastruktur gereicht manchmal zum Mysterium: Sehr große Cloud-Systeme, eine wachsende Anzahl an Microservices und zusätzlich bringt Homeoffice dutzende neue Schnittstellen, die es zu sichern gilt. Kurzum: Das alles zeigt, dass es bei SaaS-Anbietern ein Umdenken braucht, wie sie ihren Kunden die zuverlässigsten und sichersten Cloud-Infrastrukturen zur Verfügung stellen.
Unternehmen müssen daher einen neuen Standard bei sich anlegen, um die Erwartungen ihrer Kunden erfüllen zu können, denn nur zuverlässige Systeme ermöglichen eine erfolgreiche Service-Bereitstellung. Im Umkehrschluss bedeutet das allerdings, dass Entwickler noch mehr leisten. Mike Tria, Head of Platform Engineering bei Atlassian, hat diese Erfahrungen mit seinem eigenen Team machen können und drei Schlüsselfaktoren herausgefiltert, um zukunftssichere skalierbare und zuverlässige Cloud-Plattformen aufzubauen.
1. Auf Microservices setzen
Das Herzstück einer jeden SaaS-Cloud-Plattform ist die Komplexität. Komplexität kann auf zwei Arten verwaltet werden: Zentral oder verteilt. Ein zentralisiertes System ist ein Monolith, bei dem die gesamte Komplexität in einem einzigen System lebt, das eine einzige Schnittstelle zur Außenwelt darstellt. Ein verteiltes System wird oft mit Hilfe von Microservices aufgebaut, bei denen die Komplexität in einzelne Dienste aufgeteilt wird, die wiederum miteinander kommunizieren. Auf den ersten Blick scheint das auf Microservices basierende System brüchiger zu sein, da es mehr Schnittstellen und damit mehr Möglichkeiten für Fehler gibt.
Das Gegenteil ist jedoch der Fall: Durch die Verwendung von Service Level Objectives (SLOs) für jeden Microservice und zusätzliche Alerts an relevante Teams wird eine „Tiefenverteidigung“ im System geschaffen. Einige Unternehmen setzen bereits SLOs ein, allerdings nur in den äußeren Schichten ihres Systems. Atlassian zum Beispiel setzt auf diese Tiefenverteidigung und nutzt über 1.400 Microservices. Eben diese Microservices mit angehängten SLOs, die mit Alerts verknüpft sind, sind der Schlüssel zu einem zuverlässigen Großsystem.
2. Automation überall nutzen, wo es möglich ist
Würden bereits fünf Prozent der Issue Services ihren Job nicht mehr machen, wäre alle Zuverlässigkeit dahin. Durch Automation an allen möglichen Stellen kann jedoch sichergestellt werden, dass die Zuverlässigkeit bei fast 100 Prozent liegt. Ein separates Tool überwacht alle vorhandenen Microservices, verknüpft Warnungen bei Anomalien einzelner SLOs und leitet sie an die entsprechenden Teams weiter, damit diese übernehmen können. Dieses Tool sollte weiterhin mit einem Incident Management System gekoppelt werden – so wird jeder Protokoll-Verstoß direkt gemeldet und kann umgehend behoben werden. Zudem lässt sich ein Microservice-System damit effektiv skalieren, was letztendlich auch weitere Engineering-Ressourcen für anspruchsvolle Arbeiten eröffnet.
3. Ein Fehlerbudget einführen
Damit die Zuverlässigkeit von Services einwandfrei bewertet werden kann, sollte zukünftig ein internes „Fehlerbudget“ eingeführt werden. Dieses Konzept wird von modernen Software-Unternehmen bereits seit zwei bis drei Jahren genutzt. Ein großer Vorteil von Fehlerbudgets ist, dass sie den Teams Spielraum geben. Solange der Dienst innerhalb seines Fehlerbudgets liegt, kann das Team wie gewohnt arbeiten. Erst wenn das Fehlerbudget überschritten wird, sollte das Team zu einer Notfalltaktik übergehen.
Als Beispiel: Das Berechtigungsteam bekommt die Aufgabe, dass der Service in 99,99 Prozent innerhalb einer Sekunde reagieren muss. Die Anzahl der Minuten, in denen diese Zahl nicht erreicht wird, ist dann das Fehlerbudget. Angenommen, aus der Berechnung ergibt sich, dass 52 Minuten des Jahres Fehlerbudget sind. Geht etwas schief und das Team braucht einmal zwei Minuten, um zu reagieren, ist das innerhalb des Budgets und erfordert keine weitere Aktion.
Zuvor wurden bei Atlassian alle Fehler gleichbehandelt, mit der Nutzung eines Fehlerbudgets und SLOs ist das anders – Fehler werden bewertet und sind jetzt skalierbar. Bei Atlassian erhalten alle Services diese Einordnung standardmäßig.
Fazit: Zuverlässigkeit ist der Grundstock für erfolgreiche Service-Bereitstellung
Ohne Kunde kein Service und ohne zuverlässigen Service kein Kunde. Doch um solche Dienste zu etablieren, kommen die meisten Unternehmen nicht um eine Überarbeitung ihrer internen Service-Struktur herum. Mit einer Umstellung auf Microservices, einer zentralen Plattform für deren Verwaltung sowie der Nutzung eines Fehlerbudgets legen sie damit den idealen Grundstein, um auch den Kunden fortlaufend zuverlässige und skalierbare Dienste anbieten zu können.