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

DevoxxFR 2021: Cloud Native Application Bundle

Yves Brissaud
October 01, 2021
61

DevoxxFR 2021: Cloud Native Application Bundle

Yves Brissaud

October 01, 2021
Tweet

Transcript

  1. #DevoxxFR
    Cloud Native Application Bundl
    e

    Le chainon manquant
    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
    « Programme ou ensemble de programmes
    destiné à aider l'utilisateur d'un ordinateur pour
    le traitement d'une tâche précise. »

    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
    é

    ➞ infrastructure distribuée

    View Slide

  9. Cloud Native
    9
    https://gotocph.com/2018/sessions/612
    @holly_cummins
    Cloud Native : sous les buzzwords, le nuag
    e

    https://www.linkedin.com/pulse/cloud-native-sous-les-buzzwords-le-nuage-yves-brissaud/

    View Slide

  10. Cloud Native
    10
    Idempotence

    View Slide

  11. Cloud Native
    11
    -Larousse
    « l’idempotence signi
    fi
    e qu’une opération a le
    même effet qu’on l’applique une ou plusieurs
    fois »

    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, conteneurs, fonctions serverless, etc


    • n bases de données


    • n services managés


    • …


    Le tout sur des resources élastiques

    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
    Infos de

    déploiement
    Infrastructure

    as Code

    View Slide

  17. Cloud Native Application
    17
    Déploiement :


    1. Récupérer le code source dans la bonne version


    2. Appliquer IaC


    3. Appliquer les infos de déploiement


    4. Télécharger les images de service


    5. …

    View Slide

  18. Cloud Native Application Bundle
    18
    Images IaC Déploiement …
    Bundle

    View Slide

  19. 19
    Cloud Native Application Bundle
    • Immutable


    • Dans une registry


    • Auto contenu ➡ o
    ff l
    ine

    View Slide

  20. 20
    Cloud Native Application Bundle
    • Immutable


    • Dans une registry


    • Auto contenu ➡ o
    ff l
    ine
    Idempotence

    View Slide

  21. #DevoxxFR 21
    📋
    bundle

    descriptor
    📦
    application

    images
    📦
    invocation

    image
    📦
    📦

    View Slide

  22. Application Images
    22
    Les images de conteneurs que vous utilisez déjà !


    Aucun changement de build ou distribution

    View Slide

  23. Invocation Image
    23
    ✦ Inclus tous vos outils


    ✦ Con
    fi
    guration, templates, etc


    ✦ Installation / mise à jour / suppression 📦
    Cloud CLIs
    Helm Charts
    Helm CLI
    Terraform CLI
    IaC Code
    Invocation

    image
    kubectl

    View Slide

  24. Bundle Descriptor
    24
    • bundle.json


    • Liste images d’applications et invocation


    • Paramètres


    • Credentials


    • Outputs

    View Slide

  25. Artefact
    fi
    nal
    25
    OCI Image

    View Slide

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


    Spéci
    fi
    cations ouvertes : https://github.com/cnabio/cnab-spec

    CNAB Core 1.2.0

    CNAB Security 1.0.0


    View Slide

  27. Outils
    27
    cnab-go: implémentation de CNAB Core

    https://github.com/cnabio/cnab-go


    cnab-to-oci: outil pour convertir des bundles en images OCI

    https://github.com/cnabio/cnab-to-oci


    du
    ffl
    e: cli pour interagir avec des bundles

    https://du
    ffl
    e.sh


    porter: outil plus haut niveau pour créer et utiliser des bundles

    https://github.com/getporter/porter

    https://porter.sh

    View Slide

  28. Porter
    28
    Fait par Deis Labs (microsoft)

    https://deislabs.io


    Le plus avancé, le plus utilisable

    View Slide

  29. Porter
    29
    ‣ porter.yaml

    - plus haut niveau que bundle.json

    - mixins


    ‣ Crée le bundle.json, puis l’image OCI

    View Slide

  30. Demo Wordpress
    30

    View Slide

  31. Wordpress
    31
    • Déployer wordpress et sa DB


    • Dans un namespace Kubernetes con
    fi
    gurable


    • À partir d’un helm chart

    View Slide

  32. Demo Airgap
    32

    View Slide

  33. Airgap
    33
    • Intégrer les Helm charts


    • Intégrer les images de l’application

    View Slide

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


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


    • #cnab sur 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