SlideShare une entreprise Scribd logo
1  sur  37
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 CoreMicrosoft
 
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 2012Alexandre Morgaut
 
Déploiement d'applications pour Kubernetes
Déploiement d'applications pour KubernetesDéploiement d'applications pour Kubernetes
Déploiement d'applications pour KubernetesSmaï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 natifOlivier 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 JSYann Duval
 
Présentation de Kirby CMS
Présentation de Kirby CMSPrésentation de Kirby CMS
Présentation de Kirby CMSGilles Vauvarin
 
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderneGab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderne
Gab2015 aurelien regat-barrel_des applicationsclientesportablesgraceaucppmoderneVincent 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
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeBenoit 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 lyonClement 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.pdfboulonvert
 
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 FaureParis 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.1Microsoft
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBContent 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/17Laurent 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 GitlabJulien Wittouck
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011OSInet
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
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 7OSInet
 
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-2012Chipway
 
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 ExpertsMarc-Eric LaRocque
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE
 

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

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 marseilleFrederic 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-marseilleFrederic Leger
 
KubeTrain sponsor prospectus Aix-Marseille
KubeTrain sponsor prospectus Aix-MarseilleKubeTrain sponsor prospectus Aix-Marseille
KubeTrain sponsor prospectus Aix-MarseilleFrederic 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 2023Frederic Leger
 
Level up your ci-cd experience
Level up your ci-cd experienceLevel up your ci-cd experience
Level up your ci-cd experienceFrederic 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 2023Frederic 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 2023Frederic 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 2023Frederic Leger
 
meetup devops 2023-06-15
meetup devops 2023-06-15meetup devops 2023-06-15
meetup devops 2023-06-15Frederic 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/23Frederic 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 AprilFrederic Leger
 
2023-02-02 - Marvelous March
2023-02-02 - Marvelous March2023-02-02 - Marvelous March
2023-02-02 - Marvelous MarchFrederic Leger
 
2023-01-24 - dry january.pptx
2023-01-24 - dry january.pptx2023-01-24 - dry january.pptx
2023-01-24 - dry january.pptxFrederic Leger
 
2022-11-22 - November Rain
2022-11-22 - November Rain2022-11-22 - November Rain
2022-11-22 - November RainFrederic 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/2022Frederic 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 falcoFrederic Leger
 
Voyage en terre du multi-cloud
Voyage en terre du multi-cloudVoyage en terre du multi-cloud
Voyage en terre du multi-cloudFrederic 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 ServiceFrederic Leger
 

Plus de Frederic Leger (18)

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
 

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