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
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
33
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
170
container_images.pdf
eunomie
0
210
(DockerCon 23) Container Images: Interactive Deep Dive
eunomie
0
690
(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
290
DevoxxFR 2022 : et si les micro services n'avaient rien à voir avec la technique ?
eunomie
1
600
DevoxxFR 2021: Cloud Native Application Bundle
eunomie
0
130
Other Decks in Programming
See All in Programming
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
650
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.8k
React本体のコードリーディング
high_g_engineer
1
130
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
450
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
340
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.7k
Android CLI
fornewid
0
210
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
550
Built Our Own Background Agent at LayerX
layerx
PRO
9
4.8k
「人を評価する AI」の設計と実装
ryoyanara
0
150
AIエージェントで 変わるAndroid開発環境
takahirom
2
770
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
210
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Practical Orchestrator
shlominoach
191
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Why Our Code Smells
bkeepers
PRO
340
58k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
The untapped power of vector embeddings
frankvandijk
2
1.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
290
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