Was ist cloudnativ?
Eine cloudnative Anwendung besteht aus diskreten, wiederverwendbaren Komponenten, die als Mikroservices bezeichnet werden und für die Integration in eine beliebige Cloudumgebung konzipiert sind.
Was ist cloudnativ?

„Cloudnativ“ betrifft weniger den Standort einer Anwendung als die Art und Weise, wie diese erstellt und bereitgestellt wird.

  • Eine cloudnative Anwendung besteht aus diskreten, wiederverwendbaren Komponenten, die als Mikroservices bezeichnet werden und für die Integration in eine beliebige Cloudumgebung konzipiert sind.

  • Diese Mikroservices fungieren als Bausteine und werden häufig in Containern gebündelt.

  • Mikroservices arbeiten nahtlos zusammen und bilden so eine Anwendung, die jedoch unabhängig voneinander skaliert, kontinuierlich verbessert und durch Prozesse zur Automatisierung und Orchestrierung schnell iteriert werden kann.

  • Die Flexibilität jedes Mikroservices steigert die Agilität und kontinuierliche Verbesserung cloudnativer Anwendungen.

In dem Video „What is Cloud Native?“ erläutert Andrea Crawford einige der wichtigsten Konzepte:

Mikroservices und Container

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 bereitd. 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.

Warum sollten Sie Mikroservices und Container verwenden?
Vorteile und Nachteile

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

  • Im Vergleich zu herkömmlichen monolithischen Apps können cloudnative Anwendungen einfacher verwaltet werden, da iterative Verbesserungen mithilfe von Agile- und DevOps-Prozessen durchgeführt werden.

  • Aus einzelnen Mikroservices können cloudnative Anwendungen schrittweise und automatisch verbessert und so kontinuierlich neue und verbesserte Anwendungsfunktionen hinzugefügt werden.

  • Verbesserungen können nicht-intrusiv vorgenommen werden, wodurch weder Ausfallzeiten entstehen noch das Benutzererlebnis gestört wird.

  • Die elastische Infrastruktur, die cloudnativen Apps zugrunde liegt, erleichtert die Skalierung nach oben oder unten.

  • Der cloudnative Entwicklungsprozess entspricht eher der Geschwindigkeit und Innovation, die das heutige Geschäftsumfeld erfordert.

Nachteile

  • Obwohl Mikroservices einen iterativen Ansatz für die Anwendungsverbesserung ermöglichen, müssen durch sie auch mehr Elemente verwaltet werden. Statt einer großen Anwendung müssen wesentlich mehr kleine, diskrete Services verwaltet werden.

  • Cloudnative Apps erfordern zusätzliche Toolsets zur Verwaltung der DevOps-Pipeline, zum Ersetzen herkömmlicher Überwachungsstrukturen und zur Steuerung der Mikroservices-Architektur.

  • Cloudnative Anwendungen ermöglichen eine schnelle Entwicklung und Bereitstellung, aber sie erfordern auch eine Unternehmenskultur, die mit dem Tempo dieser Innovation mithalten kann.
Anwendungsbeispiele

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.

  • American Airlines (2:50) arbeitete mit IBM zusammen, um eine dynamische Anwendung für Umbuchungen zu erstellen, die während Unwetterbedingungen gestartet wurde. Die App verbesserte das Kundenerlebnis, indem sie den Nutzern mehr Informationen und einen verbesserten Umbuchungsprozess ermöglichte.

  • XComP Analytics (1:56), eine Analyseplattform für die Aus- und Weiterbildung, musste ein Analyseproblem lösen. Im Zuge der Behebung eines Problems konnte das Unternehmen sechs neue Produkte entwickeln, nachdem es die IBM Cloud Garage in Anspruch genommen hatte. Bestandteil der Lösung war die Verwendung von Mikroservices-Architektur und das Plug-in in IBM Watson, um bestimmte Analyseprobleme zu lösen.

  • UBank (2:45) stand vor der unternehmerischen Anforderung, das Immobilienkreditangebot zu verbessern und Kunden beim Abschluss des Immobiliendarlehensprozesses zu unterstützen. Die Smart Assistant-App des Unternehmens, RoboChat, stellte die Lösung des Problems dar und wurde mithilfe der IBM DevOps-Toolchain erstellt. Kunden, die RoboChat nutzten, hatten eine um 15 Prozent höhere Abschlussquote bei Immobiliendarlehen.

  • Ein kritischer Punkt der medizinischen Forschung ist die Beratung von Ärzten über bewährte Praktiken für die Patientenversorgung. Allerdings benötigt medizinische Forschung zu bewährten Praktiken 17 Jahre, um sich in der medizinischen Praxis zu etablieren. ThinkResearch (2:06) nutzt IBM Cloud, um die besten medizinischen Informationen am Behandlungsort bereitzustellen. Durch die Nutzung von IBM Cloud-Infrastruktur und Managed Kubernetes-Services kann sich das ThinkResearch DevOps-Team auf Innovation und Patientenversorgung konzentrieren und muss sich nicht um die Infrastruktur kümmern.

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.

