SlideShare une entreprise Scribd logo
WORKFLOW DE CI/CD
POUR LES GEEKS AVEC
GITLAB & K8S
MAIS C’EST QUI ?
L U I ? O U I L E G A R S Q U I PA R L E …
• Indépendant
• Aix-Marseille
• Expertise web & symfo (historique)
• Accompagne des startups et + sur les WF
#DevOps
• Réales autour de Docker & Rancher/K8S/OC
• Infogérance / Monitoring / Hosting
PRÉLIMINAIRES
B I Z A R R E M E N T PA S D E S O U S - T I T R E
DISCLAIMER
• Ceci est un meetup
• Ce n’est pas
– 1 cours magistral
– 1 webinaire
– 1 présentation sur le cyclisme 
• Nous finirons en retard
• Les démos auront des problèmes (soyez patients)
• Je / nous n’aurons pas toutes les réponses mais les questions sont plus
que bienvenues !
OBJECTIF
• Montrer un workflow de CI/CD complet avec des technologies
& process modernes
• Se familiariser avec les bonnes pratiques de déploiement
containers
• Découvrir les bonnes idées et les limites de Gitlab Auto-
Devops
• Aller au-delà du mode de base
• Répondre à vos questions …
VOCABULAIRE
• CI : Continuous Intégration
• CD : Continuous Deployment
• Workflow : Ensemble de process et techniques assurant l’accomplissement d’une tâche
• Gitlab : Produit OSS (version EE) incluant server GIT / CI-CD / autres
• K8S : Kubernetes / Orchestrateur de containers (Docker ou pas d’ailleurs) by Google
• Google Cloud : Service cloud public / privé de Google
• GCE: Google Container Engine, service cloud k8s as a service (CaaS)
• Cabot : Se dit d’un chien (ou pas) au caractère impétueux …
CONTEXTE GITLAB
• Gitlab est un des produit les plus populaires pour gérer des « usines logicielles »
– Belle vision long terme
– Support EE
– Développement rapide
– Beaucoup d’intégrations
– Full scope
• Concurrents
– Github
– GOCD
– Jenkins
– TravisCI
CONTEXTE KUBERNETES
• K8S à gagné la guerre des orchestrateurs
• Production Ready
• Convergence
– Openshift
– Rancher
– Docker
– Autres …
CONTEXTE GOOGLE CLOUD
• GCP propose une offre cluster managé kubernetes
• Très simple d’usage
• 300 € gratuits à l’ouverture d’un compte
– https://cloud.google.com/pricing/free?hl=fr
VIE D’UNE
APPLICATION1 2 - F A C T O R S P R O O F
WORKFLOW MODERNE
CODE
• GIT
• MR
• PR
• Collaboration
• Diff
BUILD / TESTS
• Build
• Syntax Check
• Tests Unitaires
• Qualité du code
• Tests de charge
DEPLOY
• Plus complexe que cela
• Review Apps
• Environments
– Review
– Staging
– Canary
– Production
• S’interface très bien avec Gitlab (Openshift / Rancher / Swarm etc…)
EN FAIT … C’EST LE BOBO …
AUTODEVOPSI ’ V E G O T T H E P O W E R !
AUTO-DEVOPS : CONCEPTS
• Template de CI/CD implicite depuis la version 10.0
• Collection d’outils externes et librairie de best-practices CI/CD
• Extensible
• Personnalisable
• Simple
 Gain de temps / Argent / compétences
