Was bedeutet Cloud-nativ eigentlich?

0
173
Nadya C/Shutterstock.com< /figur>

Cloud-native Anwendungen nutzen die Vorteile moderner Cloud-Infrastrukturkomponenten, um schnelle skalierbare Bereitstellungen zu ermöglichen. Eine “Cloud-native” System entsteht aus der Kombination mehrerer unabhängiger Attribute. Es wird ein hohes Maß an Automatisierung und Abhängigkeitsentkopplung aufweisen, was zu einer überlegenen Widerstandsfähigkeit gegenüber Änderungen aufgrund von Code-Releases und Umgebungs-Upgrades führt.

Die meisten Kommentatoren binden nicht nur technische Qualitäten, sondern auch Cloud-native an die implementierende Organisation. 8217;s Arbeitspraktiken und Denkweise. Cloud-native Unternehmen werden die Cloud aktiv für ihren gesamten Stack nutzen und sie als Unterscheidungsmerkmal ihres Angebots betrachten. Dies steht im Gegensatz zu Anbietern, die die Cloud lediglich als Rechenzentrum sehen, in dem ihre Dienste ausgeführt werden.

Abweichende Definitionen

Wie bei vielen gängigen Cloud-Buzzwords erhalten Sie unterschiedliche Antworten darauf, was Cloud-nativ ausmacht, je nachdem, wen Sie fragen.

Microsoft sagt, dass der Begriff Systeme beschreibt, die “schnelle Veränderungen in großem Maßstab umfassen , und Belastbarkeit.” Für VMWare ist es ’ein Ansatz zum Erstellen und Ausführen von Anwendungen, der die Vorteile des Cloud-Computing-Bereitstellungsmodells nutzt.” Oracle hebt hervor, wie Cloud Native auf “Distributed Computing”

. basiertRedHat ist genauer und erklärt, dass Cloud-native Apps “eine Sammlung kleiner, unabhängiger und lose gekoppelter Dienste sind” die einen “anerkannten Geschäftswert bieten.” Der letzte Teil bestätigt, dass es bei Cloud Native um mehr geht als um Software. Ein erfolgreiches natives Cloud-System sollte greifbare Ergebnisse für Ihr Unternehmen liefern, sei es durch eine höhere Kundenzufriedenheit oder eine kürzere Einführungszeit.

Werbung

Die Charta der Cloud Native Computing Foundation definiert das Konzept als Paradigma von “locker gekoppelten Systemen, die widerstandsfähig, handhabbar und beobachtbar sind.” Sie ermöglichen “einflussreiche Änderungen, die häufig und vorhersehbar mit minimalem Aufwand durchgeführt werden.”

Cloud Native Traits

Es gibt keinen einzigen Weg, um Cloud-nativ zu werden. Die Terminologie ist flexibel und basiert auf qualitativen Merkmalen. Cloud-native Systeme basieren normalerweise auf Microservices, die mit einem Container-Orchestrator bereitgestellt werden, wobei automatisierte Bereitstellungsabläufe verwendet werden, um Code durch die Pipeline zu verschieben. Die tatsächliche Implementierung muss jede Organisation selbst entscheiden.

Dieses Modell ermöglicht die schnelle Einführung neuer Änderungen ohne Kontrollverlust. Entwickler schreiben Änderungen fest, übertragen sie in ein Repository und lassen ihre CI-Pipeline eine neue Version für die Produktion bereitstellen. Die Automatisierung reduziert das Fehlerrisiko und gibt Entwicklern mehr Gelegenheit, sich auf das Schreiben von neuem Code zu konzentrieren.

Die daraus resultierende Beschleunigung des Entwicklungszyklus erhöht die Gesamtproduktivität und stellt den Benutzern in kürzerer Zeit mehr Funktionen zur Verfügung. Dies trägt zur Kundenzufriedenheit und -bindung bei und projiziert ein Bild einer sich ständig weiterentwickelnden Codebasis, in der Fehler kurz nach der Entdeckung gepatcht werden.

