Atlassian
18.06.2021, 08:07 Uhr
Cloud-native Anwendungen entwickeln
Mike Tria, Head of Platform Engineering bei Atlassian erklärt was bei der Entwicklung effektiver und zuverlässiger Cloud-nativer Anwendungen zu beachten ist.
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 Continous 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 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.