Weihnachtszeit! Ausfallzeit?
Wie sich Systemausfälle an Weihnachten vermeiden lassen und damit der Start ins neue Jahr gelingt, weiß Nico Vierhout von CircleCI.
Die Weihnachtsfeiertage rücken näher und mit ihr auch die Urlaubszeit, die für Technologie-Unternehmen gerade zum Jahresende eine besondere Herausforderung darstellt. Denn während die meisten Mitarbeitenden die Weihnachtszeit am liebsten daheim mit ihren Familien verbringen, ist die Nachfrage nach Online-Diensten gerade dann oft am höchsten. In der Softwareentwicklung leidet darunter am meisten die Mean-Time-To-Recovery (MTTR). Sie gibt an, wie viel Zeit im Durchschnitt benötigt wird, um eine Komponente oder ein System nach einem Ausfall zu reparieren. Für agile Entwicklungsteams beziffert die Kennzahl die wichtige Fähigkeit, sich so schnell wie möglich zu erholen, wenn eine Aktualisierung immer wieder fehlschlägt.
Bleiben Anwendungen oder Systeme offline, kann das für Unternehmen erhebliche Kosten nach sich ziehen. Laut einer Gartner-Studie kostet eine Minute Ausfallzeit im Durchschnitt 5.600 US-Dollar. Nach unseren eigenen Untersuchungen wird die durchschnittliche Zeit zwischen einem Ausfall und dem nächsten erfolgreichen Workflow am stärksten von den Feiertagen am Jahresende beeinflusst wird. Dies deutet darauf hin, dass die jährlichen Marktzyklen und der vorhersehbare Rhythmus der Jahreszeiten sogar stärkere Auswirkungen auf die technische Produktivität haben als globale Phänomene wie die Pandemie. Doch wie können Unternehmen ihren Entwicklerteams über die Feiertage eine Auszeit gönnen und gleichzeitig die Produktivität aufrechterhalten sowie Ausfallzeiten vermeiden?
Die Betriebsbereitschaft priorisieren
Da eine Software heute aus so vielen einzelnen unabhängigen kleinen Services und verschiedenen Abhängigkeiten besteht, lässt sich die Frage „Funktioniert die Anwendung?“ nicht mehr auf Anhieb beantworten. Einige Komponenten der Anwendung können ausfallen, während andere einwandfrei funktionieren. In Zeiten von höheren Ausfallrisiken gilt es den laufenden Betrieb zu priorisieren. Von zentraler Bedeutung ist hierbei die reibungslose Zusammenarbeit zwischen Softwareentwicklung und IT-Betrieb, was dem DevOps-Modell entspricht.
Unternehmen müssen sich daher vergewissern, dass alle in der technischen Organisation dasselbe Verständnis von der Betriebsbereitschaft der Anwendungen und Systeme haben. Sie müssen wissen, was es bedeutet, dass eine Plattform funktioniert und den Kunden zur Verfügung steht. Betriebsbereit zu sein, bedeutet dann auch, dass die Entwicklungsteams die geschäftlichen Auswirkungen ihrer Arbeit verstehen. Wenn sich alle Beteiligten darüber einig sind, was ein kritischer Fehler ist und welche Folgen er hat, können sie rechtzeitig eine Strategie zur Schadensbegrenzung bestimmen und die Zuverlässigkeit der Plattform im Falle eines Ausfalls besser gewährleisten.
Benutzererlebnis in den Mittelpunkt stellen
Wenn Mitarbeitende im Urlaub sind, bedeutet das meist auch, dass weniger Teammitglieder für die Fehlersuche und Problembehebung zur Verfügung stehen. Die Folge sind längere Wiederherstellungszeiten und damit verbunden längere Ausfälle. Kein Wunder also, dass sich viele Teams in dieser Zeit für einen Code-Freeze entscheiden. Bei einem Code-Freeze wird der Code wortwörtlich eingefroren. Entwickler dürfen dann keine Änderungen mehr durchführen. Ist der Code eingefroren, gibt es keine neuen Software-Releases mehr und das Risiko den Unternehmensabsatz durch neue Bugs und Ausfälle zu gefährden sinkt. Der Nachteil ist, dass auch die Produktivität im Team sinkt und sich ein eingefrorener Code nicht an wechselnde Kundenbedürfnisse anpassen kann.
Es ist jedoch möglich, eine hohe Produktivität aufrechtzuerhalten, indem Unternehmen ihre Testabdeckung erweitern. Sie sollten testen, wie verschiedene Komponenten ihrer Anwendung zusammenarbeiten und so lange ausprobieren, bis sie die optimale Konfiguration gefunden haben – und das sowohl aus Sicht der Technologie als auch aus Sicht der Benutzer. Unternehmen müssen dazu das Verhalten der Benutzer nachbilden und ihr System so trainieren, dass es ihnen hilft, sie wirklich zu verstehen und Erwartungen abschätzen zu können. Das Benutzererlebnis in den Mittelpunkt zu stellen, ist eine der besten Strategien für Unternehmen, um Fehler zu vermeiden. Auch wenn die Erhöhung der Testabdeckung zu längeren Arbeitsläufen führt, werden auch kleine Entwicklerteams in die Lage versetzt, ihre Arbeit fortzusetzen und Ausfallzeiten beim Auftreten von Fehlern zu verringern.
Sicherheit aktualisieren und automatisieren
Das Jahresende ist auch die Zeit, in der Cyberkriminelle vermehrt vermeintliche Schwachstellen ausnutzen und versuchen, in Systeme einzudringen. Es gibt Phishing-Angriffe, Probleme in der Lieferkette, schlechte Konfigurationen und andere Risiken, die die Angreifer zu ihrem Vorteil nutzen können. Allein im vergangenen Jahr haben die Angriffe auf die moderne Software-Lieferkette um 650 Prozentzugenommen. Die häufigste Angriffsart wird als Dependency Confusion bezeichnet: Während ein automatisiertes Softwareentwicklungstool die Abhängigkeiten aktualisiert, auf die es angewiesen ist, wird das Softwareinstallationsprogramm dazu verleitet, ein bösartiges Paket aus einem öffentlichen Repository herunterzuladen. Abhängigkeiten ermöglichen es den Entwicklerteams, schnell zu arbeiten, aber nur wenige machen sich Gedanken darüber, ob ihre Abhängigkeiten sicher sind.
Die Durchführung automatischer Sicherheitsscans kann hier Abhilfe schaffen, denn so ist keine einzelne Person für den Schutz des gesamten Systems verantwortlich. Die Zeit während den Feiertagen können Unternehmen dann nutzen, um Sicherheits-Patches und -Upgrades durchzuführen. Diese Änderungen sind weniger risikoreich als einige der neuen Funktionen, die zu anderen Zeiten des Jahres veröffentlicht werden. Unternehmen sollten sich dabei vergewissern, dass niemand im Team mit einem Standardbenutzernamen und -kennwort auf Anwendungen zugreift. Solche Standard-Logins nutzen Cyberkriminelle häufig aus, um sich Zugang zum System zu verschaffen. Ebenso wichtig ist es, die Sicherheitstrainings des gesamten Teams auf den neuesten Stand zu bringen. So sollten zum Beispiel alle Mitarbeitenden wissen, wie sie Phishing-Angriffe erkennen und verhindern können.
Kontinuität ist Trumpf
Das vierte Quartal ist für Softwareunternehmen in der Regel eine wichtige Zeit für die Planung, in der sie bewerten können, was funktioniert und was nicht. Unternehmen sollten dabei nach Divergenzen zwischen den eigenen Systemen suchen, die behoben werden müssen, und nach Gemeinsamkeiten, die gut funktionieren. Zentrale Plattformteams nehmen die dafür benötigte Makroperspektive ein: Anstatt sich auf Mikrooptimierungen zu konzentrieren, identifizieren sie Möglichkeiten, die Effizienz über eine gesamte Plattform zu steigern und über das ganze Jahr verteilt Vorteile für das Unternehmen zu bringen. Diese Plattformteams können fortlaufend bestimmte Audits zum Schutz der Systeme durchführen – immer mit Blick auf die Betriebsbereitschaft, denn Kontinuität ist Trumpf. In Kombination mit einer erhöhten Testabdeckung und den notwendigen Sicherheitsvorkehrungen können die Entwicklerteams, ihre Produktivität aufrechterhalten und die berüchtigte Urlaubsflaute vermeiden.
Nico Vierhout
ist Field CTO von CircleCI, einer Entwicklungsplattform für die kontinuierliche Integration und Bereitstellung von Software. Vorher war er CEO von Vamp, einer Cloud-nativen Plattform für Release-Orchestrierung, die im Mai 2021 von CircleCI übernommen wurde. CircleCI gilt als wachstumsstarkes Einhorn mit einer Bewertung von 1,7 Milliarden Dollar.