$30 off During Our Annual Pro Sale. View Details »

Cloud Native Application Bundle - DevoxxFR 2021

Yves Brissaud
October 01, 2021
170

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

    View Slide

  2. Yves Brissaud
    🐳 Docker


    👷 Engineering (Docker Hub)


    💬 @_crev_
    2

    View Slide

  3. 3
    https://www.docker.com/career-openings

    View Slide

  4. #DevoxxFR 4
    CNAB?

    View Slide

  5. #DevoxxFR 5
    Cloud Nativ
    e

    Applicatio
    n

    Bundle

    View Slide

  6. Application
    6
    -Larousse
    « Program or set of programs to assist the user
    of a computer in the processing of a speci
    fi
    c
    task »

    View Slide

  7. Cloud Native
    7

    View Slide

  8. 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

    View Slide

  9. Cloud Native
    9
    https://gotocph.com/2018/sessions/612
    @holly_cummins

    View Slide

  10. Cloud Native
    10
    Idempotence

    View Slide

  11. Cloud Native
    11
    -Larousse
    « Idempotence means an operation will have the
    same result when applied one or multiple times »

    View Slide

  12. Cloud Native
    12
    Idempotence


    • Infrastructure


    ‣ AMI, ISO, OVF, …


    ‣ Packer

    View Slide

  13. Cloud Native Application
    13

    View Slide

  14. Cloud Native Application
    14
    • n services


    • VMs, containers, serverless functions, etc


    • n databases


    • n managed services


    • …


    On top of elastic resources

    View Slide

  15. Cloud Native Application
    15
    ‣ Terraform


    ‣ Kubernetes
    fi
    les, kustomize, Helm


    ‣ Scripts bash


    ‣ …

    View Slide

  16. Cloud Native Application
    16
    Source

    Code
    CI Service Image
    Deployment

    instructions
    Infrastructure

    as Code

    View Slide

  17. Cloud Native Application
    17
    Deployment:


    1. Get source code in right version


    2. Apply IaC


    3. Apply deployment instructions


    4. Download service images


    5. …

    View Slide

  18. Cloud Native Application Bundle
    18
    Images IaC Deployment …
    Bundle

    View Slide

  19. 19
    Cloud Native Application Bundle
    • Immutable


    • Inside a registry


    • Self contained ➡ o
    ff l
    ine

    View Slide

  20. 20
    Cloud Native Application Bundle
    Idempotence
    • Immutable


    • Inside a registry


    • Self contained ➡ o
    ff l
    ine

    View Slide

  21. #DevoxxFR 21
    📋
    bundle

    descriptor
    📦
    application

    images
    📦
    invocation

    image
    📦
    📦

    View Slide

  22. Application Images
    22
    Containers you are already using!


    No change needed to build or distribute them

    View Slide

  23. 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

    View Slide

  24. Bundle Descriptor
    24
    • bundle.json


    • List application and invocation images


    • Parameters


    • Credentials


    • Outputs

    View Slide

  25. Artefact
    fi
    nal
    25
    OCI Image

    View Slide

  26. CNAB
    26
    https://cnab.io/


    Open speci
    fi
    cations: https://github.com/cnabio/cnab-spec

    CNAB Core 1.2.0

    CNAB Security 1.0.0


    View Slide

  27. 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

    View Slide

  28. Porter
    28
    Made by Deis Labs (microsoft)

    https://deislabs.io


    The most user friendly

    View Slide

  29. Porter
    29
    ‣ porter.yaml

    - higher level than bundle.json

    - mixins


    ‣ Create bundle.json, then the OCI image

    View Slide

  30. Demo Wordpress
    30

    View Slide

  31. Wordpress
    31
    • Deploy wordpress and its database


    • Inside a con
    fi
    gurable kubernetes namespace


    • Using a helm chart

    View Slide

  32. Demo Airgap
    32

    View Slide

  33. Airgap
    33
    • Embed Helm charts


    • Embed application images

    View Slide

  34. #DevoxxFR
    Resources
    • https://cnab.io


    • https://cnab.io/community-meetings


    • #cnab on https://slack.cncf.io


    • https://porter.sh


    • https://porter.sh/community
    34

    View Slide

  35. #DevoxxFR
    Merci 🙏
    35
    Yves Brissaud @_crev_
    github.com/eunomie/devoxxfr-2021
    speakerdeck.com/eunomie/devoxxfr-2021-cloud-native-application-bundle

    View Slide