{"id":77907,"date":"2019-09-10T09:00:31","date_gmt":"2019-09-10T16:00:31","guid":{"rendered":""},"modified":"2025-06-27T05:04:35","modified_gmt":"2025-06-27T12:04:35","slug":"cloud-native-application-bundle-cnab-1-0-updates","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/","title":{"rendered":"Bringing container magic to cloud-native applications"},"content":{"rendered":"\n<p>Last year at Microsoft Connect and DockerCon we announced the <a href=\"https:\/\/cnab.io\/\">Cloud Native Application Bundle (CNAB)<\/a> specification in partnership with Docker, HashiCorp, and Bitnami. Since then the CNAB community has grown to include Pivotal, Intel, Datadog, and others, and we are all extremely pleased to announce that the CNAB core 1.0 specification has reached Final Draft status.<\/p>\n\n\n\n<p>But there\u2019s more. In addition, now that the core specification has reached 1.0, we are even more pleased to announce the official formation of the Cloud Native Application Bundles project under the <a href=\"http:\/\/www.jointdevelopment.org\/\">Joint Development Foundation<\/a> (JDF). Microsoft is proud to work with its partners and friends in the open source community to improve software development and operations for everyone.<\/p>\n\n\n\n<p>In honor of the milestone, at HashiConf we\u2019re reintroducing <a href=\"https:\/\/porter.sh\">Porter<\/a>, our opinionated CNAB development and deployment tool, along with Terraform and Kubernetes mixins. With these new mixins and Porter, you can use Terraform with any number of other deployment tools, including scripts, to bundle up and use a complex distributed application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cnab-core-specification-reaches-1-0\">CNAB Core specification reaches 1.0<\/h2>\n\n\n\n<p>Along with our partners Docker, Pivotal, Datadog, and Intel \u2013 and those who started the journey with us early, contributors from Bitnami, IBM, and HashiCorp \u2013 we couldn\u2019t be more pleased to announce that the Cloud Native Application Bundle (CNAB) Core 1.0 specification has reached Final Draft status.<\/p>\n\n\n\n<p>Last year, Microsoft, Docker, Bitnami, HashiCorp, and others announced the CNAB specification, a format for describing not only the artifacts that a cloud-native distributed application needs to install and run, but also how to install, upgrade, and delete the application as a whole. (For a quick overview of the CNAB Core spec, see <a href=\"https:\/\/deislabs.io\/posts\/state-of-cnab-part-1\/\">The State of CNAB: Part 1 \u2013 CNAB Core<\/a>.)<\/p>\n\n\n\n<p>With the Final Draft of the Core spec, we expect to see broader adoption and a large number of CNAB tools. Questions about CNAB and how it can be used have increased as we have gotten closer to 1.0. CNAB is being seen as a strong solution for a series of scenarios for which there is not a broad-based, open source solution.<\/p>\n\n\n\n<p>This milestone is made up of individual steps and lots of hard work, and I\u2019d like to celebrate each contributor, each commit, and each meeting. It\u2019s been a long road, and 28 individual contributors brought us to this milestone.<\/p>\n\n\n\n<p>Infrastructure advances aren\u2019t pretty; but they are critical. They make other, flashier things even faster, with yet more features that seem \u201ceasy.\u201d We wanted to create the very same magic that Docker did when you created and ran a container for the first time. CNAB does this. CNAB describes how to take an entire distributed application and make it a Docker image \u2013 something you know how to create, push to a registry, pull, and run. That means that you can store, share, and operate entire distributed applications just like you can with individual binaries and services.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-comes-next\"><span data-contrast=\"none\">What comes next<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40}\">&nbsp;<\/span><\/h2>\n\n\n\n<p>Now that the CNAB Core 1.0 specification is in Final Draft status, we are going to focus on the tooling ecosystem and finish off the remaining specifications. There is so much to do with all the tools, including ensuring that both Duffle \u2013 the reference implementation of the spec \u2013 and all other CNAB tools become Core 1.0 compliant. That\u2019s a lot of great tools, each of which can either create or install and manage bundles \u2013 multiservice apps in a container \u2013 created by the others.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Duffle (<a href=\"https:\/\/duffle.sh\">https:\/\/duffle.sh<\/a>) is the reference implementation of the specification, and its goal is to exercise all parts of the specification. You can use it to build, install, and manage bundles, as well as export bundles in thick format for distributing in air-gapped environments. Or steal the code for your stuff.<\/li>\n\n\n\n<li>Porter (<a href=\"https:\/\/porter.sh\">https:\/\/porter.sh<\/a>) is Microsoft\u2019s CNAB builder that gives you building blocks to create a cloud installer for your application, handling all the necessary infrastructure and configuration setup. It is a declarative authoring experience that lets you focus on what you know best: your application.<\/li>\n\n\n\n<li>Docker App (<a href=\"https:\/\/blog.docker.com\/2018\/12\/docker-app-and-cnab\/\">https:\/\/blog.docker.com\/2018\/12\/docker-app-and-cnab\/<\/a>) is an opinionated CNAB builder and installer that leverages the Docker Compose format to define your applications. To facilitate developer to operator handover, you can add metadata and runtime parameters. These applications can easily be shared using existing container registries. Docker App is available as part of <a href=\"https:\/\/blog.docker.com\/2019\/07\/announcing-docker-enterprise-3-0-ga\/\">the latest Docker release<\/a>.<\/li>\n\n\n\n<li>The <a href=\"https:\/\/content.pivotal.io\/blog\/pivotal-build-service-now-alpha-assembles-and-updates-containers-in-kubernetes\">Pivotal Build Service (alpha)<\/a>, a declarative way to build an OCI-compatible container image from source code that uses CNAB to deploy the service on Kubernetes clusters. In fact, Pivotal has a great description of how to think about CNAB and their use of it at <a href=\"https:\/\/content.pivotal.io\/blog\/cloud-native-application-bundles-a-simple-way-to-install-software-on-kubernetes-or-any-other-runtime\">Cloud Native Application Bundles: A Simple Way to Install Software on Kubernetes (or Any Other Runtime)<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/deislabs\/porter-vscode\">VS Code Porter extension<\/a> and graphical installer for bundles &#8211; graphical user interfaces for interacting with CNAB bundles.<\/li>\n<\/ul>\n\n\n\n<p>Each of these tools can create or install bundles built by the other tools once they are all CNAB Core 1.0 compliant. But there\u2019s more to do: finish the other specifications that are critical for more than merely application sharing and management.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cnab-registry-and-security-specifications\"><span data-contrast=\"none\">CNAB&nbsp;<\/span><span data-contrast=\"none\">Registry and Security specifications<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40}\">&nbsp;<\/span><\/h2>\n\n\n\n<p>The CNAB specification has its own work to complete. The CNAB Core spec is just the first specification. Work continues apace on the CNAB Registry specification (<a href=\"https:\/\/deislabs.io\/posts\/state-of-cnab-part-2\/\">The State of CNAB: Part 2 &#8211; CNAB Registries<\/a>), which describes how bundles can be stored in remote locations and exported reliably to operate in other environments, including offline (or \u201cair-gapped\u201d) environments. The CNAB Security specification (<a href=\"https:\/\/github.com\/deislabs\/cnab-spec\/blob\/master\/300-CNAB-security.md\">https:\/\/github.com\/deislabs\/cnab-spec\/blob\/master\/300-CNAB-security.md<\/a>) describes how to use two open source standards, The Update Framework (TUF) and in toto, to build compromise-resilient OCI registries.<\/p>\n\n\n\n<p>This means that even if the infrastructure is compromised anywhere between developers and end-users, attackers should not be able to cause end-users to install malicious versions of images or bundles that were not released by developers. Indeed, Datadog is already using both technologies to protect users of its Agent integrations.<\/p>\n\n\n\n<p>Both specifications enable critical features of which all tools can take advantage. Bundles can be stored in public or private OCI registries, just like any other Docker container. And, whether in a connected or disconnected environment, bundles can be validated both for identity and for the proper steps in an entire supply chain.<\/p>\n\n\n\n<p>To most developers, being able to pull a distributed application from a registry, verify its authenticity and integrity even if it had been pulled from an untrusted registry, and then install it without knowing about the internal stack at all, is tremendously powerful and useful stuff. To most users who work with risk glaring over their shoulders, the ability to verify signatures and even entire software supply chains is like a warm wind in early summer. Just what the doctor ordered.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cnab-project-created-in-the-joint-development-foundation\"><span data-contrast=\"none\">CNAB project created in the Joint Development Foundation<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40}\">&nbsp;<\/span><\/h2>\n\n\n\n<p><span data-contrast=\"auto\">Community collaboration i<\/span><span data-contrast=\"auto\">s liberating in many ways<\/span><span data-contrast=\"auto\">, but&nbsp;<\/span><span data-contrast=\"auto\">it remains so only when&nbsp;<\/span><span data-contrast=\"auto\">individual<\/span><span data-contrast=\"auto\">s&nbsp;<\/span><span data-contrast=\"auto\">ar<\/span><span data-contrast=\"auto\">e<\/span><span data-contrast=\"auto\">&nbsp;assured that their<\/span><span data-contrast=\"auto\"> voices are heard and <\/span><span data-contrast=\"auto\">their contributions&nbsp;<\/span><span data-contrast=\"auto\">respected \u2013<\/span> and large organizations are certain that they have precisely the same stake in the projects as anyone else. To cement these objectives for the CNAB community, today founding members Docker, Pivotal, Datadog, Intel, and Microsoft are announcing that they have created the Cloud Native Application Bundles project of the <a href=\"http:\/\/www.jointdevelopment.org\/\">Joint Development Foundation (JDF)<\/a>, the standards wing of the <a href=\"https:\/\/www.linuxfoundation.org\/\">Linux Foundation<\/a>. This is our collective commitment to all contributors that they can have legal and personal confidence that the governance serves the community interest and the code of conduct supports the engaged contributions of everyone.<\/p>\n\n\n\n<p>The Joint Development Foundation enabled us all to do precisely this. The JDF provides the corporate and legal infrastructure to enable groups to quickly establish and operate lightweight collaborations to develop technical specifications, standards, and source code. Matt Butcher of Microsoft and Chris Crone of Docker have accepted the responsibility of being the two initial Executive Directors of the CNAB Project, and each working group has founding members as well. We thank them all for their time, energy, and talent.<\/p>\n\n\n\n<p>There are two initial working groups:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The CNAB specification working group, responsible for creating and approving the specifications.<\/li>\n\n\n\n<li>The Reference Implementation working group, which continues the work on Duffle to exercise all aspects of the specifications.<\/li>\n<\/ul>\n\n\n\n<p>To follow along, see pull requests to the <a href=\"https:\/\/github.com\/deislabs\/cnab-spec\/blob\/master\/300-CNAB-security.md\">CNAB Security specification<\/a> and <a href=\"https:\/\/cnab.io\/community-meetings\/\">join in with the community.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"terraform-porter-and-cnab\"><span data-contrast=\"none\">Terraform, Porter, and CNAB<\/span><span data-ccp-props=\"{&quot;335559738&quot;:40}\">&nbsp;<\/span><\/h2>\n\n\n\n<p><a href=\"https:\/\/porter.sh\/\">Porter<\/a> is the opinionated, open source bundle builder and deployment tool from Microsoft. Porter not only installs, upgrades, and uninstalls CNAB bundles, but also makes it possible to create bundles from resources and tools you may already have in a declarative format. Using the much beloved YAML (with help from Visual Studio Code and IntelliSense), you can describe what steps, and from which types of components, the installation, upgrade, or uninstallation must take.<\/p>\n\n\n\n<p>HashiCorp\u2019s Terraform is a deployment tool that we both use and help customers with; it\u2019s a great, solid open source tool from a great company. With HashiConf here, we thought it would be a great opportunity to demonstrate not only how you can use Porter\u2019s Terraform mixin to make a CNAB bundle, but also <em>combine Terraform with other out-of-band processes <\/em>to create a seamless installation of a complex application that anyone can install \u2013 even if they don\u2019t know Terraform \u2013 and anyone can share, because it can be pushed and pulled to and from OCI registries.<\/p>\n\n\n\n<p>If you want to explore the experience at HashiConf, be sure to see Lachie Evenson and Rita Zhang\u2019s talk, Tooling for the Modern Cloud Native Application Stack. If you\u2019re really interested, you can build it and run for yourself at <a href=\"https:\/\/github.com\/jeremyrickard\/do-porter\">https:\/\/github.com\/jeremyrickard\/do-porter<\/a>. Have a <a href=\"https:\/\/www.digitalocean.com\/\">Digital Ocean<\/a> account and follow along with the README. Because CNAB works with whatever you do.<\/p>\n\n\n\n<p>From there, you\u2019re on your way!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"questions-or-feedback-let-us-know-in-the-comments-below\"><em>Questions or feedback? Let us know in the comments below.&nbsp;<\/em><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Last year at Microsoft Connect and DockerCon we announced the Cloud Native Application Bundle (CNAB) specification in partnership with Docker, HashiCorp, and Bitnami. Since then the CNAB community has grown to include Pivotal, Intel, Datadog, and others, and we are all extremely pleased to announce that the CNAB core 1.<\/p>\n","protected":false},"author":3163,"featured_media":95492,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[128,141,158,2272,218,400],"content-type":[346,361],"topic":[2240,2241,2242],"programming-languages":[],"coauthors":[283],"class_list":["post-77907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-docker","tag-hashicorp","tag-kubernetes","tag-microsoft","tag-terraform","tag-vs-code","content-type-news","content-type-project-updates","topic-application-development","topic-cloud","topic-containers","review-flag-1593580428-734","review-flag-1-1593580432-963","review-flag-2-1593580437-411","review-flag-anywh-1593580318-567","review-flag-bundl-1593580256-792","review-flag-bundl-1593580260-199","review-flag-micro-1680215167-604","review-flag-new-1593580248-669","review-flag-partn-1593580279-545","review-flag-summe-1593580727-123"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bringing container magic to cloud-native applications | Microsoft Open Source Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bringing container magic to cloud-native applications | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"Last year at Microsoft Connect and DockerCon we announced the Cloud Native Application Bundle (CNAB) specification in partnership with Docker, HashiCorp, and Bitnami. Since then the CNAB community has grown to include Pivotal, Intel, Datadog, and others, and we are all extremely pleased to announce that the CNAB core 1.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-10T16:00:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-27T12:04:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ralph Squillace\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ralph Squillace\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/ralphsquillace\/\",\"@type\":\"Person\",\"@name\":\"Ralph Squillace\"}],\"headline\":\"Bringing container magic to cloud-native applications\",\"datePublished\":\"2019-09-10T16:00:31+00:00\",\"dateModified\":\"2025-06-27T12:04:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/\"},\"wordCount\":1655,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp\",\"keywords\":[\"Docker\",\"HashiCorp\",\"Kubernetes\",\"Microsoft\",\"Terraform\",\"VS Code\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/\",\"name\":\"Bringing container magic to cloud-native applications | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp\",\"datePublished\":\"2019-09-10T16:00:31+00:00\",\"dateModified\":\"2025-06-27T12:04:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bringing container magic to cloud-native applications\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bringing container magic to cloud-native applications | Microsoft Open Source Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/","og_locale":"en_US","og_type":"article","og_title":"Bringing container magic to cloud-native applications | Microsoft Open Source Blog","og_description":"Last year at Microsoft Connect and DockerCon we announced the Cloud Native Application Bundle (CNAB) specification in partnership with Docker, HashiCorp, and Bitnami. Since then the CNAB community has grown to include Pivotal, Intel, Datadog, and others, and we are all extremely pleased to announce that the CNAB core 1.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2019-09-10T16:00:31+00:00","article_modified_time":"2025-06-27T12:04:35+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.png","type":"image\/png"}],"author":"Ralph Squillace","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Ralph Squillace","Est. reading time":"7 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/ralphsquillace\/","@type":"Person","@name":"Ralph Squillace"}],"headline":"Bringing container magic to cloud-native applications","datePublished":"2019-09-10T16:00:31+00:00","dateModified":"2025-06-27T12:04:35+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/"},"wordCount":1655,"commentCount":0,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp","keywords":["Docker","HashiCorp","Kubernetes","Microsoft","Terraform","VS Code"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/","url":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/","name":"Bringing container magic to cloud-native applications | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp","datePublished":"2019-09-10T16:00:31+00:00","dateModified":"2025-06-27T12:04:35+00:00","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/WIN23_PRO_Acer_Concept_D_Office_003.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/09\/10\/cloud-native-application-bundle-cnab-1-0-updates\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Bringing container magic to cloud-native applications"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/77907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/3163"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=77907"}],"version-history":[{"count":1,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/77907\/revisions"}],"predecessor-version":[{"id":97730,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/77907\/revisions\/97730"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95492"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=77907"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=77907"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=77907"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=77907"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=77907"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=77907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}