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. Die Vorteile der Cloud überzeugen seitdem auch 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. Was bei der Entwicklung effektiver und zuverlässiger Cloud-nativer Anwendungen zu beachten ist, erklärt Mike Tria, Head of Platform Engineering bei Atlassian.
1. 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 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. Die Entwickler müssen nur an einzelnen Stellschrauben drehen, statt die ganze Software zu überarbeiten. Dadurch steigert sich die Flexibilität und Agilität und Continous Delivery wird möglich: ein konstanter Strom neuer Features.
Der Begriff Cloud ist mittlerweile fast allgegenwärtig. Einfach gesagt bezeichnet Cloud Computing eine IT-Infrastruktur, die über das Internet zugänglich ist. Aber wenn man genauer hinsieht, lassen sich drei verschiedene Arten des Cloud Computing identifizieren: Infrastructure-as-a-Service (Server, Betriebssysteme etc.), Platform-as-a-Service (Datenbanken, Speicher etc.), Software-as-a-Service (komplette Anwendung).
2. 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. 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.
3. 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 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 Continous 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.