Microsoft und Docker haben die Spezifikation Cloud Native Application Bundle (CNAB) für einsatzbereit erklärt. Die im Dezember 2018 vorgestellte Core-Spezifikation hat den Status 1.0 Final Draft erreicht, wie Microsoft am 10. September 2019 in seinem Open-Source-Blog ankündigte. Zugleich übergaben die Beteiligten das Projekt an die Joint Development Foundation (JDF), die Standardisierungsorganisation der Linux Foundation. Nach eigenen Angaben arbeiteten neben Microsoft und Docker auch Pivotal, Intel, Datadog, Bitnami, IBM und HashiCorp an der Version 1.0 mit.
CNAB beschreibt ein cloudneutrales Format, mit dem sich eine verteilte Anwendung als ein einziges Artefakt paketieren, installieren, aktualisieren und wieder löschen lässt. Der Ansatz kombiniert Container, Cloud-Dienste und Infrastruktur-Werkzeuge in einer gemeinsamen Definition. Grundlage sind Technologien, die in der Praxis verbreitet sind: JSON für die Beschreibungen, Docker-Container für die Ausführung und OpenPGP für die Signierung. Ein Bundle besteht aus einer Bundle Definition, der Datei bundle.json, und einem Invocation Image, das die Installation übernimmt. Als vollständig gilt ein Bundle, wenn alle Komponenten als Thick Bundle verpackt vorliegen oder beim Thin Bundle alle externen Referenzen auflösbar sind.
Werkzeugkette aus Duffle, Porter und Docker App
Mit dem Erreichen der Version 1.0 verlagert die Gemeinschaft den Fokus auf das Ökosystem rund um die Spezifikation. Die Referenzimplementierung Duffle baut, installiert und verwaltet Bundles. Microsoft stellte auf der HashiConf den Bundle-Builder Porter vor, der mit neuen Mixins für Terraform und Kubernetes auch Kombinationen aus Terraform-Skripten und anderen Out-of-Band-Prozessen in ein verkettbares Installationspaket überführt. Docker bringt mit Docker App einen Builder und Installer ein, der das im Oktober 2017 auf der DockerCon Europe angekündigte Compose-Format als Ausgangspunkt für Bundles nutzt. Details zur Spezifikation liegen auf GitHub, eine Projektübersicht bietet cnab.io.
Für Teams, die Spiele-Backends, Live-Services oder Build-Pipelines über mehrere Umgebungen betreiben, verspricht CNAB einen Weg, die Installation ganzer Anwendungslandschaften zu standardisieren, ohne sich auf eine bestimmte Orchestrierung festzulegen. Ein Bundle lässt sich wie ein Container-Image in OCI-Registries ablegen und verteilen. In der Woche vor der CNAB-Meldung hatte mit Pulumi 1.0 bereits ein weiteres Werkzeug für deklarative Infrastruktur seine erste stabile Version erreicht.

