Laut der aktuellen Blitzumfrage Cloud Native in deutschen Unternehmen von techconsult arbeiten bereits heute 55,4 Prozent der befragten Unternehmen mit Microservices und Container-Technologien sowie agilen Methoden und DevOps-Konzepten. Trotzdem wissen selbst IT-affine Nutzer oft nicht genau, was sich hinter dem Entwicklungsansatz Cloud Native verbirgt.
Sicher, fast jeder hat vom Begriff „Cloud Native“ eine vage Vorstellung. Doch selbst in der deutschen Wikipedia fehlt bislang ein entsprechender Eintrag. Höchste Zeit also, die Definition und die wichtigsten Fragen rund ums „Cloud-Native-Computing“ zu klären:
Cloud Native beschreibt in der Software-Entwicklung ein agiles Design-Prinzip für dynamische, skalierende und fehlertolerante Anwendungen, das die Vorteile des Cloud-Computings komplett ausschöpft. Die vollständig in der Cloud entwickelten und bereitgestellten Applikationen versprechen mehr Agilität, bessere Qualität und eine einfache Portierbarkeit auf unterschiedliche Plattformen. Weitere Details zur Cloud-Native-Bedeutung liefert die Charta der Cloud Native Computing Foundation mit ihrer „offiziellen“ Cloud-Native-Definition:
Cloud-Native-Technologien ermöglichen es Unternehmen, skalierbare Anwendungen in modernen, dynamischen Umgebungen zu implementieren und zu betreiben. Dies können öffentliche, private und Hybrid-Clouds sein. Best Practices wie Container, Service-Meshs, Microservices, unveränderliche Infrastrukturen und deklarative APIs unterstützen diesen Ansatz.
Diese Techniken machen die Umsetzung von entkoppelten Systemen möglich, die belastbar, handhabbar und beobachtbar sind. In Kombination mit einer robusten Automatisierung können Software-Entwickler mit geringem Aufwand flexibel und schnell auf Änderungen reagieren.“Cloud Native Computing Foundation (CNCF)
Wie die Cloud-Native-Transformation einer Anwendung per Refactoring auch schrittweise erfolgen kann und Business-Anwendungen am besten in die Cloud kommen, lesen Sie im Whitepaper Nächster Halt: Zukunft!
Was ist die Cloud Native Computing Foundation?
Die Cloud Native Computing Foundation (kurz: CNCF) ist eine Tochterorganisation der Linux Foundation. Die gemeinnützige Stiftung fördert Cloud-Native-Technologien durch ein Open-Source-Ökosystem herstellerneutraler Projekte, um deren Innovationen frei zugänglich zu machen. Die Organisation bewertet alle Projekte in Reifegraden – von „Sandbox“ (Startphase) über „Incubating“ (Entwicklung) bis hin zu „Graduated“ für produktionstaugliche Produkte mit einem ausgereiften Funktionsumfang sowie entsprechender Akzeptanz und Zuverlässigkeit. Zu den bekanntesten „Graduated Projects“ zählen die Container-Orchestrierung Kubernetes, der Kubernetes-Paketmanager Helm, das Monitoring- und Alerting-Tool Prometheus sowie der Layer-7-Proxy Envoy.
Zur Container-Verwaltung Kubernetes führt die CNCF zudem offizielle Zertifizierungen durch. So bekommen zum Beispiel Software-Entwickler die Möglichkeit, sich als Certified Kubernetes Application Developer (CKAD) zu qualifizieren. Berufseinsteiger und Studenten erlangen mit der Prüfung zum Kubernetes and Cloud Native Associate (KCNA) Grundkenntnisse der Kubernetes-Einrichtung und -Administration. Die zweistufige Zertifizierung für Administratoren beginnt mit der Prüfung zum Certified Kubernetes Administrator (CKA), dessen Kenntnisse sich als Certified Kubernetes Security Specialist (CKS) vertiefen lassen. Für Firmen, die ihre Expertise belegen wollen, sind zudem die Zertifizierungen als Kubernetes Certified Service Provider (KCSP) oder Kubernetes Training Partner (KTP) vorgesehen.
Entstanden ist die Cloud Native Computing Foundation 2015 nach der Übertragung des ursprünglich von Google entwickelten Open-Source-Systems Kubernetes an die Linux Foundation. Zu den CNCF-Gründungsmitgliedern zählten AT&T, Box, Cisco, Cloud Foundry Foundation, CoreOS, Cycle Computing, Docker, eBay, Goldman Sachs, Google, Huawei, IBM, Intel, Joyent, Kismatic, Mesosphere, Red Hat, Switch Supernap, Twitter, Univa, VMware und Weaveworks. Inzwischen sind in der CNCF mehr als 700 Mitglieder organisiert (Stand Oktober 2021), darunter die weltweit größten Software-Hersteller der Branche, mehr als 200 Start-ups sowie Cloud-Provider und Software-Häuser.
Worauf beruht der Cloud-Native-Ansatz?
Der Cloud-Native-Ansatz folgt dem KISS-Prinzip: „Keep it simple, stupid“ - Mach es nicht unnötig kompliziert, gestalte den Code möglichst einfach und minimalistisch. Software-Entwickler spalten komplexe Cloud-Native-Applikationen deshalb in Microservices auf. Diese Microservices übernehmen nur kleine, stark beschränkte Aufgaben der Anwendung und tauschen ihre Daten über schlanke, wohldefinierte Schnittstellen miteinander aus.
Die Bereitstellung der Microservices kann bei Cloud Native über Container plattformunabhängig auf unterschiedlichen Servern und an verschiedenen Standorten erfolgen. Dabei haben die Administratoren zudem die Möglichkeit, einzelne Dienste zu skalieren und so auch einen erhöhten Leistungsbedarf bei bestimmten Funktionalitäten zu decken.
Was sind die typischen Merkmale von Cloud-Native-Anwendungen?
Aus dem modularen Konzept der Microservices mit sauber definierten Schnittstellen und der Bereitstellung der Dienste über Container samt Orchestrierung ergeben sich bei Cloud-Native-Anwendungen eine Reihe typischer Merkmale:
- Agilität: Die modulare Software-Architektur unterstützt kleine, eigenverantwortliche Entwickler-Teams, die unabhängig voneinander schneller arbeiten können.
- Flexibilität: Microservices lassen sich mit unterschiedlichen Technologien realisieren, sodass die Entwickler-Teams das beste Tool zur Lösung ihrer Probleme auswählen können.
- Deployment: Der Cloud-Native-Ansatz erfüllt alle Voraussetzungen für CI/CD (Continuous Integration/Continuous Delivery). Im Rahmen der DevOps-Strategie lassen sich Software-Änderungen somit hoch automatisiert testen und kontinuierlich bereitstellen.
- Resilienz: Microservices erhöhen die Ausfallsicherheit der Applikationen. Unerwartete Fehler an einem der Microservices beeinträchtigen zwar die Funktionalität, bringen im Gegensatz zu monolithischen Software-Architekturen aber nicht die gesamte Anwendung zum Absturz.
- Skalierung: Microservices ermöglichen es, die Kosten einer Funktion genau zu messen und jeden Service über parallel laufende Container unabhängig voneinander zu skalieren. Mit einer Container-Orchestrierung wie Kubernetes funktioniert das sogar automatisiert.
Cloud Native geht folglich mit agilen Methoden und DevOps-Konzepten einher, die IT-Entwicklung und Betrieb miteinander verzahnen, um abseits fester Release-Zyklen eine schnelle und schrittweise Bereitstellung und Verbesserung der Software zu ermöglichen.
Was ist eine Cloud-Native-Architektur?
Die Cloud-Native-Architektur (CNA) bildet die Grundlage für eine konsequente Nutzung der Cloud Services. Häufige und oft auch kritische Änderungen an verteilten Systemen erfordern dabei neue Technologien und Software-Architekturen, aber auch eine neue Organisations- und Teamkultur. Die Prinzipien einer dynamischen Cloud-Native-Architektur folgen dabei sieben Maximen:
- Cloud-Computing: Die Bereitstellung aller IT-Ressourcen (Server, Speicher, Software etc.) erfolgt nicht On-Premise in eigenen Rechenzentren, sondern über das Internet.
- Microservices: Entkoppelte Dienste, die untereinander über APIs kommunizieren, erledigen kleine Aufgaben und generieren gemeinsam komplexe Cloud-Native-Applications.
- Containerisierung: Zur Bereitstellung von Cloud-Native-Anwendungen werden deren Microservices in Container verpackt, die eine Virtualisierung mit allen Ressourcen erlauben.
- Scheduling und Orchestrierung: Eine Container-Verwaltung vereinfacht und automatisiert die Bereitstellung, Skalierung und Vernetzung der verschiedenen Microservices.
- Clustering: Das Zusammenfassen gleichartiger Prozesse ermöglicht automatisierte Selbstreparaturprozesse und eine bedarfsgerechte Verteilung der Nutzeranfragen.
- Service-Mesh: Eine zusätzliche Infrastrukturschicht, die alle Microservice-Anfragen über Proxies leitet, macht die Service-zu-Service-Kommunikation sicher, schnell und zuverlässig.
- CI/CD: Die kontinuierliche Automatisierung und Überwachung von der Integrations- und Testphase bis zur Bereitstellung und Implementierung beschleunigt die Software-Entwicklung.
Kubernetes gilt dabei oft als „Betriebssystem für die Cloud“ und ist für die meisten Cloud-Native-Anwendungen das bevorzugte Orchestrierungs-Tool. Näheres zu dieser Open-Source-Plattform für die Verwaltung von Clustern containerisierter Anwendungen und Dienste erfahren Sie im Whitepaper "Kubernetes im Unternehmen".
Welche Vorteile bringt Cloud Native?
Ergebnisse aus der Praxis liefert die Blitzumfrage „Cloud Native in deutschen Unternehmen“, für die techconsult im Mai 2021 mehr als 200 Cloud-Native-affine IT-Entscheider aus Unternehmen mit über 100 Mitarbeitern zu ihren Erfahrungen und Einschätzungen befragte. Als größten Vorteil von Cloud Native sahen dabei 48 Prozent der Befragten die bessere Skalierbarkeit Cloud-nativer Anwendungen, gefolgt von einer besseren Prozess- und Kosteneffizienz (45 beziehungsweise 40 Prozent).
Kürzere Release-Zyklen sowie die Möglichkeit, hochkomplexe Anwendungen flexibler, schneller und natürlich ohne Downtime aktualisieren zu können, spielen ebenfalls eine wichtige Rolle. Cloud-Native-Pioniere wie Netflix liefern neuen Code immerhin bis zu hundertmal am Tag aus. Da wundert es kaum, dass jeweils 36 Prozent der befragten IT-Entscheider sich von Cloud Native auch eine schnellere Einführung neuer Produkte sowie schnellere Releases und eine agile Anwendungsentwicklung versprechen. Weitere 32 Prozent sehen dabei auch Vorteile in der erhöhten Robustheit der Anwendungen.
Weitere Ergebnisse der Umfrage haben wir in einem PDF für Sie zusammengestellt. Darin erfahren Sie auch, worin IT-Entscheider die größten Hürden beim Cloud-Native-Einsatz sehen und welche typischen Hindernisse ihnen bei der Umsetzung von Cloud-Native-Projekten begegnen.