Entwicklungsprinzipien

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:

  • Verfolgen Sie den Architekturansatz der Mikroservices: Zerlegen Sie Anwendungen in einzelne Funktionseinheiten, die als Mikroservices bezeichnet werden. Mikroservices sind lose gekoppelt, bleiben jedoch unabhängig, damit die inkrementelle, automatisierte und kontinuierliche Verbesserung einer Anwendung ohne Ausfallzeiten ermöglicht wird.

  • Setzen Sie auf Container für maximale Flexibilität und Skalierbarkeit: Container bündeln Software mit ihrem gesamten Code und allen Abhängigkeiten an einem Ort, sodass die Software überall ausgeführt werden kann. Dies ermöglicht maximale Flexibilität und Portierbarkeit in einer Multicloud -Umgebung. Container ermöglichen zudem die schnelle Skalierung nach oben oder unten anhand benutzerdefinierter Kubernetes-Orchestrierungsrichtlinien.

  • Wenden Sie agile Methoden an: Agile Methoden beschleunigen den Erstellungs- und Verbesserungsprozess. Entwickler können Updates basierend auf Benutzerfeedback schnell iterieren, damit die Anwendungsversion im Betrieb die Benutzererwartungen bestmöglich erfüllt.
Speicher

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.

Erfahren Sie mehr über die cloudnative Datenspeicherung
Cloudnative Anwendungen vs. traditionelle Anwendungen

Cloudnativ vs. cloudfähig

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.

Cloudnativ vs. cloudbereit

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.

Cloudnativ vs. cloudbasiert

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.

Cloudnativ vs. Cloud First

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.

Relevante Lösungen
IBM für cloudnative Lösungen

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.

IBM für cloudnative Lösungen erkunden
Red Hat OpenShift on IBM Cloud

Stellen Sie hoch verfügbare, vollständig verwaltete Kubernetes-Cluster für Ihre containerisierten Anwendungen mit einem einzigen Klick bereit.

Red Hat OpenShift on IBM Cloud erkunden
IBM Cloud Code Engine

Ausführung von Container-Images, Batch-Jobs oder Quellcode als serverlose Workloads – ohne Dimensionierung, Bereitstellung, Vernetzung oder Skalierung.

IBM Cloud Code Engine erkunden
Ressourcen Was sind Mikroservices?

In einer Mikroservices-Architektur ist jede Anwendung aus vielen kleineren, lose gekoppelten und unabhängig voneinander bereitstellbaren Services zusammengesetzt.

Was sind Container?

Container sind ausführbare Softwareeinheiten, die den Anwendungscode zusammen mit seinen Bibliotheksabhängigkeiten packen und die überall ausgeführt werden können, sei es auf dem Desktop, in der traditionellen IT oder in der Cloud.

Was ist Kubernetes?

Kubernetes ist eine Open-Source-Container-Orchestrierungsplattform, die die Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen automatisiert.

Machen Sie den nächsten Schritt

IBM hat in den letzten 20 Jahren erheblich in Open-Source-Code, Communitys und Governance investiert, einschließlich der Cloud Native Computing Foundation.Mit mehr als 20.000 Kubernetes-Clustern, die derzeit in Produktion und Betrieb sind, ist IBM Cloud dafür ausgelegt, Leistung zu erbringen.IBM Cloud bietet einen der höchsten Branchenstandards für Datenverschlüsselung und hält mehr als 30 Complianceprogramme ein.

Cloudnative Lösungen in der IBM Cloud erkunden