„Cloudnativ“ betrifft weniger den Standort einer Anwendung als die Art und Weise, wie diese erstellt und bereitgestellt wird.
In dem Video „What is Cloud Native?“ erläutert Andrea Crawford einige der wichtigsten Konzepte:
Mikroservices (auch als Mikroservices-Architektur bezeichnet) ist eine Architekturlösung, bei der eine einzelne Anwendung aus vielen lose miteinander verknüpften und unabhängig voneinander einsetzbaren Komponenten oder Services zusammengesetzt ist. Diese Services (auch Mikroservices genannt) verfügen in der Regel über einen eigenen Technologiestack, einschließlich Datenbank und Datenmodell, und kommunizieren untereinander über eine Kombination aus REST-APIs, Event-Streaming und Message-Brokern.
Da Mikroservices unabhängig voneinander bereitgestellt und umgestellt werden können, ohne sich gegenseitig zu beeinträchtigen oder die Endbenutzererfahrung zu stören, eignen sie sich ideal für automatisierte, iterative Bereitstellungsmethoden wie Continuous Integration/Continuous Deployment (CI/CD) or DevOps.
Mikroservices können nicht nur zur Erstellung neuer cloudnativer Anwendungen verwendet werden, sondern auch zur Modernisierung herkömmlicher monolithischer Anwendungen.
In einer kürzlich von IBM durchgeführten Umfrage unter IT-Führungskräften und Entwicklern stimmten 87 % der Anwender von Mikroservices darin überein, dass die Einführung dieser Mikroservices die Kosten und den Aufwand wert ist.
Entwickler stellen Mikroservices häufig in Containern bereit – d. h. in leichtgewichtigen, ausführbaren Anwendungskomponenten, die den Quellcode der Anwendung (in diesem Fall den Code der Mikroservices) mit allen Betriebssystem bibliotheken und Abhängigkeiten kombinieren, die für die Ausführung des Codes in jeder Umgebung erforderlich sind. Container sind kleiner, ressourceneffizienter und portabler als virtuelle Maschinen (VMs), und können somit als die De-facto-Recheneinheiten der modernen cloudnativen Anwendungen bezeichnet werden.
Container verstärken die Vorteile von Mikroservices, indem sie eine konsistente Bereitstellung und Verwaltung über eine Hybrid-Multicloud-Umgebung ermöglichen – Public Clouds, Private Cloud und On-Premises-Infrastruktur. Aber in gleicher Weise, wie cloudnative Anwendungen zunehmen, werden auch Container zahlreicher und ihre Verwaltung komplexer. Die meisten Unternehmen, die containerisierte Mikroservices einsetzen, verwenden auch eine Container-Orchestrierungsplattform wie Kubernetes, um die Containerbereitstellung und -verwaltung in großem Umfang zu automatisieren.
IBM Kunden werden zunehmend damit beauftragt, bestehende Anwendungen zu verbessern, neue Anwendungen zu erstellen und das Benutzererlebnis zu verbessern. Cloudnative Anwendungen erfüllen diese Anforderungen, indem sie die Leistung, Flexibilität und Ausbaufähigkeit von Anwendungen verbessern.
Vorteile
Nachteile
Cloudnative Anwendungen haben oft ganz bestimmte Funktionen. Überlegen Sie, wie cloudnative Anwendungen auf einer Reise-Website verwendet werden können. Jedes Thema, das von der Website abgedeckt wird – Flüge, Hotels, Autos, Sonderaktionen – ist ein eigener Mikroservice. Jeder Mikroservice kann unabhängig von anderen Mikroservices neue Funktionen umsetzen. Sonderaktionen und Rabatte können auch unabhängig voneinander horizontal skaliert werden. Während die Reise-Website den Kunden als Ganzes präsentiert wird, bleibt jeder Mikroservice unabhängig und kann beliebig skaliert oder aktualisiert werden, ohne dass andere Services betroffen sind. Im Folgenden sind einige Beispiele für weitere cloudnative Anwendungen aufgeführt.
IBM Cloud Garage bietet IBM Kunden Beratungskompetenz für die schnelle Erstellung skalierbarer, innovativer, cloudnativer Apps. Es bietet einen Innovations-Hub, in dem Unternehmen aller Größenordnungen Apps konzipieren und erstellen können, die eine Lösung für reale Geschäftsanforderungen darstellen.
Unabhängig davon, ob eine neue cloudnative Anwendung erstellt oder eine vorhandene Anwendung modernisiert wird, halten sich die Entwickler an eine festgelegte Reihe von Prinzipien:
Cloudnative Anwendungen setzen häufig auf Container. Was Container attraktiv macht, ist ihre Flexibilität, Leichtigkeit und Portierbarkeit. Der frühe Einsatz von Containern konzentrierte sich auf zustandslose Anwendungen, bei denen keine Notwendigkeit bestand, Benutzerdaten von einer Benutzersitzung zur nächsten zu speichern.
Da jedoch immer mehr Kerngeschäftsfunktionen in die Cloud verlagert werden, muss das Problem der dauerhaften Speicherung in einer cloudnativen Umgebung gelöst werden. Dies bedeutet für die Entwickler, dass sie neue Wege beim Cloudspeicher beschreiten müssen.
Genauso wie die Entwicklung cloudnativer Anwendungen einen Mikroservices- und modularen Ansatz verfolgt, muss dies auch für die cloudnative Speicherung gelten. Cloudnative Daten können sich an einer beliebigen Anzahl von Orten befinden, z. B. Ereignis- oder Systemprotokolle, relationale Datenbanken und Dokument- oder Objektspeicher.
Datenposition, Anforderungen an die Aufbewahrungsdauer, Portierbarkeit, Plattformkompatibilität und Sicherheit sind nur einige der Aspekte, die Entwickler bei der Planung für cloudnativen Speicher berücksichtigen müssen.
Eine cloudfähige Anwendung ist eine Anwendung, die für den Einsatz in einem herkömmlichen Rechenzentrum entwickelt wurde, aber später so geändert wurde, dass sie auch in einer Cloud-Umgebung ausgeführt werden kann. Cloudnative Anwendungen sind jedoch nur für den Betrieb in der Cloud erstellt. Entwickler entwerfen cloudnative Anwendungen, die skalierbar und plattformunabhängig sind und aus Mikroservices bestehen.
In der kurzen Geschichte des Cloud Computing hat sich die Bedeutung des Begriffs „cloudbereit“ mehrmals geändert. Zunächst wurde der Begriff für Dienstleistungen oder Software verwendet, die für die Arbeit über das Internet bestimmt sind. Heute wird der Begriff häufiger verwendet, um eine Anwendung zu beschreiben, die in einer Cloudumgebung arbeitet, oder eine traditionelle App, die für eine Cloudumgebung umkonfiguriert wurde. Der Begriff „cloudnativ“ weist eine viel kürzere Historie auf und bezieht sich auf eine Anwendung, die von Anfang an dafür entwickelt wurde, nur in der Cloud zu arbeiten und die Merkmale der Cloud-Architektur oder eine vorhandene App nutzen zu können, die umstrukturiert und gemäß cloudnativen Prinzipien rekonfiguriert wurde.
Ein cloudbasierter Service oder eine cloudbasierte Anwendung wird über das Internet bereitgestellt. Es ist ein allgemeiner Begriff, der auf eine beliebige Anzahl von Cloud-Angeboten angewandt wird. Cloudnativ ist eine spezifischere Bezeichnung. Cloudnativ beschreibt Anwendungen, die für die Arbeit in Cloud-Umgebungen konzipiert sind. Der Begriff bezeichnet Anwendungen, die auf Mikroservices, Continuous Integration und Continuous Delivery (CI/CD) basieren und über jede Cloud-Plattform genutzt werden können.
Cloud First beschreibt eine Geschäftsstrategie, in der sich Unternehmen verpflichten, beim Start neuer IT-Services, bei der Aktualisierung bestehender Services oder dem Ersetzen traditioneller Technologien zuerst Cloud-Ressourcen zu verwenden. Diese Strategie wird angetrieben durch Kosteneinsparungen und effiziente Geschäftsabläufe. Cloudnative Anwendungen passen sehr gut zur Cloud-First-Strategie, da sie nur Cloud-Ressourcen verwenden und darauf ausgelegt sind, die Vorteile der positiven Eigenschaften der Cloud-Architektur zu nutzen.
IBM Cloud ist führend in der cloudnativen Anwendungsentwicklung und ein zuverlässiger Partner, um Ihre Unternehmensanwendungen schnell auf einer besonders offenen, sicheren und integrierten Plattform zu erstellen.
Stellen Sie hoch verfügbare, vollständig verwaltete Kubernetes-Cluster für Ihre containerisierten Anwendungen mit einem einzigen Klick bereit.
Ausführung von Container-Images, Batch-Jobs oder Quellcode als serverlose Workloads – ohne Dimensionierung, Bereitstellung, Vernetzung oder Skalierung.