So vereinfachen Sie die Bereitstellung von Cloud-Anwendungen - Einführung einer neuen offenen Spezifikation

Microsoft und Docker haben die offene Spezifikation des Cloud Native Application Bundle (CNAB) entwickelt. Es beschreibt eine vielseitige Möglichkeit, containerisierte Anwendungen für die Verwendung in Hybridumgebungen zu verpacken. Als nächstes werden wir erklären, warum CNAB benötigt wurde und was es ist.


/ Foto tsuna72 CC BY

Was ist CNAB?


Cloud Native Application Bundle ist eine Spezifikation, die beschreibt, wie die Komponenten (APIs, virtuelle Maschinen, Container) gepackt werden, die zum Ausführen von Cloud-Anwendungen in verteilten Umgebungen erforderlich sind. Auf den ersten Blick sollte diese Aufgabe von Docker gelöst werden. Es ist jedoch bekannt, dass bei großen Hybridinfrastrukturen die Standardfunktionen nicht ausreichen.

Daher ist CNAB ein Versuch, den Prozess des Packens, Bereitstellens und Lebenszyklusmanagements verteilter Anwendungen auf der Basis von Kubernetes, Helm, Swarm usw. unter Verwendung eines einzigen Paketformats zu vereinheitlichen. Diese Pakete basieren auf JSON und OpenPGP.

Mit dem Cloud Native Application Bundle erhält der Entwickler die Möglichkeit, seine Anwendung sowohl auf der lokalen Workstation als auch in der öffentlichen Cloud bereitzustellen. Jeder der IT-Giganten stellte sein eigenes Tool vor, das die Fähigkeiten der Spezifikation demonstriert. Bei Microsoft war diese Lösung der Duffle- Client, bei Docker die Docker-App .

Beispiele


Wie oben erwähnt, definiert die Spezifikation ein Verfahren zum Verpacken verteilter Anwendungen verschiedener Formate. CNAB enthält eine Paketdefinition (bundle.json) zur Beschreibung der Anwendung sowie ein spezielles Image ( Aufruf-Image ) zur Installation. Die Paketdefinition sieht folgendermaßen aus (ein Beispiel für die Beschreibung befindet sich im offiziellen Repository auf GitHub ):

{ "schemaVersion": "v1.0.0-WD", "name": "helloworld", "version": "0.1.2", "description": "An example 'thin' helloworld Cloud-Native Application Bundle", "maintainers": [ { "name": "Matt Butcher", "email": "technosophos@gmail.com", "url": "https://example.com" } ], "invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aaaaaaa..." } ], "images": [ { "image": "technosophos/microservice:1.2.3", "description": "my microservice", "digest": "sha256:aaaaaaaaaaaa...", "uri": "urn:image1uri", "refs": [ { "path": "image1path", "field": "image.1.field" } ] } ], "parameters": { "backend_port" : { "type" : "int", "defaultValue": 80, "minValue": 10, "maxValue": 10240, "metadata": { "description": "The port that the back-end will listen on" } } }, "credentials": { "kubeconfig": { "path": "/home/.kube/config", }, "image_token": { "env": "AZ_IMAGE_TOKEN", }, "hostkey": { "path": "/etc/hostkey.txt", "env": "HOST_KEY" } } } 

Dieser Block beschreibt die Parameter des Pakets mit der Anwendung und enthält Informationen darüber, wo nach installierten Images gesucht werden soll (das Format muss Docker oder OCI sein). Darüber hinaus gibt die Definition die Größe des Bildes in Byte, die Plattform, auf der es arbeiten wird, sowie die Architektur und das Betriebssystem an.

Und hier wird das Bild selbst direkt beschrieben:

 "invocationImages": [ { "imageType": "docker", "image": "technosophos/helloworld:0.1.0", "digest": "sha256:aca460afa270d4c527981ef9ca4989346c56cf9b20217dcea37df1ece8120685" } ] 

Ihre Aufgabe ist es, die notwendigen Komponenten für die Arbeit zu installieren. Diese Komponenten können Container, Funktionen, virtuelle Maschinen und Service-Frameworks sein.

Entwickler von Microsoft haben ein separates Video vorbereitet, in dem sie die Arbeit mit dem Standard erläuterten und einige Beispiele für echten Code gaben.

Was die IT-Community denkt


CNAB ist nicht die einzige Cloud-Application-Lifecycle-Management-Lösung. Für dieselben Kubernetes gibt es beispielsweise einen Crossplane-Manager und einen Helm-Paketmanager. CNAB ist jedoch die erste Lösung, die mehrere gängige Tools gleichzeitig abdeckt und plattformunabhängig ist. CNAB kann übrigens auch mit Helm arbeiten: Es gibt sogar ein entsprechendes Beispiel auf GitHub.

Aufgrund dieser Vielseitigkeit war die IT-Community von der neuen Spezifikation begeistert. Einer der Gründer von Kubernetes - Brendan Burns - stellte fest, dass die Installation verteilter Anwendungen mit CNAB der Installation einer Anwendung von einem normalen Flash-Laufwerk ähnelt. Ihm zufolge ist es genauso einfach.

Aber nicht jeder ist sich des Erfolgs der neuen Lösung sicher. Einige Benutzer befürchten, dass CNAB auf das Schicksal anderer Paketmanager wartet, die aufgrund des Mangels an Betreibern (wie in Kubernetes) vergessen wurden. Um Zweifel zu zerstreuen und alle möglichen Funktionen zu diskutieren, hat sich einer der Entwickler der Lösung dem thematischen Thread von Hacker News angeschlossen . Er beantwortete alle Fragen der Bewohner des Geländes und hörte sich Vorschläge für die Entwicklung an.

Bisher befindet sich CNAB in einem aktiven Entwicklungsstadium . Sowohl Microsoft als auch Docker laden alle Entwickler ein, sich ihnen anzuschließen, um die Spezifikation fertigzustellen und für die Produktion freizugeben. Zwei IT-Giganten wollen das neue Tool zum Industriestandard machen. Gleichzeitig hoffen Vertreter beider Unternehmen, dass sich das Cloud Native Application Bundle im Laufe der Zeit unabhängig von seinen Entwicklern unabhängig entwickeln wird.



Beiträge aus unserem Unternehmensblog:


Beiträge aus unserem Telegrammkanal:

Source: https://habr.com/ru/post/de436536/


All Articles