Cloud-nativ ist nicht ganz “die Maschine die Arbeit machen lassen” obwohl. Ein weiterer zentraler Grundsatz ist die Beobachtbarkeit, die Vorstellung, dass Systeme ihren internen Zustand auf eine Weise anzeigen sollten, die für Betriebsteams leicht zugänglich ist.

Effektive Überwachung, Rückverfolgung und Protokollierung gibt Ihnen Transparenz, wenn Probleme auftreten . Ein beobachtbares System liefert die Informationen, die Sie zum Beheben von Problemen benötigen. Sie nutzen die introspektiven Fähigkeiten Ihrer Infrastruktur, um den Lebenszyklus von Anfragen aufzudecken, von Ihrem Mesh zu einzelnen Services und wieder zurück.

Separation of Concerns

Ein entscheidendes Merkmal von Cloud-nativen Systemen ist die starke Entkopplung. Dies geht Hand in Hand mit dem Microservice-Modell. Dienste müssen in der Lage sein, eigenständig ohne harte Abhängigkeiten voneinander zu sein. Dies erhöht die Widerstandsfähigkeit und macht es einfacher, Teile deines Stapels in Zukunft auszutauschen.

Werbung

Jede Funktionseinheit wird zu einem eigenen Microservice, der über klar definierte APIs mit den anderen kommuniziert. Es ermöglicht Ihnen, einzelne Teile Ihres Systems zu trennen, hilft Entwicklern, sich auf ihren spezifischen Bereich zu konzentrieren und ermöglicht es Ihnen, kritische Dienste in der Produktion stärker abzusichern. Ihr Authentifizierungsdienst profitiert möglicherweise von einem höheren Isolationsgrad als Ihre allgemeinen Webcontainer.

Durch die Entkopplung von Diensten sind sie skalierbarer, sodass Ihr System besser auf Änderungen der Benutzernachfrage reagieren kann. Wenn die Medienberichterstattung zu einem Anstieg der Benutzerregistrierungszahlen führt, können Sie schnell weitere Instanzen Ihres Registrierungsservice-Back-Ends hinzufügen, um den zusätzlichen Datenverkehr zu bewältigen. Ein konventioneller Ansatz mit einer monolithischen App auf einer VM oder einem Bare-Metal-Server könnte sich auf diese Weise nicht anpassen.

Die Geschäftsvorteile

Die Cloud-Native zu werden hat oft erhebliche Auswirkungen auf das Unternehmen als Ganzes. Eine verbesserte Skalierbarkeit kann Kosten senken, die Dienstverfügbarkeit erhöhen und die Infrastruktur den Benutzern immer einen Schritt voraus sein. All dies führt zu einer wettbewerbsfähigeren Plattform, die agil genug ist, um auf Marktveränderungen zu reagieren.

Legacy-Systeme verfügen möglicherweise über keine etablierten Bereitstellungsverfahren, sondern basieren auf einem regelmäßigen Roll-up der jüngsten Änderungen in der Produktion. Dies macht eine schnelle Reaktion auf Kundenanliegen unmöglich. In einem Cloud-nativen System können Sie auf eingehende Tickets reagieren. Code wird normalerweise direkt nach einer Zusammenführung versendet, sodass Sie Verbesserungen in Minuten statt Tagen vornehmen können.

Cloud-native Systeme können auch für Entwickler attraktiver sein, was es einfacher macht, Top-Talente einzustellen. Der Einsatz von Technologien wie Docker und Kubernetes in der Produktion zeigt das Engagement für moderne Workflows, die die tägliche Entwicklung weniger anspruchsvoll machen. Die Möglichkeit, auf hochqualifizierte Ingenieure zuzugreifen, führt normalerweise zu besseren Produkten, die in kürzerer Zeit erstellt werden, wodurch ein sich selbst tragender Zyklus entsteht, der einen Aufschwung im Wachstum des Unternehmens einleitet.

Cloud Native und DevOps

