SlideShare une entreprise Scribd logo

Organiser son CI/CD - présentation

1. Concepts fondamentaux 2. Dépôt typique Python 3. Modalités de build 4. Organisation totale 5. Négocier les versions 6. Ajuster les coûts 7. Pages blanches

1  sur  8
Télécharger pour lire hors ligne
Ou comment diviser par 18 le coût de la chaîne CI/CD…
Julien Garderon – juin 2021
Sommaire
—
Dépôt typique Python (ex.)
Modalités de build
Organisation totale
Négocier les versions
Ajuster les coûts
Page blanche
Concepts fondamentaux
Python
C
Monde « Java »
Javascript Typescript
LISP (CL)
Forth
Abstraction
Code
machine
Code
pseudo-machine
Bytecode
Interprétation
2
1
1 : Compilation (changement d’abstraction ; ex. compilation du C vers du code machine)
2 : Transcompilation (changement de format d’abstraction ; ex. transcompilation de Typescript vers du
Javascript)
=> Exemple d’un changement de langage : procédural vers fonctionnel ; changement syntaxique entre des
versions, etc.
Concepts de « construction », « compilation », etc.
« Un compilateur source à source,
transpileur ou transcompilateur est
un type de compilateur qui prend le
code source d'un langage de
programmation et le compile dans
un autre langage de
programmation. Un compilateur
source-à-source opère sur deux
langages avec approximativement
le même niveau d'abstraction,
alors qu'un compilateur traditionnel
compile un langage de haut niveau
vers un langage de bas niveau. »
– Wikipédia, Compilateur source à
source
Format
le « grand flou » entre la pure interprétation et le code machine
Bas niveau Haut niveau
Dépôt Git
(avec code Python)
Registre
PIP
Dépôt typique python
Étape 1 : test statique
Étape 2 : test dynamique
Étape 3 : création de la doc
Étape 4 : création de l’artefact PIP
Étape 5 : enregistrement auprès du registre
Chaîne de
construction
d’un élément
Étapes « qualité »
Étapes « connaissance »
(dont génération des graphiques
avec PlantUML, Kroki, etc.)
Étapes « mise à disposition »
! (alerte de fin : web hook)
et
Module 1
Module 2
Applicatif
Installateur
Déploiement
2 2’
Module 1 Module 2 Applicatif InstallateurDéploiement
1 1’
Ex. 1 : Chaîne unique (« intégrée »)
Ex. 2 : Chaînes multiples
Modalités de build
Runner plus puissant
(max du besoin sur la
chaîne) ; gérer
davantage les
branches ; créer des
bypass
Adapter chaque runner à
sa tâche ; tests locaux ;
optimiser le « time to
execute » ; gérer
finement les versions
On prend le max de la construction
(car parallélisation)
Exemple ici d’un projet d’applicatif
Python avec deux modules, un corps
principal sous le format d’un package
et un installateur (.deb). L’ensemble
est fourni sous le format d’une image
Docker, pour être utilisé dans un
orchestrateur type Kubernetes
Dépôt module 1
Dépôt module 2
Dépôt applicatif
Dépôt de déploiement
Dépôt d’installateur
Registre
PIP
Registre
DEB
Registre
Conteneur
Registre
documentation
Orchestrateur
1
2 3
4
Organisation totale
Un dépôt
= un
sous-projet
L’organisation du projet peut impacter l’organisation
des dépôts – et inversement (ex. classique entre
un projet monolithique vs un projet multiple sous le
format de micro-services). Il doit rester une
cohérence d’ensemble
v1
Dépôt module 1 Dépôt module 2 Dépôt applicatif Dépôt de déploiement
Dépôt d’installateur
v1
v2
v3
v4
v2
v3
v4
v5
v6
v1
v2
v3
v4
v5
v6
v7
v8
v1
v2
v3
v4
(origine)
Instant « T1 » => déploiement v(g) 1
Ex. dernière version dispo.
●
Module 1 = v1
●
Module 2 = v2
●
App = v2
●
Installateur = v1
Instant « T2 » => déploiement v(g) 2 à 4
Ex. fixer une version
●
Module 1 = v2
●
Module 2 = v3
●
App = v5 à v7 suivant
●
Installateur = v3
Suivant la date de livraison, pour une
même version « v3 » de mon installateur,
je livre en réalité 3 images différentes
pour le « run »
Négocier les versions
Temps

Recommandé

Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFEDonia Hammami
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)safwenbenfredj
 
296 pages management support cours gestion projet + exercices + outils + arti...
296 pages management support cours gestion projet + exercices + outils + arti...296 pages management support cours gestion projet + exercices + outils + arti...
296 pages management support cours gestion projet + exercices + outils + arti...Olivier Coulibaly
 

Contenu connexe

