Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
On-Demand CI/CD with Gitlab and Kubernetes
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Julien Vey
November 05, 2020
64
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
On-Demand CI/CD with Gitlab and Kubernetes
Julien Vey
November 05, 2020
More Decks by Julien Vey
See All by Julien Vey
Du Dev à la Prod... et ensuite ?
julienvey
0
53
From CI to CD in a microservice architecture
julienvey
1
100
Terraform
julienvey
1
290
Microplugins with Docker
julienvey
5
1k
OpenStack Solum Presentation
julienvey
0
150
Use OpenStack as a Vagrant Provider
julienvey
0
220
Docker and its Ecosystem
julienvey
8
1.4k
Introducing Solum: Application Development in OpenStack
julienvey
1
890
Docker, Get used to it !
julienvey
6
3.1k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
What the history of the web can teach us about the future of AI
inesmontani
PRO
3
790
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
48k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Odyssey Design
rkendrick25
PRO
2
930
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
BBQ
matthewcrist
90
10k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
470
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
530
Speed Design
sergeychernyshev
33
2.2k
Transcript
On-Demand CI/CD avec + Julien Vey -
Julien Vey Responsable Cloud & DevOps
7 radios nationales 44 radio locales 4 formations musicales ~
4200 salariés ~ 100 métiers différents ...
6 sites web 5 applications mobiles 49 millions de visites/mois
53 millions de podcasts téléchargés/mois ...
Frontend Assets Content Data Message Bus API Streaming API API
API API
API API API API API Message Bus
Une stack technique variée
+ CI/CD
D’où nous venons Hooks Résultats des jobs Gitlab pour la
gestion des repos git Jenkins pour les tests et les déploiements
Pourquoi ça ne marchait pas Context Switching entre Gitlab et
Jenkins Config Jenkins statique, pas de customisation L’équipe “CI/CD” en charge de tous les jobs Temps d’attente en “Queue” importants
Là où on voulait aller Centraliser le code, la CI,
les déploiements Laisser la main aux équipes sur leur workflow de mise en production Fournir les outils et non les process
Le passage sur Kubernetes Gitlab Kubernetes Executor Runner A Runner
B Runner ... Master Job Job Job Job Job Job Job Job Job Job Job Job Job
Le passage sur Kubernetes Nodepool de Spot Instances Job Job
Job Job Job Job Job Job Job Job Job Job Job Spot Spot Classic Classic
Le passage sur Kubernetes Intégration native avec Prometheus, Grafana, AlertManager
Le passage sur Kubernetes En résumé Optimisation des coûts Réduction
des délais d’attente (CI “illimitée”) Monitoring & Supervision Maintenabilité
Problème suivant… build ?
Sur Kubernetes, tout est conteneur docker build n’est pas adapté
à ce modèle Build des images Docker La problématique du build
Docker-in-Docker ? Gitlab Shell runner ? Kaniko ? Build des
images Docker Comment fait-on ?
Kaniko github.com/GoogleContainerTools/kaniko Construction d’images docker “Rootless” Pas besoin de daemon
docker Pas besoin d’être root Peut tourner dans un pod kubernetes
Kaniko avec Gitlab Custom Executor docker build: stage: build tags:
- executor:kaniko variables: DOCKERFILE: path/to/Dockerfile IMAGE_NAME: my-app script: - kaniko build
Où en est-on aujourd’hui ?
Code + CI/CD à un seul endroit
Consommation “ À la demande ”
Consommation “ À la demande ” Très peu de “Pending
Jobs” gitlab
Process vs Tools L’équipe CI/CD est responsable de l’outillage Les
équipes de dev sont responsables de leur workflow de déploiement
Métriques Fréquence de déploiement en production 10/jour avant, 50/jour aujourd’hui
Temps de déploiement sur Kubernetes de 6 minutes à 20s Coût d’hébergement de la CI/CD 70% de gain annuels
Merci Questions ? Julien Vey -