AUTO-DEVOPS : DANS LE DÉTAIL
• Basé sur K8S et GCE
BUILD TESTS CODE DEPLOY
HEROKUISH BP
CODECLIMATE
HELM / TILLER
MONITORING
PROMETHEUS
GITLAB GCE
AUTO-DEVOPS : BÉNÉFICES
• Capitaliser sur des bests practices définies / recensées
par d’autres
• Démarrage rapide
• Standardisation
• Une très bonne base … personnalisable si besoin
DÉMO
L E T ’ S G O O O O O ! A H N O N AT T E N D S …
MARRE DES SLIDES ???
•Une démo réussie = 3 choses
– Un plan (mouais …)
– Un dieu (celui de la démo)
– Une app swag !
CECI N’EST PAS UN CHIEN …
KAAMELOT TELEGRAM BOT
KAABOT
MAIS POURQUOI ???
1. Because MUCH FUN !
2. Pour capter l’attention
3. Simple à tester
4. Technos parlantes
5. Développements rapides
6. Kaamelot c’est drôle
7. Telegram c’est très bien (et très russe )
https://t.me/KaamelotBot
@KaamelotBot
THE GEEKY DETAILS
• Golang
– Telegram Bot Api
– http
– Prometheus
• Redis
– Stockage des datas
• Docker
• Helm
Kaabot
Redis
TG API
OK ! ON FAIT QUOI ?
• Setup cluster GCE (#DevOps style)
• Intégration avec gitlab
• Pipeline  Review App
• Pipeline  Production
• Personnalisation  staging / canary enabled + mode manuel pour la production
• Graphs de performances
UNDER THE
HOOD
F O U S TA C A G O U L E !
STEPS
• Auto Build
– Docker build ou Herokuish build
• Auto Test
– Herokuish
– SAST (Ruby oriented)
• Auto Code Quality
– CodeClimate
• Auto Review Apps
– Helm
• Auto Deploy
– Helm
• Auto Monitoring
– Prometheus
BONNES PRATIQUES CODE
• Suivre les « codding habits » de votre langage préféré
• Dans ce cas Golang
– Vendoring avec GB (quelques soucis avec l’autodetection du buildpack)
– Ecrire des tests ^^
• Possibilité de créer son propre Buildpack
BONNES PRATIQUES CONTAINERS
• Healthchecks (si possible fonctionnel)
• Indépendance par rapport aux autres container  Fallbacks
• Dockerfile à la racine du projet
• Docker-compose
• Déploiements via minikube pour tests
• Helm chart nécessaire si pas Ruby On Rails standard
BONNES PRATIQUES DEVOPS
• Produire des metrics via les libs promotheus et exposer en http
– http://localhost:9102/metrics
• Exposez des metrics parlantes et fonctionnelles avec le max de détails
– Les graphs sont gratuits ensuite !
• Route53 ou DNS sans « latences »
GITLAB
• Utilisez la registry gitlab pour push
• Staging / canary
• Utilisez les variables pour controller:
– AUTO_DEVOPS_DOMAIN
– CANARY_PRODUCTION_REPLICAS
– $ENV_REPLICAS
RÉFÉRENCES
• https://docs.gitlab.com/ee/topics/autodevops/
• https://devcenter.heroku.com/articles/buildpacks &
https://github.com/gliderlabs/herokuish
• https://docs.helm.sh/
• https://prometheus.io/docs/introduction/overview/
• https://gitlab.com/gitlab-org/gitlab-ci-yml/blob/master/Auto-DevOps.gitlab-ci.yml
• https://gitlab.com/charts/charts.gitlab.io/tree/master/charts/auto-deploy-app
CONCLUSIONS
• Puissant et rapide à mettre en œuvre
• Donne tout de suite de « bonnes habitudes »
• Besoin de personnalisation (en partie couvert)
• On finit toujours par dupliquer le .gitlab-ci.yml
• Mais au moins ca donne une bonne base !
• Quelques soucis
– Les secrets
– Le pull des images depuis la registry intégrée
– Les runners gitlab auto-hebergés
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes

Contenu connexe

Tendances

Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
Microsoft
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012
Alexandre Morgaut
 
Déploiement d'applications pour Kubernetes
Déploiement d'applications pour KubernetesDéploiement d'applications pour Kubernetes
Déploiement d'applications pour Kubernetes
Smaïne KAHLOUCH
 
DMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifDMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natif
Olivier Destrebecq
 
Back day - REX vsct - Secrets de conception d’une application innovante au s...
Back day -  REX vsct - Secrets de conception d’une application innovante au s...Back day -  REX vsct - Secrets de conception d’une application innovante au s...
Back day - REX vsct - Secrets de conception d’une application innovante au s...
Publicis Sapient Engineering
 
React Native - Développez vos application native en JS
React Native - Développez vos application native en JSReact Native - Développez vos application native en JS
React Native - Développez vos application native en JS
Yann Duval
 
Présentation de Kirby CMS
Présentation de Kirby CMSPrésentation de Kirby CMS
Présentation de Kirby CMS
Gilles Vauvarin
 
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderneGab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
Vincent Thavonekham-Pro
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Microsoft
 
Node.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesNode.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesMicrosoft
 
OVH Public Cloud : VM as a Service
OVH Public Cloud : VM as a ServiceOVH Public Cloud : VM as a Service
OVH Public Cloud : VM as a Service
Jean-Guillaume Burlet
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React Native
Benoit Fillon
 
Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...
Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...
Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...PimpMySharePoint
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon
Clement Bouillier
 
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
Worteks
 
INRIA continuous integration plaftorm
INRIA continuous integration plaftormINRIA continuous integration plaftorm
INRIA continuous integration plaftormbuildacloud
 

Tendances (16)

Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012
 
Déploiement d'applications pour Kubernetes
Déploiement d'applications pour KubernetesDéploiement d'applications pour Kubernetes
Déploiement d'applications pour Kubernetes
 
DMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natifDMCA #20: Migration Natif vers react natif
DMCA #20: Migration Natif vers react natif
 
Back day - REX vsct - Secrets de conception d’une application innovante au s...
Back day -  REX vsct - Secrets de conception d’une application innovante au s...Back day -  REX vsct - Secrets de conception d’une application innovante au s...
Back day - REX vsct - Secrets de conception d’une application innovante au s...
 
React Native - Développez vos application native en JS
React Native - Développez vos application native en JSReact Native - Développez vos application native en JS
React Native - Développez vos application native en JS
 
Présentation de Kirby CMS
Présentation de Kirby CMSPrésentation de Kirby CMS
Présentation de Kirby CMS
 
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderneGab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Node.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sitesNode.js dans Windows Azure mobile services et web sites
Node.js dans Windows Azure mobile services et web sites
 
OVH Public Cloud : VM as a Service
OVH Public Cloud : VM as a ServiceOVH Public Cloud : VM as a Service
OVH Public Cloud : VM as a Service
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React Native
 
Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...
Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...
Sauver votre argent, votre temps et vos cheveux avec Microsoft Azure - GUSPQ ...
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon
 
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
[RedHat Forum 2019] REX - COMMENT MONTER UNE OFFRE DE CLOUD EN MARQUE BLANCHE...
 
INRIA continuous integration plaftorm
INRIA continuous integration plaftormINRIA continuous integration plaftorm
INRIA continuous integration plaftorm
 

Similaire à meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes

Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
Paris Container Day
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
Microsoft
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
Content Square
 
Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17
Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17
Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17
Laurent Cochet
 
Self-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et GitlabSelf-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et Gitlab
Julien Wittouck
 
L'Agilité chez GEE Montréal
L'Agilité chez GEE MontréalL'Agilité chez GEE Montréal
L'Agilité chez GEE Montréal
Charles-André Bouchard
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
Laurent Tardif
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
OSInet
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
Microsoft
 
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
OSInet
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Microsoft
 
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Chipway
 
Agile Data Warehousing - 7 pillars - Procima Experts
Agile Data Warehousing - 7 pillars - Procima ExpertsAgile Data Warehousing - 7 pillars - Procima Experts
Agile Data Warehousing - 7 pillars - Procima Experts
Marc-Eric LaRocque
 
The DevOps Wonder @ PHPTour Lyon 2014
The DevOps Wonder @ PHPTour Lyon 2014The DevOps Wonder @ PHPTour Lyon 2014
The DevOps Wonder @ PHPTour Lyon 2014
Matthieu de Canteloube
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
Boubker ABERWAG
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
SUSE
 

Similaire à meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes (20)

Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
 
Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17
Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17
Gradle Vs Maven by Slickteam & J Guidoux - 29/06/17
 
Self-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et GitlabSelf-Service infrastructure pour GCP avec Terraform et Gitlab
Self-Service infrastructure pour GCP avec Terraform et Gitlab
 
L'Agilité chez GEE Montréal
L'Agilité chez GEE MontréalL'Agilité chez GEE Montréal
L'Agilité chez GEE Montréal
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
 
Lunch learn 5 sep2013
Lunch learn 5 sep2013Lunch learn 5 sep2013
Lunch learn 5 sep2013
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
Bonnes pratiques-drupal-dans-cahier-des-charges conference-dc-lyon-2012
 
Agile Data Warehousing - 7 pillars - Procima Experts
Agile Data Warehousing - 7 pillars - Procima ExpertsAgile Data Warehousing - 7 pillars - Procima Experts
Agile Data Warehousing - 7 pillars - Procima Experts
 
The DevOps Wonder @ PHPTour Lyon 2014
The DevOps Wonder @ PHPTour Lyon 2014The DevOps Wonder @ PHPTour Lyon 2014
The DevOps Wonder @ PHPTour Lyon 2014
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 

Plus de Frederic Leger

Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Frederic Leger
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
Frederic Leger
 
2024-04 slides meetup devops aix marseille
2024-04 slides meetup devops aix marseille2024-04 slides meetup devops aix marseille
2024-04 slides meetup devops aix marseille
Frederic Leger
 
2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseille2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseille
Frederic Leger
 
KubeTrain sponsor prospectus Aix-Marseille
KubeTrain sponsor prospectus Aix-MarseilleKubeTrain sponsor prospectus Aix-Marseille
KubeTrain sponsor prospectus Aix-Marseille
Frederic Leger
 
meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023
Frederic Leger
 
Level up your ci-cd experience
Level up your ci-cd experienceLevel up your ci-cd experience
Level up your ci-cd experience
Frederic Leger
 
Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023
Frederic Leger
 
slides meetup devops aix-marseille - septembre 2023
slides meetup devops aix-marseille - septembre 2023slides meetup devops aix-marseille - septembre 2023
slides meetup devops aix-marseille - septembre 2023
Frederic Leger
 
slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023
Frederic Leger
 
meetup devops 2023-06-15
meetup devops 2023-06-15meetup devops 2023-06-15
meetup devops 2023-06-15
Frederic Leger
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23
Frederic Leger
 
meetup devops 2023/04/04 - Astonish April
meetup devops 2023/04/04 - Astonish Aprilmeetup devops 2023/04/04 - Astonish April
meetup devops 2023/04/04 - Astonish April
Frederic Leger
 
2023-02-02 - Marvelous March
2023-02-02 - Marvelous March2023-02-02 - Marvelous March
2023-02-02 - Marvelous March
Frederic Leger
 
2023-01-24 - dry january.pptx
2023-01-24 - dry january.pptx2023-01-24 - dry january.pptx
2023-01-24 - dry january.pptx
Frederic Leger
 
2022-11-22 - November Rain
2022-11-22 - November Rain2022-11-22 - November Rain
2022-11-22 - November Rain
Frederic Leger
 
meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022
Frederic Leger
 
Maltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falcoMaltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falco
Frederic Leger
 
Voyage en terre du multi-cloud
Voyage en terre du multi-cloudVoyage en terre du multi-cloud
Voyage en terre du multi-cloud
Frederic Leger
 
Meetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a ServiceMeetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a Service
Frederic Leger
 

Plus de Frederic Leger (20)

Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
Vol WAX 2024 - la chaîne de valeur propulsée par le Platform Engineering chez...
 
2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf2024-05-30_meetup_devops_aix-marseille.pdf
2024-05-30_meetup_devops_aix-marseille.pdf
 
2024-04 slides meetup devops aix marseille
2024-04 slides meetup devops aix marseille2024-04 slides meetup devops aix marseille
2024-04 slides meetup devops aix marseille
 
2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseille2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseille
 
KubeTrain sponsor prospectus Aix-Marseille
KubeTrain sponsor prospectus Aix-MarseilleKubeTrain sponsor prospectus Aix-Marseille
KubeTrain sponsor prospectus Aix-Marseille
 
meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023
 
Level up your ci-cd experience
Level up your ci-cd experienceLevel up your ci-cd experience
Level up your ci-cd experience
 
Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023
 
slides meetup devops aix-marseille - septembre 2023
slides meetup devops aix-marseille - septembre 2023slides meetup devops aix-marseille - septembre 2023
slides meetup devops aix-marseille - septembre 2023
 
slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023
 
meetup devops 2023-06-15
meetup devops 2023-06-15meetup devops 2023-06-15
meetup devops 2023-06-15
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23
 
meetup devops 2023/04/04 - Astonish April
meetup devops 2023/04/04 - Astonish Aprilmeetup devops 2023/04/04 - Astonish April
meetup devops 2023/04/04 - Astonish April
 
2023-02-02 - Marvelous March
2023-02-02 - Marvelous March2023-02-02 - Marvelous March
2023-02-02 - Marvelous March
 
2023-01-24 - dry january.pptx
2023-01-24 - dry january.pptx2023-01-24 - dry january.pptx
2023-01-24 - dry january.pptx
 
2022-11-22 - November Rain
2022-11-22 - November Rain2022-11-22 - November Rain
2022-11-22 - November Rain
 
meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022meetup devops aix-marseille 27/10/2022
meetup devops aix-marseille 27/10/2022
 
Maltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falcoMaltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falco
 
Voyage en terre du multi-cloud
Voyage en terre du multi-cloudVoyage en terre du multi-cloud
Voyage en terre du multi-cloud
 
Meetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a ServiceMeetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a Service
 

Dernier

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 

Dernier (6)

Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 

meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes

  • 1. WORKFLOW DE CI/CD POUR LES GEEKS AVEC GITLAB & K8S
  • 2. MAIS C’EST QUI ? L U I ? O U I L E G A R S Q U I PA R L E …
  • 3. • Indépendant • Aix-Marseille • Expertise web & symfo (historique) • Accompagne des startups et + sur les WF #DevOps • Réales autour de Docker & Rancher/K8S/OC • Infogérance / Monitoring / Hosting
  • 4. PRÉLIMINAIRES B I Z A R R E M E N T PA S D E S O U S - T I T R E
  • 5. DISCLAIMER • Ceci est un meetup • Ce n’est pas – 1 cours magistral – 1 webinaire – 1 présentation sur le cyclisme  • Nous finirons en retard • Les démos auront des problèmes (soyez patients) • Je / nous n’aurons pas toutes les réponses mais les questions sont plus que bienvenues !
  • 6. OBJECTIF • Montrer un workflow de CI/CD complet avec des technologies & process modernes • Se familiariser avec les bonnes pratiques de déploiement containers • Découvrir les bonnes idées et les limites de Gitlab Auto- Devops • Aller au-delà du mode de base • Répondre à vos questions …
  • 7. VOCABULAIRE • CI : Continuous Intégration • CD : Continuous Deployment • Workflow : Ensemble de process et techniques assurant l’accomplissement d’une tâche • Gitlab : Produit OSS (version EE) incluant server GIT / CI-CD / autres • K8S : Kubernetes / Orchestrateur de containers (Docker ou pas d’ailleurs) by Google • Google Cloud : Service cloud public / privé de Google • GCE: Google Container Engine, service cloud k8s as a service (CaaS) • Cabot : Se dit d’un chien (ou pas) au caractère impétueux …
  • 8. CONTEXTE GITLAB • Gitlab est un des produit les plus populaires pour gérer des « usines logicielles » – Belle vision long terme – Support EE – Développement rapide – Beaucoup d’intégrations – Full scope • Concurrents – Github – GOCD – Jenkins – TravisCI
  • 9. CONTEXTE KUBERNETES • K8S à gagné la guerre des orchestrateurs • Production Ready • Convergence – Openshift – Rancher – Docker – Autres …
  • 10. CONTEXTE GOOGLE CLOUD • GCP propose une offre cluster managé kubernetes • Très simple d’usage • 300 € gratuits à l’ouverture d’un compte – https://cloud.google.com/pricing/free?hl=fr
  • 11. VIE D’UNE APPLICATION1 2 - F A C T O R S P R O O F
  • 13.
  • 14. CODE • GIT • MR • PR • Collaboration • Diff
  • 15. BUILD / TESTS • Build • Syntax Check • Tests Unitaires • Qualité du code • Tests de charge
  • 16. DEPLOY • Plus complexe que cela • Review Apps • Environments – Review – Staging – Canary – Production • S’interface très bien avec Gitlab (Openshift / Rancher / Swarm etc…)
  • 17. EN FAIT … C’EST LE BOBO …
  • 18. AUTODEVOPSI ’ V E G O T T H E P O W E R !
  • 19. AUTO-DEVOPS : CONCEPTS • Template de CI/CD implicite depuis la version 10.0 • Collection d’outils externes et librairie de best-practices CI/CD • Extensible • Personnalisable • Simple  Gain de temps / Argent / compétences
  • 20. AUTO-DEVOPS : DANS LE DÉTAIL • Basé sur K8S et GCE BUILD TESTS CODE DEPLOY HEROKUISH BP CODECLIMATE HELM / TILLER MONITORING PROMETHEUS GITLAB GCE
  • 21. AUTO-DEVOPS : BÉNÉFICES • Capitaliser sur des bests practices définies / recensées par d’autres • Démarrage rapide • Standardisation • Une très bonne base … personnalisable si besoin
  • 22. DÉMO L E T ’ S G O O O O O ! A H N O N AT T E N D S …
  • 23. MARRE DES SLIDES ??? •Une démo réussie = 3 choses – Un plan (mouais …) – Un dieu (celui de la démo) – Une app swag !
  • 24. CECI N’EST PAS UN CHIEN … KAAMELOT TELEGRAM BOT KAABOT
  • 25. MAIS POURQUOI ??? 1. Because MUCH FUN ! 2. Pour capter l’attention 3. Simple à tester 4. Technos parlantes 5. Développements rapides 6. Kaamelot c’est drôle 7. Telegram c’est très bien (et très russe ) https://t.me/KaamelotBot @KaamelotBot
  • 26. THE GEEKY DETAILS • Golang – Telegram Bot Api – http – Prometheus • Redis – Stockage des datas • Docker • Helm Kaabot Redis TG API
  • 27. OK ! ON FAIT QUOI ? • Setup cluster GCE (#DevOps style) • Intégration avec gitlab • Pipeline  Review App • Pipeline  Production • Personnalisation  staging / canary enabled + mode manuel pour la production • Graphs de performances
  • 28.
  • 29. UNDER THE HOOD F O U S TA C A G O U L E !
  • 30. STEPS • Auto Build – Docker build ou Herokuish build • Auto Test – Herokuish – SAST (Ruby oriented) • Auto Code Quality – CodeClimate • Auto Review Apps – Helm • Auto Deploy – Helm • Auto Monitoring – Prometheus
  • 31. BONNES PRATIQUES CODE • Suivre les « codding habits » de votre langage préféré • Dans ce cas Golang – Vendoring avec GB (quelques soucis avec l’autodetection du buildpack) – Ecrire des tests ^^ • Possibilité de créer son propre Buildpack
  • 32. BONNES PRATIQUES CONTAINERS • Healthchecks (si possible fonctionnel) • Indépendance par rapport aux autres container  Fallbacks • Dockerfile à la racine du projet • Docker-compose • Déploiements via minikube pour tests • Helm chart nécessaire si pas Ruby On Rails standard
  • 33. BONNES PRATIQUES DEVOPS • Produire des metrics via les libs promotheus et exposer en http – http://localhost:9102/metrics • Exposez des metrics parlantes et fonctionnelles avec le max de détails – Les graphs sont gratuits ensuite ! • Route53 ou DNS sans « latences »
  • 34. GITLAB • Utilisez la registry gitlab pour push • Staging / canary • Utilisez les variables pour controller: – AUTO_DEVOPS_DOMAIN – CANARY_PRODUCTION_REPLICAS – $ENV_REPLICAS
  • 35. RÉFÉRENCES • https://docs.gitlab.com/ee/topics/autodevops/ • https://devcenter.heroku.com/articles/buildpacks & https://github.com/gliderlabs/herokuish • https://docs.helm.sh/ • https://prometheus.io/docs/introduction/overview/ • https://gitlab.com/gitlab-org/gitlab-ci-yml/blob/master/Auto-DevOps.gitlab-ci.yml • https://gitlab.com/charts/charts.gitlab.io/tree/master/charts/auto-deploy-app
  • 36. CONCLUSIONS • Puissant et rapide à mettre en œuvre • Donne tout de suite de « bonnes habitudes » • Besoin de personnalisation (en partie couvert) • On finit toujours par dupliquer le .gitlab-ci.yml • Mais au moins ca donne une bonne base ! • Quelques soucis – Les secrets – Le pull des images depuis la registry intégrée – Les runners gitlab auto-hebergés

Notes de l'éditeur

  1. - Sondage du public en intro - T-shirts à gagner (pollos hermanos & questions)
  2. Need image build / ship / run
  3. Meilleur titre ?
  4. Rechercher des infos sur codeclimate et sur heroku buildpacks
  5. Verifier la version précise
  6. Photo de chien marrant + transition