Tendances

Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantALTIC Altic
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesJean-Marc Dupont
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logicielJean-Paul CARMONA
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPTriyadadva
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesStéphane Di Cioccio
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueVincent Composieux
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
 
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxanisanima1
 
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...Michel-Marie Maudet
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - PrésentationDavid RIEHL
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieMohammed Amine Mostefai
 
Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Ayed CHOKRI
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
 

Tendances (20)

Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPT
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequences
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
DEVOPS
DEVOPSDEVOPS
DEVOPS
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
 
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentatio...
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )Gestion des Projets des Fin d'etudes ( Version Alpha )
Gestion des Projets des Fin d'etudes ( Version Alpha )
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 

Similaire à Organiser son CI/CD - présentation

Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxThomasParaiso1
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...Publicis Sapient Engineering
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérienceKhanh Maudoux
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreMicrosoft
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfHamida Rebai Trabelsi
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp FrGregory Renard
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
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
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Parischristophep21
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Microsoft
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 

Similaire à Organiser son CI/CD - présentation (20)

Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptx
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérience
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Keynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle èreKeynote .NET 2015 : une nouvelle ère
Keynote .NET 2015 : une nouvelle ère
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
 
Introdot Netc Sharp Fr
Introdot Netc Sharp FrIntrodot Netc Sharp Fr
Introdot Netc Sharp Fr
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
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
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 

Plus de Julien Garderon

Audit sécurité - campus CESI Angoulême 2019
Audit sécurité - campus CESI Angoulême 2019 Audit sécurité - campus CESI Angoulême 2019
Audit sécurité - campus CESI Angoulême 2019 Julien Garderon
 
Penser son système d’information, appréhender ses évolutions
Penser son système d’information, appréhender ses évolutions Penser son système d’information, appréhender ses évolutions
Penser son système d’information, appréhender ses évolutions Julien Garderon
 
Penser son Système d’Information, Appréhender ses évolutions
Penser son Système d’Information, Appréhender ses évolutions Penser son Système d’Information, Appréhender ses évolutions
Penser son Système d’Information, Appréhender ses évolutions Julien Garderon
 
"Sauver le TER" en Nouvelle-Aquitaine
"Sauver le TER" en Nouvelle-Aquitaine "Sauver le TER" en Nouvelle-Aquitaine
"Sauver le TER" en Nouvelle-Aquitaine Julien Garderon
 
Parc automobile régional de Poitou-Charentes (2012)
Parc automobile régional de Poitou-Charentes (2012) Parc automobile régional de Poitou-Charentes (2012)
Parc automobile régional de Poitou-Charentes (2012) Julien Garderon
 
Intelligence Politique, renseignement, influence et organisation de l'informa...
Intelligence Politique, renseignement, influence et organisation de l'informa...Intelligence Politique, renseignement, influence et organisation de l'informa...
Intelligence Politique, renseignement, influence et organisation de l'informa...Julien Garderon
 
Lot de document #1 - Budget régional de Poitou-Charentes
Lot de document #1 - Budget régional de Poitou-CharentesLot de document #1 - Budget régional de Poitou-Charentes
Lot de document #1 - Budget régional de Poitou-CharentesJulien Garderon
 
Tract - "Vous avez le droit de savoir !"
Tract - "Vous avez le droit de savoir !" Tract - "Vous avez le droit de savoir !"
Tract - "Vous avez le droit de savoir !" Julien Garderon
 
"Le milliard de promesses irréalisées"
"Le milliard de promesses irréalisées" "Le milliard de promesses irréalisées"
"Le milliard de promesses irréalisées" Julien Garderon
 

Plus de Julien Garderon (9)

Audit sécurité - campus CESI Angoulême 2019
Audit sécurité - campus CESI Angoulême 2019 Audit sécurité - campus CESI Angoulême 2019
Audit sécurité - campus CESI Angoulême 2019
 
Penser son système d’information, appréhender ses évolutions
Penser son système d’information, appréhender ses évolutions Penser son système d’information, appréhender ses évolutions
Penser son système d’information, appréhender ses évolutions
 
Penser son Système d’Information, Appréhender ses évolutions
Penser son Système d’Information, Appréhender ses évolutions Penser son Système d’Information, Appréhender ses évolutions
Penser son Système d’Information, Appréhender ses évolutions
 
"Sauver le TER" en Nouvelle-Aquitaine
"Sauver le TER" en Nouvelle-Aquitaine "Sauver le TER" en Nouvelle-Aquitaine
"Sauver le TER" en Nouvelle-Aquitaine
 
Parc automobile régional de Poitou-Charentes (2012)
Parc automobile régional de Poitou-Charentes (2012) Parc automobile régional de Poitou-Charentes (2012)
Parc automobile régional de Poitou-Charentes (2012)
 
