#DevoxxFRCloud Native Application BundleLe chainon manquantYves 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« Programme ou ensemble de programmesdestiné à aider l'utilisateur d'un ordinateur pourle traitement d'une tâche précise. »
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 »➞ elasticité➞ infrastructure distribuée
Cloud Native9https://gotocph.com/2018/sessions/612@holly_cumminsCloud Native : sous les buzzwords, le nuagehttps://www.linkedin.com/pulse/cloud-native-sous-les-buzzwords-le-nuage-yves-brissaud/
Cloud Native10Idempotence
Cloud Native11-Larousse« l’idempotence signifie qu’une opération a lemême effet qu’on l’applique une ou plusieursfois »
Cloud Native12Idempotence• Infrastructure‣ AMI, ISO, OVF, …‣ Packer
Cloud Native Application13
Cloud Native Application14• n services• VMs, conteneurs, fonctions serverless, etc• n bases de données• n services managés• …Le tout sur des resources élastiques
Cloud Native Application15‣ Terraform‣ Kubernetesfiles, kustomize, Helm‣ Scripts bash‣ …
Cloud Native Application16Source CodeCI Service ImageInfos de déploiementInfrastructure as Code
Cloud Native Application17Déploiement :1. Récupérer le code source dans la bonne version2. Appliquer IaC3. Appliquer les infos de déploiement4. Télécharger les images de service5. …
Cloud Native Application Bundle18Images IaC Déploiement …Bundle
19Cloud Native Application Bundle• Immutable• Dans une registry• Auto contenu ➡ off line
20Cloud Native Application Bundle• Immutable• Dans une registry• Auto contenu ➡ off lineIdempotence
#DevoxxFR 21📋bundle descriptor📦application images📦invocation image📦📦
Application Images22Les images de conteneurs que vous utilisez déjà !Aucun changement de build ou distribution
Invocation Image23✦ Inclus tous vos outils✦ Configuration, templates, etc✦ Installation / mise à jour / suppression 📦Cloud CLIsHelm ChartsHelm CLITerraform CLIIaC CodeInvocation imagekubectl
Bundle Descriptor24• bundle.json• Liste images d’applications et invocation• Paramètres• Credentials• Outputs
Artefactfinal25OCI Image
CNAB26https://cnab.io/Spécifications ouvertes : https://github.com/cnabio/cnab-spec CNAB Core 1.2.0 CNAB Security 1.0.0
Outils27cnab-go: implémentation de CNAB Core https://github.com/cnabio/cnab-gocnab-to-oci: outil pour convertir des bundles en images OCI https://github.com/cnabio/cnab-to-ociduffle: cli pour interagir avec des bundles https://duffle.shporter: outil plus haut niveau pour créer et utiliser des bundles https://github.com/getporter/porter https://porter.sh
Porter28Fait par Deis Labs (microsoft) https://deislabs.ioLe plus avancé, le plus utilisable
Porter29‣ porter.yaml - plus haut niveau que bundle.json - mixins‣ Crée le bundle.json, puis l’image OCI
Demo Wordpress30
Wordpress31• Déployer wordpress et sa DB• Dans un namespace Kubernetes configurable• À partir d’un helm chart
Demo Airgap32
Airgap33• Intégrer les Helm charts• Intégrer les images de l’application
#DevoxxFRRessources• https://cnab.io• https://cnab.io/community-meetings• #cnab sur 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