Cloud-native Systeme sind oft das Ergebnis guter DevOps-Praktiken. Während DevOps die Interaktion zwischen Entwicklungs- und Betriebsteams beschreibt, konzentriert sich Cloud Native auf das Ergebnis dieser Interaktion und ihre Auswirkungen auf das breitere Geschäft.

Werbung

Der DevOps-Zyklus hält eine enge Schleife zwischen Planung und Erstellung aufrecht , Testen, Freigeben und Überwachen. Es erhöht die Entwicklungsgeschwindigkeit, indem es die Abfolge von Ereignissen im Lebenszyklus eines neuen Features klar definiert. Die Einhaltung der DevOps-Prinzipien erhöht die Wahrscheinlichkeit, dass ein System ein effektiver Cloud-Bürger ist.

Die beiden haben die Tendenz, aus einander hervorzugehen. Wenn Sie wissentlich einen der Begriffe praktizieren, nutzen Sie wahrscheinlich auch bereits die Vorteile des anderen. Cloud-native Systeme werden automatisch in regelmäßigen Abständen bereitgestellt. Der effektive Einsatz von DevOps-Tools wie CI/CD-Pipelines ist der logische Weg, um schnelle Entwicklungsabläufe zu implementieren.

Was ist mit “Cloud Enabled?&# 8221;

Möglicherweise stoßen Sie auf Systeme, die als “Cloud-fähig” statt Cloud-nativ. Dieser Begriff bezieht sich normalerweise auf Anwendungen, die von traditionellen Entwicklungs- und Bereitstellungsmodellen zu Cloud-Alternativen übergehen.

Ein Cloud-fähiges System wird mit einer Cloud-Infrastruktur ausgeführt, ist jedoch möglicherweise nicht vollständig entkoppelt und modularisiert. Wenn Sie einen Legacy-Monolithen haben, ist es normalerweise relativ einfach, ihn als Docker-Container zu verpacken und in die Cloud zu starten. Dies bietet einige unmittelbare Vorteile, einschließlich der Aussicht auf automatisierte Bereitstellungen und ein gewisses Maß an Skalierbarkeit.

Die Anwendungsschicht ist jedoch immer noch ein Monolith. Es wird eine Refactoring-Phase benötigt, um den Stack in entkoppelte Microservices aufzuteilen, die einzeln voneinander skaliert werden können. Ein containerisierter Monolith kann nicht das gleiche Maß an Ausfallsicherheit bieten wie ein System, das für die Cloud entwickelt und gebaut wurde.

Werbung

Die Cloud-Aktivierung eines Systems ist der erste Schritt, um es zu einem nativen Cloud-Bürger zu machen. Darauf kann ein “Cloud-basiertes” Ansatz, bei dem die Anwendung überwiegend in der Cloud mit hoher Trennung der Dienste läuft. Es kann immer noch einige obligatorische Verbindungen zwischen Komponenten oder Verbindungen zurück zur Legacy-Infrastruktur geben. Die Architektur kann als “Cloud-native” sobald diese beseitigt wurden.

Zusammenfassung

Ein Cloud-natives System nutzt alles, was die Cloud bieten kann, um die Entwicklung zu beschleunigen, Bereitstellungen zu automatisieren und die Ausfallsicherheit zu erhöhen und Beobachtbarkeit. Es ist das Ergebnis einer organisatorischen Investition in moderne Tools und Verfahren, die es Teams ermöglichen, Code schneller zu versenden und zusätzlichen Wert in das Unternehmen zu bringen.

Die Cloud-Native wird nicht über Nacht. Abhängig von der Größe Ihres Systems kann es akzeptabel sein, eine “Cloud aktiviert” oder “Cloud-basiert” zuerst herangehen. Durch die schrittweise Weiterentwicklung Ihrer Architektur können Sie niedrig hängende Früchte pflücken und die Auswirkungen einzelner Änderungen überwachen, sodass Sie wissen, ob sich Ihre Bemühungen auszahlen.