Von der Fertigung über das Transportwesen bis hin zum Einzelhandel unterstützen Unternehmen aus praktisch allen Branchen ihre digitale Transformation durch den Umstieg auf Cloud-basierte Infrastrukturen. Der Wechsel von On-Premises-Software zu Cloud-Diensten hat den Prozess der Anwendungsentwicklung und -bereitstellung revolutioniert, insbesondere im Bereich der SaaS-Anwendungen. Doch die Cloud zu nutzen, reicht oft nicht aus. Um von optimierter Flexibilität, Verfügbarkeit, Skalierbarkeit und Gesamtleistung zu profitieren, müssen Sie auf Cloud-Native-Anwendungen setzen.
Cloud-native Architekturen sind im Bereich der Softwareentwicklung zum Standard geworden. Doch mit dieser Popularität sind auch Unsicherheiten verbunden: Was genau bedeutet es, wenn eine Anwendung Cloud-nativ ist? Die Definitionen des Begriffs sind so vielfältig wie die Anzahl der Cloud-nativen Anwendungen, die heute in Betrieb sind. Es gibt jedoch einige standardmäßige, leicht verständliche Grundsätze, die bei der Entwicklung Cloud-nativer Applikationen nützlich sind.
Was Cloud-Native bedeutet
Cloud-native Anwendungen sind Softwaresysteme, die gemäß den Leitprinzipien der Cloud (dynamisch, skalierbar und hochverfügbar) entwickelt werden. Die Cloud-native Anwendungsarchitektur ist eine Antwort auf die Herausforderungen, mit denen Softwareentwickler konfrontiert sind, wenn sie mit Legacy-Ansätzen arbeiten. Cloud-native Applikationen:
nutzen die dynamische Ressourcenzuweisung in der Cloud. Das bedeutet, dass die Größe der Anwendung in Abhängigkeit von den aktuellen Anforderungen variiert und die verbrauchten Ressourcen an die zum jeweiligen Zeitpunkt benötigten angepasst werden.
nutzen Service- oder Microservice-Architekturen. Durch den Einsatz von Microservices lassen sich Größe und Komplexität von Anwendungen leicht und auf überschaubare Weise skalieren.
sind containerisiert. Durch die Verwendung von Containern können Dienste schnell und einfach in verschiedenen Umgebungen eingesetzt werden, ohne komplexes Abhängigkeitsmanagement.
orchestrieren Services mit Kubernetes. Der De-facto-Standard für die Container-Orchestrierung und -Verwaltung startet Container, richtet die Kommunikation zwischen Containern ein, überwacht auf Fehler, startet Container bei Bedarf neu und passt die Größe der Anwendung an die aktuellen Anwendungsfälle an. Kubernetes arbeitet eng mit der Cloud zusammen, um dynamisch dimensionierte Anwendungen und Services zu erstellen.
speichern und verwalten Daten in Cloud-managed Datenbanken und anderen Datendiensten. Cloud-optimierte Datenservices, die automatisch skaliert werden, um den Anforderungen der Anwendung gerecht zu werden und große Datenmengen schnell verfügbar zu machen, sind Standardanforderungen für Cloud-native Anwendungen.
nutzen moderne Entwicklungs- und Betriebs-Workflows. Dazu gehören DevOps, Continuous Integration und Continuous Delivery (CI/CD), Git Source Code Management und ähnliche Prozesse und Verfahren.
Darüber hinaus sind viele, aber nicht alle Cloud-nativen Anwendungen so konzipiert, dass sie Cloud-agnostisch sind oder zumindest in angemessener Weise zu neuen Cloud-Anbietern migriert werden können. In einigen Fällen funktionieren Cloud-native Anwendungen in hybriden Cloud- oder Multi-Cloud-Umgebungen.
- Mohammad Reza Gashtil, adesso
„Multi-Cloud-Umgebungen sind heute so komplex und vielschichtig, dass sie sich nicht selten über mehrere große Plattformen hinweg erstrecken. Für eine moderne Interpretation der DevSecOps gilt: You built it, you run it. Eine nahtlose und sichere Verzahnung zwischen Dev und Ops ist dafür essenziell. Die Praktiken, Werkzeuge, Architekturen und Sicherheit für eine Cloud-Native-App müssen nun in einer Multi-Cloud-Umgebung adressiert werden. Teilweise herrschen andere Prämissen in einer Multi-Cloud-Umgebung, welche ein Umdenken erfordert. <br /><br /> Um die End-zu-End Sicherheit einer Multi-Cloud-App gewährleisten zu können, wird hybrides Netzwerk ein Erfordernis. Für ein erfolgreiches Multi-Cloud-Management nimmt Automatisierung eine zentrale Stellung ein. Die selbstheilenden (Self-Healing) IT-Systeme, welche fehlertolerant und hochverfügbar betrieben werden, hat das Cloud Computing versprochen und geliefert. Auch das Monitoring und die Behebung der Schwachstellen folgen dieser Entwicklung. Die sogenannten Detection- & Response-Prozesse werden weitgehend KI-gestützt sein, weil Menschen oft gar nicht mehr in der Lage sind, auf eine Schwachstelle zu reagieren.<br /><br /> Das ‚Everything as Code‘-Leitbild erweitert die bereits etablierter ‚Infrastructure as Code‘ (IaC) um weitere Paradigmen, wie bespielsweise Security. Im Falle vom Governance sprechen wir von ‚Policy as Code‘.“ - Dr. Stephan Michard, Dell Technologies
„Das Mantra ‚Cloud first‘ ändert sich gerade hin zu ‚Application first‘. Die gegenwärtige Multi-Cloud-Nutzung ist bei vielen Unternehmen mit der Zeit zufällig gewachsen, das bringt oftmals einen gewissen Grad an Komplexität mit sich. Gleichzeitig entstehen jedoch auch viele neue Chancen. Wir müssen in der Diskussion an einen Punkt kommen, an dem Multi-Cloud-Management strategisch, an den Unternehmenszielen ausgerichtet, eingesetzt wird. Allein beim Beispiel Google Cloud fallen mir ad hoc fünf Möglichkeiten ein, Container zu hosten. Eine gute Strategie berücksichtigt diese Optionen.<br /><br />Am Anfang gilt es, im Rahmen eines Application Assessments zu beantworten, welche Applikation zu welcher Landing Zone passt. Dann erst kann entschieden werden, ob es Sinn ergibt, eine Applikation mittels Lift-and-Shift in einer Cloud-Umgebung zu betreiben, oder ob ein Refactoring vielleicht der bessere Ansatz ist.“ - Andreas Kopf, microfin
„Bei Nutzung von Cloud-Services ist die IT der zwei Geschwindigkeiten besonders spürbar. Bei Datenschutz und Compliance stehen kleinere Unternehmen vor großen Herausforderungen, die sie nicht ohne weiteres allein meistern können.<br /><br /> Statt Multi-Cloud trifft es vielleicht der Begriff “Multi-Provider” besser. Unternehmen müssen einen ganzen Zoo an Anbietern inkl. der eigenen IT orchestrieren können, wenn sie die Potenziale wirklich nutzen wollen.<br /> Am Ende bekommt man immer den Provider, den man verdient. Als kleines Unternehmen kann es schwer sein, alleine mit Hyperscalern zu verhandeln. Der Markt für Managed Services ist in den vergangenen Jahren stark gewachsen und es lohnt sich, Partner zu suchen, die die Vielzahl an Providern entsprechend steuern können.<br /> Die Steuerungs- und Compliance-Ebene ändert sich in einem Multi-Cloud-Umfeld kontinuierlich. Dieser Umstand sollte auch in SLA und Verträgen reflektiert sein, um nicht ständig neu verhandeln zu müssen. Dafür braucht es Augenhöhe und Vertrauen zwischen Provider und Kunde.“ - Stefan Walter, minnosphere, ein Mitglied der msg-Gruppe
„Lift-and-Shift-Szenarien haben in den vergangenen Jahren zugenommen. In der Praxis sind immer noch sehr viele Unternehmen dahingehend gezwungen, neben einer Standard SaaS-Anwendung auch weiterhin ihre eigene Private Cloud zu betreiben. Multi-Cloud bleibt damit auch in Zukunft eine Notwendigkeit.<br /><br /> Der Zuschnitt meiner IT-Infrastruktur ist nicht nur ein Sicherheits- oder Betriebsthema, sondern rührt auch an die Identität eines Unternehmens. Anwendungen und Systeme müssen letztlich auch zur Unternehmenskultur passen.<br /> Aus Sicht des ‚Innovators‘ gesprochen: Es muss auch in hochregulierten Branchen möglich sein, schnell einen Prototypen hochzuziehen und Neues auszuprobieren, trotzdem aber beim Datenschutz auf der sicheren Seite zu sein.“ - Florian Weigmann, plusserver
„Die Abrechnungsmodelle der Hyperscaler sind oft sehr komplex, sodass sie ohne Erfahrung nur schwer zu verstehen sind.<br /><br /> Applikation ist nicht gleich Applikation. Startups müssen sich zum Beispiel keine Gedanken über Altsoftware machen und können sofort auf DevOps setzen. Sie profitieren gleich von einer schlankeren Architektur mit erleichtertem Betrieb. Doch so ein ‚Big Bang‘ ist bei ‚gewachsenen‘ Unternehmen illusorisch. Der Monolith bleibt auch nach der Migration ein Monolith.<br /><br /> Wunsch und Ziel einer Multi Cloud ist schlicht, sich nicht mehr um die eigene Infrastruktur kümmern zu müssen. Die Komplexität ‚unter der Haube‘ sollte an der Oberfläche in Einfachheit umgemünzt werden. Workloads werden dorthin verlagert, wo sie den größten Benefit bringen.“ - Bernd Gill, Rackspace
„Wenn ein Kunde aus dem klassischen Outsourcing kommt, fehlen meistens Skills und Ressourcen, um den Betrieb selbst sicherzustellen. Insourcing wird bei Multi-Cloud so zum unternehmenskritischen Thema und erfordert die Ausbildung der eigenen IT als Teil des Transformationsprojektes.<br /><br /> Hyperscaler liefern hochstandardisierte Services. Um daraus überhaupt vernünftige Business Cases zu schöpfen braucht es Dienstleister, die die Lücke zwischen Standardtechnologie und Customizing schließen. Nur so wird die Public Cloud auch zum ‚Business Enabler‘.<br /><br /> Als Berater müssen wir die gesamte Organisation unserer Kunden mit auf die Reise nehmen. Schließlich geht es darum, alle Workloads so zu transformieren, dass sie in der Cloud zukunftsfähig werden. Dazu gehört: Aufräumen mit Altlasten, Hinzufügen neuer Funktionalitätsbausteine, Anbindung von neuen Technologien und Services wie künstlicher Intelligenz.“ - Nicholas Hamblin, Tietoevry
„Es beginnt doch schon bei der Zielsetzung. Betreibe ich eine Multi-Cloud, um einen Vendor-Lock-In zu vermeiden, oder geht es darum, zusätzliche Prozesse an eine bestehende Infrastruktur anzudocken? <br />Hauptimpuls für eine bestimmte Cloud-Strategie ist fast immer ein konkreter Use Case, der die Entscheidung für oder gegen Automatisierung, Kubernetes oder die Wahl eines Hyperscalers bedingt.<br /><br />In Multi-Cloud-Szenarien steigt die Gefahr, dass die Governance unter die Räder kommt – zum Beispiel in Form mehrfach gebuchter Subscriptions oder unnötiger Workloads. Das alles verursacht Kosten- und Sicherheitsrisiken. Es ist also wichtig, Security, Access Control und alle anderen Governance-Belange in meiner Multi-Cloud-Strategie von Anfang an mitzudenken.“
Wozu eine Cloud-Native-Architektur?
Cloud-Native-Prozesse und -Verfahren für die Entwicklung und den Betrieb von Anwendungen schaffen moderne, erstklassige Applikationen, weil sie wichtige Aspekte des modernen Anwendungserlebnisses betonen:
Automatisierung
Manuelle und repetitive Aufgaben können viele IT-Ressourcen fressen. Dazu gehören Tasks wie Deployment Management, Test-Suiten und diverse Aufgaben in Zusammenhang mit Hardware. Indem sie diese automatisieren, sparen Unternehmen viel Zeit und Geld. Wenn Sie Anwendungen nach Cloud-nativen Prinzipien erstellen, ist die Automatisierung Ihrer Entwicklungs- und Betriebsumgebungen eine Selbstverständlichkeit.
Agilität
Agilität ist die Fähigkeit, Veränderungen schnell zu erkennen und darauf zu reagieren. In der modernen Unternehmenslandschaft ist dies eine entscheidende Fähigkeit. Organisationen, die Cloud-Native-Anwendungen entwickeln und betreiben, sind flexibler und können schneller und effektiver auf veränderte geschäftliche und technologische Rahmenbedingungen reagieren. Das liegt größtenteils an der dynamischen Natur von Cloud-nativen Architekturen.
Skalierbarkeit
Wenn Ihr Unternehmen wächst, wachsen auch die Ressourcenanforderungen Ihrer Anwendung. Lastspitzen können herkömmliche Anwendungsinfrastrukturen stark beeinträchtigen. Eine hochdynamische Cloud-Infrastruktur ermöglicht eine automatisierte und besser zu managende Skalierung von Anwendungen. Aber diese Cloud-Dynamik gibt es nicht umsonst: Ihre Applikation muss so aufgebaut sein, dass die dynamische Ressourcenzuweisung richtig funktioniert. Cloud-native Anwendungen sind darauf konzipiert.
Verfügbarkeit
Die Verfügbarkeit ist ein Maß für den prozentualen Anteil der Zeit, in der Ihre Anwendung den Kunden zur Verfügung steht. Im Gegensatz dazu steht die Zeit, in der sie aufgrund von Anwendungsausfällen, Wartungs- oder Upgrade-Verfahren nicht verfügbar ist. Eine niedrige Verfügbarkeit wirkt sich in der Regel negativ auf die Kundenzufriedenheit aus. Eine hohe Verfügbarkeit aufrechtzuerhalten ist demnach entscheidend für die Kundenzufriedenheit und damit für das Unternehmenswachstum.
Automatisierte Resilience
Wenn Anwendungsfehler und -ausfälle auftreten, müssen Sie in der Lage sein, die Probleme zu beheben und schnell zum Normalbetrieb zurückzukehren. Je automatisierter die Wiederherstellung abläuft, desto schneller kann Ihre Anwendung zum normalen Betrieb zurückkehren und desto weniger störend wirkt sich das Problem auf Mitarbeiter, Kunden und das gesamte Unternehmen aus. Eine automatisierte Wiederherstellung trägt dazu bei, den Kunden ein hohes Serviceniveau bieten zu können.
Sie können zwar nicht vorhersagen, wann Ausfälle auftreten werden, aber Ihre Anwendung darauf vorbereiten. Mit fehlertoleranten Designs und Failover-Mechanismen - sowohl in Ihrer Anwendung als auch in der Anwendungsinfrastruktur - lassen sich Ausfallsicherheit und Verfügbarkeit signifikant verbessern. Cloud-native Architekturen fördern und nutzen die automatische Ausfallsicherheit in modernen Anwendungen.
Continuous Integration/Continuous Delivery (CI/CD)
CI/CD ist ein Softwarebereitstellungsprozess, der Builds, Tests und Deployment automatisiert und es ermöglicht, Software schneller und zuverlässiger von Entwicklungssystemen auf Live-Produktionssysteme zu übertragen. Darüber hinaus werden bei einer guten CI/CD-Bereitstellungsstrategie Änderungen an Anwendungen sofort und ohne Ausfallzeiten bereitgestellt. Das erhöht die geschäftliche Flexibilität, die Softwarequalität und die Reaktionsfähigkeit gegenüber den Kunden.
Ohne CI/CD vergehen in manchen Fällen Wochen oder gar Monate zwischen der Bereitstellung neuer Softwareversionen. Mit einem hochwertigen CI/CD-System können Cloud-native Anwendungen täglich, stündlich oder sogar noch schneller bereitgestellt werden. Unternehmen wie Amazon sind bekannt dafür, Änderungen an ihren Applikationen besonders rasant vorzunehmen (einer Messung zufolge stellt Amazon alle 1,6 Sekunden neue Software bereit). Das ist nur möglich, wenn Cloud-native Anwendungen eingesetzt werden und solide, automatisierte CI/CD-Prozesse vorhanden sind, bei denen die Anwendung nicht heruntergefahren werden muss, um die Bereitstellung abzuschließen. (fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.