Die Vorteile der Cloud überzeugen mittlerweile viele Skeptiker. Mehr noch: immer mehr Unternehmen wollen sich die Möglichkeiten der Cloud zunutze machen, um neue Anwendungen „Cloud-native“, also direkt in der und für die Cloud, zu konzipieren, entwickeln und zu betreiben. Doch was ist bei der Entwicklung effektiver und zuverlässiger Cloud-nativer Anwendungen zu beachten?

Cloud Computing – das war für viele Unternehmen in Deutschland lange Zeit nur eine Zukunftsvision. Der Ausbruch von COVID-19 und der folgende Lockdown haben dies schlagartig geändert. Um den Mitarbeitern die Arbeit im Homeoffice zu ermöglichen, mussten Unternehmen ihre IT-Infrastruktur schnellstmöglich in die Cloud verlagern.

Microservices sind die Basis des Cloud-native-Prinzips

Als Folge des letztjährigen Digitalisierungsschubs sehen immer mehr Unternehmen die Notwendigkeit, ihren Kunden oder Mitarbeitern eigenen Applikationen anzubieten, beispielsweise um neue Produkte und Dienstleistungen zur Verfügung zu stellen oder um interne Abläufe zu optimieren. Dafür bietet sich der Cloud-native-Ansatz an, bei dem die Softwarearchitektur auf Microservices basiert. Diese kleinen Einheiten erfüllen in dem Gesamtsystem jeweils nur eine einzige oder eine sehr begrenzte Anzahl an Aufgaben und kommunizieren miteinander.

Auf den ersten Blick scheint dadurch die Komplexität der Anwendung massiv zu steigen. In der Realität machen es Microservices allerdings erheblich einfacher, Applikationen zu verbessern oder Ausfälle zu beheben, weil die Entwickler nur an einzelnen Stellschrauben drehen müssen, statt die ganze Software zu überarbeiten. Dadurch steigert sich die Flexibilität und Agilität und Continuous Delivery wird möglich: ein konstanter Strom neuer Features. Atlassian beispielsweise hat innerhalb von fünf Jahren die Anzahl seiner Microservices massiv erhöht – von nur sechs auf über 1.500, um von den Vorteilen dieser Architektur zu profitieren.

Für die Instandhaltung und Skalierung von Microservices braucht es ein Team

Ein ganzes Team ist vonnöten, um einen Microservice gesund und funktionsfähig zu halten, einschließlich der Instandhaltung seiner Sicherheitsfunktionen, Leistung und Zuverlässigkeit. Sind in einem Unternehmen Hunderte oder sogar Tausende Microservices im Einsatz, ist es besonders wichtig, die richtigen Strukturen für die Zuständigkeit zu implementieren.

Um die Microservices unabhängig voneinander zu betreiben, sollte die Verantwortung für jeden Service nicht zwischen verschiedenen Teams geteilt werden. Bei Atlassian sind zum Beispiel Teams aus fünf bis zehn Entwicklern für eine Handvoll Microservices zuständig und arbeiten an diesen unabhängig von allen anderen Teams. Das ermöglicht ihnen, sich auf einzelne Microservices zu konzentrieren und sie müssen nicht das gesamte System im Blick behalten.

Dadurch können die Entwickler schneller neue Features entwickeln und in höherer Qualität. Gleichzeitig wird die Maintenance und Kontrolle der Microservices, wie ihrer Abhängigkeiten und Alerts, auf mehrere Schultern verteilt. Nimmt sich ein Entwickler frei, kann der Rest des Teams diese Aufgaben problemlos auffangen.

SLOs und Automation sorgen für Sicherheit und Verlässlichkeit

Bei der Entwicklung Cloud-nativer Anwendungen darf trotz dem erhöhten Tempo und der verteilten Architektur die Sicherheit nicht vernachlässigt werden. Dafür können Unternehmen Service Level Objectives (SLOs) – Ziele, an denen die Servicequalität gemessen wird – für jeden einzelnen Microservice formulieren. Damit sorgen sie dafür, dass sich auch auf tiefster Ebene keine Fehler einschleichen, die Auswirkungen auf die Verlässlichkeit der gesamten Anwendung haben.

Darauf aufbauend sollten Unternehmen für einen genauen Blick auf die Sicherheit ihrer Cloud-native Applikationen auf ein zentrales, automatisiertes Monitoring-Tool setzen. Dieses überwacht eigenständig alle Microservices, erkennt, wenn Anomalien auftreten oder die SLOs nicht mehr erreicht werden und informiert die entsprechenden Teams. In Verbindung mit einer Incident-Management-Plattform kann jedes Problem unmittelbar von den Verantwortlichen behoben werden. Dadurch bieten die Anwendungen ein hohes Maß an Sicherheit und einen durchgängig zuverlässigen Service.

Die Zukunft der Cloud entwickeln

Aufgrund des rasanten Wachstums bei der Cloud-Einführung ist es für Unternehmen unerlässlich geworden, moderne IT-Architekturen aufzubauen, die diese neue Realität unterstützen und ihnen ermöglichen, die Vorteile der Cloud auszuschöpfen. Dazu gehört auch die Entwicklung von Anwendungen direkt in der Cloud, also Cloud-native.

Vor allem für SaaS-Anwendungen ist die Continuous Delivery ein enormer Vorteil, um schnell Innovationen auszurollen und Nutzern eine moderne und reibungslose digitale User Experience zu bieten. Atlassian hat so die Entwicklung seiner Cloud Plattform und der darauf basierenden Anwendungen massiv beschleunigen können. Dieser Cloud-native-Ansatz ist aber nicht nur für große Softwarefirmen wichtig, sondern für jedes Unternehmen, das moderne Software entwickelt.

Mike Tria ist Head of Platform Engineering bei Atlassian.

Atlassian