VOOZH about

URL: https://thenewstack.io/what-is-cnab-and-why-it-is-important-for-cloud-native-computing/

⇱ What Is CNAB and Why It Is Important for Cloud Native Computing - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2019-09-18 13:29:40
What Is CNAB and Why It Is Important for Cloud Native Computing
feature,
Cloud Native Ecosystem / Containers

What Is CNAB and Why It Is Important for Cloud Native Computing

The Cloud Native Application Bundle (CNAB) is an open source specification that aims to facilitate the bundling, installing, and managing of containerized apps. With this bundle, users can define resources that can then be deployed to a number of runtime environments, such as Docker, Azure, Kubernetes, Helm, automation services (such as those used by GitOps), and more.
Sep 18th, 2019 1:29pm by Jack Wallen
👁 Featued image for: What Is CNAB and Why It Is Important for Cloud Native Computing

The Cloud Native Application Bundle (CNAB) is an open source specification that aims to facilitate the bundling, installing, and managing of containerized apps. With this bundle, users can define resources that can then be deployed to a number of runtime environments, such as Docker, Azure, Kubernetes, Helm, automation services (such as those used by GitOps), and more.

The CNAB specification was created by multiple companies, including Microsoft, HashiCorp, Bitnami, Intel, Pivotal, and DataDog. Although many of the companies involved offer their own cloud services, CNAB was created to be a cloud-agnostic specification, which means it doesn’t care what infrastructure or software you use for deployment. Because of this, there is no vendor lock-in.

Recently the CNAB spec reached version 1.0, which means it is ready for production deployment. Any IT pro, with their fingers deep in the cloud/container pie, should be up to speed with CNAB.

A Bit More Understanding

“As modern applications continue to grow in complexity, there’s an immediate need to simplify how these multiservice, distributed applications are built, shared and run,” said Robert Duffner, director of alliance marketing at Docker. To anyone who’s worked with Kubernetes, that’s an understatement, as Kubernetes can very quickly become quite complex. Duffner continued, “Modern applications are made up of a wide range of components and services — they can be comprised of multiple cloud resources, managed services, SaaS offerings, containers, configuration formats (Helm charts, Kubernetes YAML and Docker Compose files), functions, and more.”

But how does CNAB come into play? “CNAB pulls these disparate components together, providing a common packaging format for multiservice applications. These bundles can be developed, managed and shared (across a registry like Docker Hub) as one immutable composite unit without forcing any specific environment/clouds,” Duffner said.

To clarify this, I focused the conversation toward Kubernetes and Docker (as those are the two technologies at the forefront of container deployment). As to what CNAB does for both Kubernetes and Docker, Duffner said, “CNAB is helping to advance how we look at building, sharing and running containers because it elevates the conversation to the application level.” Adding to that, Duffner addressed Docker App by saying, “This has been the case with Docker App, our implementation of the CNAB specification, which is designed to bring the simplicity associated with Docker images to building, sharing and running multiservice applications across multiple configuration formats.”

In the end, what CNAB bolts together containers and services into a seamless whole, that places a strong focus on standardization. The CNAB spec is broken down into the following chapters:

  • CNAB — explains the fundamentals of the CNAB core 1.0.
  • CNAB Registry — will describe how CNAB bundles can be stored inside of OCI Registries (this section is not yet complete).
  • CNAB Security — explains the mechanisms for signing, verifying, and attesting CNAB packages.
  • CNAB Claims — describes the CNAB Claims system, which describes how records of CNAB installations may be formatted for storage.
  • CNAB Dependencies — describes how bundles can define dependencies on other bundles.

What Is a Bundle?

Currently, there are numerous ways to deploy a containerized application. You can use Docker, Docker Compose, Kubernetes and other tools, each of which has its own specification for laying out configuration files. What CNAB does is create a single bundled metadata in a bundle.json file. This .json file is broken down into:

  • The schema version.
  • Top-level package information.
  • Information on invocation images.
  • Map of images.
  • Specification for parameter override (with a reference to a validation schema).
  • List of credentials.
  • Optional description of custom actions.
  • A list of outputs produced by the application.
  • A set of schema definitions used to validate input.

Bundles come in two formats:

  • Thin bundles contain only one object, the Bundle descriptor and is a JSON file (which MUST be represented as Canonical JSON).
  • Thick bundles contain multiple objects: The bundle descriptor, one or more invocation image, and zero or more images. The thick bundle will include a bundle.json file, which must be at the root of the compressed archive.

A bundle.json is similar to a docker-compose.yml file, in that it describes a complex configuration for image deployment. The difference is, the CNAB bundle is very clearly defined as to how it should be laid out, encoded, and where all associated files must reside.

On the subject of bundles, Duffner said, “Building, sharing and running modern distributed applications which are composed of a variety of parts – from web components to machine learning, functions, APIs, and more – is a massively complicated process.” Anyone who has attempted to deploy complicated containers knows this. How does CNAB address such complexity? To that Duffner added, “One of the benefits of Docker App (implementation of CNAB) is to simplify apps using Docker Compose and then deploy natively to the cloud. So yes, a discrete immutable approach and having a standard way to deploy cloud native applications is important.”

Who Benefits the Most

It should come as no surprise that CNAB is focused primarily on enterprise-level deployments. After all, a simple container deployment doesn’t require nearly the complexity of a service used by a fortune 500 company. To that point, Duffner said, “We are already seeing enterprises be big proponents of CNAB since many are home to hundreds or thousands of distributed applications and are looking for ways to more easily build, manage and secure these applications across the software supply chain.” But CNAB won’t just benefit enterprise-level businesses. In fact, Duffner added that developers and DeOps teams who are struggling with the complexity of modern application deployment will greatly benefit from the CNAB spec. With the help of the CNAB spec, teams will enjoy “better collaboration and faster time to market.”

Make sure to read through the entire CNAB 1.0 spec here.

HashiCorp is a sponsor of The New Stack.

Feature image by Franck THERIAUX from Pixabay

TRENDING STORIES
Jack Wallen is what happens when a Gen Xer mind-melds with present-day snark. Jack is a seeker of truth and a writer of words with a quantum mechanical pencil and a disjointed beat of sound and soul. Although he resides...
Read more from Jack Wallen
SHARE THIS STORY
TRENDING STORIES
TNS owner Insight Partners is an investor in: Bit, Docker.
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.