Wie wir die Stabilität unserer Plattform sicherstellen

Stabilität bedeutet im Kontext einer Energy-IoT-Plattform vor allem eines: sie muss zuverlässig verfügbar sein. Die Verfügbarkeit (Availability) drückt aus, wie viel Prozent der Zeit, die der Dienst zur Verfügung stehen soll, er tatsächlich zur Verfügung stand. Wie Kiwigrid die Stabilität von KiwiOS sichert, erklären wir in diesem Blog.
 

Wann gilt eine Plattform als verfügbar?

Ab wann kann man davon sprechen, dass etwas verfügbar ist? Wenn es zum Beispiel noch möglich ist, ein Frontend über den Webbrowser aufzurufen, sich aber beim Aufruf beliebiger Funktionalität ("Klick auf einen Button") nichts mehr tut, ist es dann verfügbar? Um so etwas möglichst genau abzubilden, werden verschiedene Abstufungen der Verfügbarkeit erfasst: 

  • Operational
  • Degraded Performance
  • Partial Outage
  • Major Outage
  • Under Maintenance

Von “Degraded Performance” spricht man, wenn ein Dienst (z. B. das User Interface) beispielsweise unverhältnismäßig langsam ist. Die Verzögerungen fließen entsprechend in die Berechnung der Verfügbarkeit mit ein. Angekündigte Unterbrechungen, in denen die Plattform oder einzelne Bereiche gewartet werden (“Under Maintenance”), fließen hingegen nicht mit ein.
 

Die Verfügbarkeit der KiwiOS-Plattform

Eine IoT-Plattform läuft prinzipiell 24/7 ohne Pause. Um die Stabilität einer Plattform zu ermitteln, wird überprüft, wie viel dieser Zeit sie uneingeschränkt verfügbar war.

Kiwigrid strebt eine Plattformverfügbarkeit von 99,5% an, das entspricht ca. 23 Stunden und 55 Minuten am Tag. Das Verfügbarkeitsziel, das sich ein Unternehmen selbst setzt, wird auch als Service Level Objective (SLO) bezeichnet. Wird eine bestimmte Mindestverfügbarkeit mit Kunden vereinbart, so wird diese in einem Service Level Agreement (SLA) festgehalten. Wenn die darin festgeschriebene Verfügbarkeit nicht gehalten werden kann, darf der Kunde Beschwerde einlegen und ggf. werden dann die Kosten für den Service entsprechend reduziert.
 

Wie die Plattform-Stabilität bei Kiwigrid sichergestellt wird

Kiwigrids Plattform baut auf einer Microservice-Architektur auf. Wenn eine Anfrage gesendet wird und der entsprechende Microservice nicht aktiv ist, schlägt die Anfrage fehl. Deshalb laufen mehrere Dienste parallel. Fällt ein Dienst aus, übernimmt der nächste.

Auf organisatorischer Ebene wird die Stabilität einer Software-Plattform klassischerweise von einem SRE-Team (Site Reliability Engineering) überwacht. Bei Kiwigrid liegt die Verantwortung für diesen Bereich innerhalb des DPE-Teams (Developer Productivity Engineering). Neben diversen Aufgaben, die sich mit denen eines klassischen SRE-Teams überschneiden, ist das DPE-Team außerdem dafür verantwortlich, Entwickler*innen die Arbeit durch die Optimierung von Prozessen zu erleichtern. Das DPE-Team hat bei Kiwigrid ständige Rufbereitschaft, d. h., es gibt mindestens eine Person, die 24/7 erreichbar ist. Wenn automatisch regelmäßig durchgeführte Health-Checks fehlschlagen, wird automatisiert Alarm auf dem Handy ausgerufen.

Ein gutes Incident Management ist wichtig, um auf Störungen möglichst schnell reagieren zu können. Wenn 18 Uhr ein Fehler auftritt, sollte das nicht die Nacht liegen bleiben, sondern möglichst zeitnah bearbeitet werden. Insgesamt wird zwischen drei Alarmstufen unterschieden:

  • P1: sehr kritisch (Anruf, SMS, App-Mitteilung)
  • P2: teilweise erforderlich direkt zu handeln, teilweise kann es warten z. B. IP-Adressen Sync ausgesetzt, nur die App sendet Mitteilung, etc. 
  • P3: erfordert kein sofortiges Handeln, E-Mail am nächsten Tag
     

 „Als wir Ende 2021 die Migration auf die Google Cloud vorgenommen haben, kam es schon häufiger mal vor, dass in der Nachtschicht der Alarm losging. Mittlerweile ist das aber viel weniger geworden. Das Gute ist ja, dass sich die Stabilität unserer Plattform durch die ständige Überprüfung und Anpassung immer weiter verbessert und Störungen seltener werden.“ – Christian Laußat (Mitglied des DPE-Teams)


KiwiOS – Auf allen Ebenen stabil

Die Plattform-Verfügbarkeit wird bei Kiwigrid in einem komplexen Prozess automatisiert berechnet. Kiwigrid sichert seinen Kunden eine Plattform-Verfügbarkeit von 99,5 % zu. Auf operativer Ebene wird die Verfügbarkeit durch stabile APIs und eine ausgeklügelte Microservice-Infrastruktur gesichert. Auf organisationaler Ebene gibt es ein dediziertes DPE-Team, das die Stabilität der Plattform 24/7 überwacht.


Du interessierst dich für Energy IoT? Folge uns auf LinkedIn für weitere News.