Intelligence Politique, renseignement, influence et organisation de l'informa...
Intelligence Politique, renseignement, influence et organisation de l'informa...Intelligence Politique, renseignement, influence et organisation de l'informa...
Intelligence Politique, renseignement, influence et organisation de l'informa...
 
Lot de document #1 - Budget régional de Poitou-Charentes
Lot de document #1 - Budget régional de Poitou-CharentesLot de document #1 - Budget régional de Poitou-Charentes
Lot de document #1 - Budget régional de Poitou-Charentes
 
Tract - "Vous avez le droit de savoir !"
Tract - "Vous avez le droit de savoir !" Tract - "Vous avez le droit de savoir !"
Tract - "Vous avez le droit de savoir !"
 
"Le milliard de promesses irréalisées"
"Le milliard de promesses irréalisées" "Le milliard de promesses irréalisées"
"Le milliard de promesses irréalisées"
 

Dernier

Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...
Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...
Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...Institut de l'Elevage - Idele
 
Présentation de la station de Trévarez - 20 Février 2024
Présentation de la station de Trévarez - 20 Février 2024Présentation de la station de Trévarez - 20 Février 2024
Présentation de la station de Trévarez - 20 Février 2024Institut de l'Elevage - Idele
 
Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone
Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone
Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone Institut de l'Elevage - Idele
 
Rapport de fin d'étude en sur le dimensionnement solaire .pdf
Rapport de fin d'étude en sur le dimensionnement solaire .pdfRapport de fin d'étude en sur le dimensionnement solaire .pdf
Rapport de fin d'étude en sur le dimensionnement solaire .pdfZakaria156221
 
Journée Technique Trévarez - 20 février 2024 - Atelier 3 génisses
Journée Technique Trévarez - 20 février 2024 - Atelier 3 génissesJournée Technique Trévarez - 20 février 2024 - Atelier 3 génisses
Journée Technique Trévarez - 20 février 2024 - Atelier 3 génissesInstitut de l'Elevage - Idele
 
Journée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiques
Journée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiquesJournée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiques
Journée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiquesInstitut de l'Elevage - Idele
 
Journée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projets
Journée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projetsJournée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projets
Journée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projetsInstitut de l'Elevage - Idele
 

Dernier (7)

Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...
Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...
Journée Technique Trévarez - 20 février 2024 - Atelier 2 Réduire l’âge au vêl...
 
Présentation de la station de Trévarez - 20 Février 2024
Présentation de la station de Trévarez - 20 Février 2024Présentation de la station de Trévarez - 20 Février 2024
Présentation de la station de Trévarez - 20 Février 2024
 
Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone
Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone
Journée Technique Trévarez - 20 février 2024 - Atelier 1 système bas carbone
 
Rapport de fin d'étude en sur le dimensionnement solaire .pdf
Rapport de fin d'étude en sur le dimensionnement solaire .pdfRapport de fin d'étude en sur le dimensionnement solaire .pdf
Rapport de fin d'étude en sur le dimensionnement solaire .pdf
 
Journée Technique Trévarez - 20 février 2024 - Atelier 3 génisses
Journée Technique Trévarez - 20 février 2024 - Atelier 3 génissesJournée Technique Trévarez - 20 février 2024 - Atelier 3 génisses
Journée Technique Trévarez - 20 février 2024 - Atelier 3 génisses
 
Journée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiques
Journée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiquesJournée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiques
Journée Technique Trévarez - 20 février 2024 - Atelier 4 leviers agronomiques
 
Journée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projets
Journée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projetsJournée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projets
Journée Technique Trévarez - 20 février 2024 - Atelier 5 groupes-projets
 

