Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CNAB: the missing link

CNAB: the missing link

Avatar for Yves Brissaud

Yves Brissaud

January 24, 2020
Tweet

More Decks by Yves Brissaud

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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/
  4. Cloud Native Application • n services • vm • containers

    • serverless functions • … • n databases • n managed services • … On elastic resources!
  5. 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.
  6. Reuse what we have Containers ‣ Dockerfile ‣ OCI Image

    ‣ OCI Registry Definition Artifact Sharing Application ‣ ? ‣ OCI Image ‣ OCI Registry
  7. App Definition: bundle.json • Metadata • name, version, description •

    Invocation Image • Images • Parameters • Credentials • Custom actions
  8. 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
  9. • 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, …
  10. Spec + Tools = <3 $ porter build <bundle> $

    cnab2to2oci push <bundle> $ docker app run <bundle> $ duffle uninstall <bundle>
  11. 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
  12. CNAB Core 1.0 ‣ bundle.json file ‣ Invocation image format

    ‣ Bundle runtime ‣ Bundle formats (thick/thin)