Cloud-natives Computing ist ein Paradigma für Anwendungsentwicklung und -bereitstellung. Es umfasst mehrere Technologien und Architekturmuster, darunter Open-Source-Linux-Container, Kubernetes und Microservices. Cloud-natives Computing betont Skalierbarkeit, Automatisierung, Effizienz und Einfachheit in allen Bereichen des Lebenszyklus der Anwendungsentwicklung und -bereitstellung – einschließlich der Teamorganisation. Mit diesem Ansatz erstellen IT-Experten Anwendungen, die bei Bedarf schnell und einfach in der Cloud bereitgestellt werden können. Einsparungen bei den Kosten Ihrer Rechenressourcen.
Der Cloud-native Computing-Stack
Cloud-natives Computing erfordert, dass mehrere modulare Codeteile, Technologien und Systeme zusammenarbeiten. Die Cloud Native Landscape-Infografik der TheCloud Native Computing Foundation zeigt nach Kategorie alle verfügbaren Dienste und Technologien an.
Obwohl der Cloud-native Computing-Stack aus vielen Komponenten besteht, ist er nicht so komplex, wie es scheinen mag. Cloud-nativ verwendet einen Open-Source-Software-Stack, um Anwendungen als Microservices bereitzustellen; jedes Teil in einen eigenen Behälter packen; und diese Container dynamisch orchestrieren, um die Ressourcennutzung zu optimieren.
Cloud-natives Computing verwendet Container, die auf dynamischen Clouds ausgeführt werden. Ohne Container oder die elastische Cloud gibt es keine Cloud-Native. Dieser On-Demand-Ansatz ermöglicht es Systemadministratoren und Entwicklern, Anwendungen dynamisch aus Komponenten auszuführen, die je nach Bedarf der Anwendungsdienste auf- und abgebaut werden.
Cloud-native Programme sind lose gekoppelt . Systemkomponenten sind so miteinander verbunden, dass sie so wenig wie möglich voneinander abhängig sind; die Elemente brauchen wenig direkte Kenntnis voneinander. Der Code ist nicht fest mit einer bestimmten Infrastruktur verbunden. Bei Cloud-nativer Software werden die Elemente über APIs, Service Meshes und Netzwerke verbunden.
Cloud-native Programme sind auch zustandslos . Sie speichern ihre Daten und ihren Status in externen Datenbanken. Ein Cloud-natives Programm „weiß“ nicht, wo sich seine Daten befinden. Die Daten könnten überall gespeichert werden; es ist nur wichtig, dass darauf zugegriffen werden kann, wenn es benötigt wird.
Wie der Name schon sagt, leben und sterben Cloud-native Programme auf Clouds. Sie werden dort entwickelt; dort inszeniert und getestet; gesichert und dort debuggt; dort eingesetzt; und über CI und CD ständig verbessert.
Um Cloud-Computing-Systeme zu verwalten, orchestrieren Administratoren die Container mit Kubernetes. Einige würden argumentieren, dass Kubernetes für Cloud-natives Computing unerlässlich ist.
Anwendungen werden in Linux-basierten Containern ausgeführt. Sie verwenden selten Entwicklungssprachen der alten Schule wie C++ oder Java. Stattdessen werden Cloud-native Anwendungen normalerweise mit webzentrischen Sprachen wie Go, Node.js, Rust und Ruby geschrieben. An den älteren Sprachen ist nichts auszusetzen, aber die Cloud-native Programmierung betont Flexibilität und Interoperabilität.
Um diese Ziele zu erreichen, verwendet Cloud-natives Computing auch zwei andere Konzepte:serverloses Computing und Mikrodienste.
Beim serverlosen Computing müssen Anwendungen nichts über die Hardware wissen, auf der sie ausgeführt werden, oder wie sie verwaltet wird. Die Software ruft die Funktionen auf, die die serverlose Plattform bereitstellt, ohne dass weitere Kenntnisse von irgendetwas anderem erforderlich sind. Das bedeutet, dass Entwickler sich auf die Geschäftslogik einer Anwendung konzentrieren können, anstatt auf architektonische Probleme (z. B. ob der Server über genügend RAM verfügt).
Micro-Services stellen leichtgewichtige, lose gekoppelte Dienste über einen API-Endpunkt bereit. Diese werden durch leichtgewichtige Protokolle wie Representational State Transfer (REST) orgRPC verbunden. Beim Cloud-nativen Computing werden Daten in der Regel durch JavaScript Object Notation (JSON) oder Protobuf dargestellt. Sie bieten modulare und grundlegende Dienste an. Es kann hilfreich sein, sich diese ähnlich wie Linux-Shell-Programme vorzustellen, die einzelne Dienste gut machen, aber für die Cloud.
Was ist SFTP?
Was ist eine verteilte Datenbank?
Was ist Datenbanknormalisierung?
Was ist NewSQL?
Was bedeutet null in Linux und Computing
Was ist ein Docker-Image-Manifest?
Verwalten von Cloud-nativen Anwendungen