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

Cloud Native Application Bundle - DevoxxFR 2021

Yves Brissaud
October 01, 2021
280

Cloud Native Application Bundle - DevoxxFR 2021

Presentation (given in French) of Cloud Native Application Bundle – CNAB – and demos using Porter.

Yves Brissaud

October 01, 2021
Tweet

Transcript

  1. #DevoxxFR Cloud Native Application Bundl e The missing link Yves

    Brissaud @_crev_ 1 github.com/eunomie/devoxxfr-2021 speakerdeck.com/eunomie/devoxxfr-2021-cloud-native-application-bundle
  2. Application 6 -Larousse « Program or set of programs to

    assist the user of a computer in the processing of a speci fi c task »
  3. Cloud Native 8 pzf.fremantle.org/2010/05/cloud-native.html « to work well in a

    cloud environment 
 on top of an infrastructure as a service » ➞ elasticit y ➞ distributed infrastructure
  4. Cloud Native 11 -Larousse « Idempotence means an operation will

    have the same result when applied one or multiple times »
  5. Cloud Native Application 14 • n services • VMs, containers,

    serverless functions, etc • n databases • n managed services • … On top of elastic resources
  6. Cloud Native Application 15 ‣ Terraform ‣ Kubernetes fi les,

    kustomize, Helm ‣ Scripts bash ‣ …
  7. Cloud Native Application 16 Source 
 Code CI Service Image

    Deployment 
 instructions Infrastructure 
 as Code
  8. Cloud Native Application 17 Deployment: 1. Get source code in

    right version 2. Apply IaC 3. Apply deployment instructions 4. Download service images 5. …
  9. 19 Cloud Native Application Bundle • Immutable • Inside a

    registry • Self contained ➡ o ff l ine
  10. Invocation Image 23 ✦ Contains all needed tools ✦ Con

    fi guration, templates, etc ✦ Install / upgrade / uninstall 📦 Cloud CLIs Helm Charts Helm CLI Terraform CLI IaC Code Invocation 
 image kubectl
  11. Bundle Descriptor 24 • bundle.json • List application and invocation

    images • Parameters • Credentials • Outputs
  12. Outils 27 cnab-go: CNAB Core implementation 
 https://github.com/cnabio/cnab-go cnab-to-oci: tool

    to convert bundles to OCI images 
 https://github.com/cnabio/cnab-to-oci du ffl e: cli to interact with bundles 
 https://du ffl e.sh porter: higher level tool to create and use bundles 
 https://github.com/getporter/porter 
 https://porter.sh
  13. Porter 29 ‣ porter.yaml 
 - higher level than bundle.json

    
 - mixins ‣ Create bundle.json, then the OCI image
  14. Wordpress 31 • Deploy wordpress and its database • Inside

    a con fi gurable kubernetes namespace • Using a helm chart