Cloud Native Application Bundles is an open-source package format specification for managing distributed applications with a single installable file. With bundles you can reliably provision application resources in different environments, and manage their application lifecycle, without having to use multiple toolsets.
There are three distinct pain points that we want to address with CNAB:
Bundles are cloud installers for your app and its infrastucture
CNAB relies on a handful of technologies you are already familiar with – JSON and Docker containers – and describes a format for packaging, installing, and managing distributed applications. By design, it is cloud agnostic. It works with everything from Azure to on-premise OpenStack, from Kubernetes to Swarm, and from Ansible to Terraform. It can execute on a workstation, a public cloud, an air-gapped network, or a constrained IoT environment. And it is flexible enough to accommodate an array of platform needs, from customer-facing marketplaces to internal build pipelines.
Broadly, CNAB brings several features that aren’t currently in the ecosystem:
CNAB can build on top of existing technologies and doesn’t necessarily have to be a replacement for what you are using today. If you are already using bash scripts, Terraform, Docker Compose, and your cloud provider’s tooling or a mix of all of these to manage your application, then your bundles can continue to use those. Depending on your needs, you can select one of the CNAB compliant tools to create your bundle and try out Cloud Native Application Bundles today.
This is a modified copy of the original announcement Introducing CNAB: a cloud-agnostic format for packaging and running distributed applications by Matt Butcher.