Organiser son CI/CD - présentation

  • 1. Ou comment diviser par 18 le coût de la chaîne CI/CD… Julien Garderon – juin 2021 Sommaire — Dépôt typique Python (ex.) Modalités de build Organisation totale Négocier les versions Ajuster les coûts Page blanche Concepts fondamentaux
  • 2. Python C Monde « Java » Javascript Typescript LISP (CL) Forth Abstraction Code machine Code pseudo-machine Bytecode Interprétation 2 1 1 : Compilation (changement d’abstraction ; ex. compilation du C vers du code machine) 2 : Transcompilation (changement de format d’abstraction ; ex. transcompilation de Typescript vers du Javascript) => Exemple d’un changement de langage : procédural vers fonctionnel ; changement syntaxique entre des versions, etc. Concepts de « construction », « compilation », etc. « Un compilateur source à source, transpileur ou transcompilateur est un type de compilateur qui prend le code source d'un langage de programmation et le compile dans un autre langage de programmation. Un compilateur source-à-source opère sur deux langages avec approximativement le même niveau d'abstraction, alors qu'un compilateur traditionnel compile un langage de haut niveau vers un langage de bas niveau. » – Wikipédia, Compilateur source à source Format le « grand flou » entre la pure interprétation et le code machine Bas niveau Haut niveau
  • 3. Dépôt Git (avec code Python) Registre PIP Dépôt typique python Étape 1 : test statique Étape 2 : test dynamique Étape 3 : création de la doc Étape 4 : création de l’artefact PIP Étape 5 : enregistrement auprès du registre Chaîne de construction d’un élément Étapes « qualité » Étapes « connaissance » (dont génération des graphiques avec PlantUML, Kroki, etc.) Étapes « mise à disposition » ! (alerte de fin : web hook) et
  • 4. Module 1 Module 2 Applicatif Installateur Déploiement 2 2’ Module 1 Module 2 Applicatif InstallateurDéploiement 1 1’ Ex. 1 : Chaîne unique (« intégrée ») Ex. 2 : Chaînes multiples Modalités de build Runner plus puissant (max du besoin sur la chaîne) ; gérer davantage les branches ; créer des bypass Adapter chaque runner à sa tâche ; tests locaux ; optimiser le « time to execute » ; gérer finement les versions On prend le max de la construction (car parallélisation) Exemple ici d’un projet d’applicatif Python avec deux modules, un corps principal sous le format d’un package et un installateur (.deb). L’ensemble est fourni sous le format d’une image Docker, pour être utilisé dans un orchestrateur type Kubernetes
  • 5. Dépôt module 1 Dépôt module 2 Dépôt applicatif Dépôt de déploiement Dépôt d’installateur Registre PIP Registre DEB Registre Conteneur Registre documentation Orchestrateur 1 2 3 4 Organisation totale Un dépôt = un sous-projet L’organisation du projet peut impacter l’organisation des dépôts – et inversement (ex. classique entre un projet monolithique vs un projet multiple sous le format de micro-services). Il doit rester une cohérence d’ensemble
  • 6. v1 Dépôt module 1 Dépôt module 2 Dépôt applicatif Dépôt de déploiement Dépôt d’installateur v1 v2 v3 v4 v2 v3 v4 v5 v6 v1 v2 v3 v4 v5 v6 v7 v8 v1 v2 v3 v4 (origine) Instant « T1 » => déploiement v(g) 1 Ex. dernière version dispo. ● Module 1 = v1 ● Module 2 = v2 ● App = v2 ● Installateur = v1 Instant « T2 » => déploiement v(g) 2 à 4 Ex. fixer une version ● Module 1 = v2 ● Module 2 = v3 ● App = v5 à v7 suivant ● Installateur = v3 Suivant la date de livraison, pour une même version « v3 » de mon installateur, je livre en réalité 3 images différentes pour le « run » Négocier les versions Temps
  • 7. Ajuster les coûts Besoin technique : ● chaîne unique : B2-15 ● 0,1169 € / heure ● 42,00 € / mois ● chaînes multiples : B2-7 ● 0,0619 € / heure ● 22 € / mois Durées horaires (hors coût projet, estimations fictives) : ● Construction module 1 : 1 ● Construction module 2 : 0,5 ● Construction applicatif : 0,75 ● Construction installateur : 0,25 ● Déploiement : 1 Durée cumulée pour un déploiement (avec build) : ● Intégrée : 1 + 0.5 + 0.75 + 0.25 + 1 = 3,5 ● Parallèle : max(1 ; 0.5; 0.75; 0.25) + 1 = 2 Coût d’un déploiement : ● Intégrée (B2-15) : ● Location horaire : 3.5 => 4 x 0,1169 = 0,40915 € ● Location mensuelle : 42 € ● Parallèle (B2-7) : ● Location horaire : 2 x 0,0619 = 0,1238 € ● Location mensuelle : 22 € Point de bascule location horaire vs mensuelle : ● Intégrée : 42 / 0,40915 = 102 déploiements ● Parallèle : 22 / 0,1238 = 176 déploiements Nbre de déploiements 1 10 100 125 150 175 200 1000 Intégré (mensuelle) 42 42 42 42 42 42 42 43 Intégré (horaire) 0,40915 4,0915 40,915 51,14375 61,3725 71,60125 81,83 409,15 Parallèle (mensuelle) 22 22 22 22 22 22 22 23 Parallèle (horaire) 0,1238 1,238 12,38 15,475 18,57 21,665 24,76 123,8 1 10 100 125 150 175 200 1000 0 15 30 45 60 75 90 105 120 135 Evol. coûts d'une livraison de version Chaîne de compilation et déploiement, par modalité Intégré (mensuelle) Intégré (horaire) Parallèle (mensuelle) Parallèle (horaire) Nbre de déploiements prévus / mois en € HT 1h x 24 x 30 = 720h ; hors 44,56 € si location horaire (au lieu de 22 € en location mensuelle) => pousse à la location mensuelle