Presentation (given in French) of Cloud Native Application Bundle – CNAB – and demos using Porter.
#DevoxxFRCloud Native Application BundleThe missing linkYves Brissaud @_crev_1github.com/eunomie/devoxxfr-2021speakerdeck.com/eunomie/devoxxfr-2021-cloud-native-application-bundle
View Slide
Yves Brissaud🐳 Docker👷 Engineering (Docker Hub)💬 @_crev_2
3https://www.docker.com/career-openings
#DevoxxFR 4CNAB?
#DevoxxFR 5Cloud NativeApplicationBundle
Application6-Larousse« Program or set of programs to assist the userof a computer in the processing of a specifictask »
Cloud Native7
Cloud Native8pzf.fremantle.org/2010/05/cloud-native.html« to work well in a cloud environment on top of an infrastructure as a service »➞ elasticity➞ distributed infrastructure
Cloud Native9https://gotocph.com/2018/sessions/612@holly_cummins
Cloud Native10Idempotence
Cloud Native11-Larousse« Idempotence means an operation will have thesame result when applied one or multiple times »
Cloud Native12Idempotence• Infrastructure‣ AMI, ISO, OVF, …‣ Packer
Cloud Native Application13
Cloud Native Application14• n services• VMs, containers, serverless functions, etc• n databases• n managed services• …On top of elastic resources
Cloud Native Application15‣ Terraform‣ Kubernetesfiles, kustomize, Helm‣ Scripts bash‣ …
Cloud Native Application16Source CodeCI Service ImageDeployment instructionsInfrastructure as Code
Cloud Native Application17Deployment:1. Get source code in right version2. Apply IaC3. Apply deployment instructions4. Download service images5. …
Cloud Native Application Bundle18Images IaC Deployment …Bundle
19Cloud Native Application Bundle• Immutable• Inside a registry• Self contained ➡ off line
20Cloud Native Application BundleIdempotence• Immutable• Inside a registry• Self contained ➡ off line
#DevoxxFR 21📋bundle descriptor📦application images📦invocation image📦📦
Application Images22Containers you are already using!No change needed to build or distribute them
Invocation Image23✦ Contains all needed tools✦ Configuration, templates, etc✦ Install / upgrade / uninstall 📦Cloud CLIsHelm ChartsHelm CLITerraform CLIIaC CodeInvocation imagekubectl
Bundle Descriptor24• bundle.json• List application and invocation images• Parameters• Credentials• Outputs
Artefactfinal25OCI Image
CNAB26https://cnab.io/Open specifications: https://github.com/cnabio/cnab-spec CNAB Core 1.2.0 CNAB Security 1.0.0
Outils27cnab-go: CNAB Core implementation https://github.com/cnabio/cnab-gocnab-to-oci: tool to convert bundles to OCI images https://github.com/cnabio/cnab-to-ociduffle: cli to interact with bundles https://duffle.shporter: higher level tool to create and use bundles https://github.com/getporter/porter https://porter.sh
Porter28Made by Deis Labs (microsoft) https://deislabs.ioThe most user friendly
Porter29‣ porter.yaml - higher level than bundle.json - mixins‣ Create bundle.json, then the OCI image
Demo Wordpress30
Wordpress31• Deploy wordpress and its database• Inside a configurable kubernetes namespace• Using a helm chart
Demo Airgap32
Airgap33• Embed Helm charts• Embed application images
#DevoxxFRResources• https://cnab.io• https://cnab.io/community-meetings• #cnab on https://slack.cncf.io• https://porter.sh• https://porter.sh/community34
#DevoxxFRMerci 🙏35Yves Brissaud @_crev_github.com/eunomie/devoxxfr-2021speakerdeck.com/eunomie/devoxxfr-2021-cloud-native-application-bundle