Docker announced yesterday that CNAB, a specification for creating multi-container applications, has come of age. The spec has made it to version 1.0, and the Linux Foundation has officially accepted it into the Joint Development Foundation, which drives open-source development.
The Cloud Native Application Bundle specification is a multi-company effort that defines how the different components of a distributed cloud-based application are bundled together. Docker announced it last December along with Microsoft, HashiCorp, and Bitnami. Since then, Intel has joined the party along with Pivotal and DataDog.
It solves a problem that DevOps folks have long grappled with: how do you bolt all these containers and other services together in a standard way? It’s easy to create a Docker container with a Docker file, and you can pull lots of them together to form an application using Docker Compose. But if you want to package other kinds of container or cloud results into the application, such as Kubernetes YAML, Helm charts, or Azure Resource Manager templates, things become more difficult. That’s where CNAB comes in.
“It’s aimed at defining the overarching ‘composite unit’ of modern distributed applications in order to provide more pain relief for developers and DevOps teams struggling with the complexity of modern applications,” said Docker’s senior director of product marketing Jenny Fong. “Docker and the other CNAB collaborators are helping to define the format for building, packaging, and running multi-part distributed applications across any environments/clouds.”
CNAB supports images that comply with the Open Container Initiative (OCI), so that developers can share these application bundles in OCI-compliant image registries such as Docker Hub.
In a blog post announcing the move, Docker said that there’s still some work to do ensuring that tools like Docker App and others are fully compliant with the 1.0 version of the standard. Still, the 1,0 release and the Linux Foundation blessing represents a significant milestone.