Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CNAB: the missing link
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yves Brissaud
January 24, 2020
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CNAB: the missing link
Yves Brissaud
January 24, 2020
More Decks by Yves Brissaud
See All by Yves Brissaud
The Rise of Local CI Tooling. Thanks AI Coding Agents!
eunomie
0
30
Manifests, blobs et tags : les images de conteneurs enfin digest(es)
eunomie
0
130
Pour une autre idée de la CI, sur la machine du développeur, avec Dagger
eunomie
0
160
container_images.pdf
eunomie
0
200
(DockerCon 23) Container Images: Interactive Deep Dive
eunomie
0
680
(DockerCon 23) What's in my container? Docker scout CLI and CI to the rescue
eunomie
0
300
AlpesCraft 2022 : et si les micro services n'avaient rien à voir avec la technique ?
eunomie
1
280
DevoxxFR 2022 : et si les micro services n'avaient rien à voir avec la technique ?
eunomie
1
590
DevoxxFR 2021: Cloud Native Application Bundle
eunomie
0
130
Other Decks in Programming
See All in Programming
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.4k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
350
えっ!!コードを読まずに開発を!?
hananouchi
0
190
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.4k
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
110
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
800
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
220
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
270
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
260
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
310
Featured
See All Featured
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Statistics for Hackers
jakevdp
799
230k
Odyssey Design
rkendrick25
PRO
2
730
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
A better future with KSS
kneath
240
18k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Typedesign – Prime Four
hannesfritz
42
3.1k
The Curse of the Amulet
leimatthew05
2
13k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
From π to Pie charts
rasagy
0
230
Everyday Curiosity
cassininazir
0
250
Transcript
CNAB The missing link Yves Brissaud @_crev_
Yves Brissaud Docker Engineering @_crev_
CNAB?
Cloud Native Application Bundle
Application "A program or piece of software designed to fulfil
a particular purpose” – Oxford English Dictionary "Program or set of programs to assist the user of a computer in the processing of a specific task.” – Translation from Larousse
Cloud Native pzf.fremantle.org/2010/05/cloud-native.html ➞ elasticity ➞ distributed infrastructure ❝ to
work well in a cloud environment on top of an infrastructure as a service
Cloud Native https://gotocph.com/2018/sessions/612 @holly_cummins Cloud Native: behind buzzwords, the cloud
() https://www.linkedin.com/pulse/cloud-native-sous-les-buzzwords-le-nuage-yves-brissaud/
Cloud Native Application • n services • vm • containers
• serverless functions • … • n databases • n managed services • … On elastic resources!
How to describe it? Single artifact
How to package? Share, provision, without dozens of tools
How to manage lifecycle? • Installation • Upgrade • Deletion
Cloud Native Application Bundle CNABs facilitate the bundling, installing and
managing of container-native apps – and their coupled services. ❝ A spec for packaging distributed apps.
CNAB’s Goals • Deploy complex applications easily • Cloud agnostic
• Secure • Handle a spread of use cases
None
https://xkcd.com/927/
Intel
Reuse what we have Containers ‣ Dockerfile ‣ OCI Image
‣ OCI Registry Definition Artifact Sharing Application ‣ ? ‣ OCI Image ‣ OCI Registry
App Definition: bundle.json • Metadata • name, version, description •
Invocation Image • Images • Parameters • Credentials • Custom actions
bundle.json
Invocation Image OCI image used to run actions (install, etc)
main entry point – run tool • install, upgrade, … + custom actions runtime metadata • helm charts, terraform files, etc Build instructions • Dockerfile, packer.json, etc Inside defined File System Layout
Tools
• Duffle: reference implementation of all features of the spec
• Porter: opinionated CNAB builder • Docker App: opinionated CNAB builder and installer • Pivotal Build Service: source code to OCI images using CNAB to deploy • Pivotal Function Service: build & run functions, apps, containers on kubernetes distributed as CNAB bundle • cnab-go, cnab-rs, cnab-to-oci, …
Spec + Tools = <3 $ porter build <bundle> $
cnab2to2oci push <bundle> $ docker app run <bundle> $ duffle uninstall <bundle>
Docker App https://github.com/docker/app/tree/master/examples/voting-app
Docker App (reuse what we have) docker-compose v3 file format
• easy to use • widely used • easy to migrate docker stack • swarm • kubernetes docker hub • standard • a lot of existing images
Specification Status
CNAB Core 1.0 ‣ bundle.json file ‣ Invocation image format
‣ Bundle runtime ‣ Bundle formats (thick/thin)
Drafts ‣ Registries ‣ Security ‣ Claims: record of CNAB
installation ‣ Dependencies
Missing? ‣ Inner loop - daily work, local development, debug
Docker App Migration from docker-compose to Docker App
cnab.io @cnab_spec github.com/cnabio #cnab on CNCF Slack github.com/docker/app Docker Community
Slack @_crev_
Questions?
None