SlideShare une entreprise Scribd logo
LIVRAISON CONTINUE AVEC DRUPAL 7
A R N A U D H U O N
LE SITE DOIT ÊTRE EN LIGNE DANS UN MOIS ET
DEMI, COMMENT ON FAIT ????
ON VA FAIRE ÇA EN AGILE !!!!
MAIS IL FAUT AUSSI FAIRE LE RESTE DU
BACKLOG… COMMENT PEUT-ON LIVRER LES
MODIFICATIONS EN PRODUCTION LE PLUS
SOUVENT POSSIBLE ET SANS RISQUE ?
ON VA FAIRE DE LA LIVRAISON CONTINUE!!!!
EN PRATIQUE, CA CONSISTE EN QUOI ?
CONCEVONS UN « BUILD PIPELINE » POUR D7
Déploiemen
t en
intégration
Déploiemen
t en Pré
Prod
Intégration
continue
Déploiemen
t en
production
Commit
Recette
développeu
r
Recette
métier
Validation
finale
PERMETTEZ MOI D’OUVRIR UNE PARENTHESE
COMMENT PARTAGE T’ON LA CONFIGURATION
CONTENUE DANS LA BASE DE DONNÉES ENTRE
LES POSTES DES DÉVELOPPEURS ET
L’ENVIRONNEMENT DE DÉVELOPPEMENT ?
LA BASE DE DONNÉES DE L’ENVIRONNEMENT
DE DÉVELOPPEMENT DOIT ÊTRE LA RÉFÉRENCE
POUR TOUS LES DÉVELOPPEURS !
ET COMMENT TRANSPOSE T’ON LA
CONFIGURATION D’UN ENVIRONNEMENT À
L’AUTRE ?
ON UTILISE FEATURES ET LES HOOK_UPDATE
Dans notre cas, 7 features :
Pour le contenu
Pour les contextes
Pour les filtres
Pour les images
Pour les menus
Pour les rôles
Pour les vues
JE FERME LA PARENTHESE
EN DETAIL, C’EST QUOI CE PIPELINE ?
Déploiemen
t en
intégration
Déploiemen
t en Pré
Prod
Intégration
continue
Déploiemen
t en
production
Commit
Recette
développeu
r
Recette
métier
Validation
finale
ZOOM SUR L’INTÉGRATION CONTINUE
100% automatisée : Jenkins l’active après chaque commit sur la branche
master de notre GIT
Déploiement en environnement de développement
Validation du déploiement (smoke tests)
Lancement des tests d’intégration automatisés
ZOOM SUR LE DÉPLOIEMENT EN INTÉGRATION
Lancement manuel suite à une validation manuelle des développeurs:
Sauvegarde de la configuration
Commit sur la branche « DEV »
Merge sur la branche « INT »
Déploiement en environnement d’intégration
Validation du déploiement
ZOOM SUR LE DÉPLOIEMENT EN PRÉ-PROD
Lancement manuel suite à une validation manuelle du métier:
Merge sur la branche « PP »
Déploiement en environnement de pré-production
Validation du déploiement
ZOOM SUR LE DÉPLOIEMENT EN PRODUCTION
Lancement manuel par l’équipe de développement suite à un GO du chef de
projet
Merge sur la branche « PROD »
Déploiement en environnement de production
Validation du déploiement
ET LA QUALITÉ DU CODE, ÇA FAIT PAS PARTIE
DU PIPELINE ?
NON, MAIS C’EST PRIS EN COMPTE !
Revue de code automatisé
Revue de code de l’équipe hebdomadaire
Tests de performance en continue
ET TECHNIQUEMENT, ÇA SE TRADUIT COMMENT ?
L’INTÉGRATION CONTINUE
100% automatisée
Déploiement en environnement de développement -> Capistrano
Validation du déploiement ->
PHPUnit + Curl
Tests d’intégration automatisés -> PHPUnit + Curl
LE DÉPLOIEMENT EN INTÉGRATION
Lancement manuel
Sauvegarde de la configuration -> Features Update
Commit sur la branche « DEV » -> Git commit
Merge sur la branche « INT » -> Git merge
Déploiement en environnement d’intégration ->
Capistrano
Validation du déploiement -> PHPUnit
+ Curl
LE DÉPLOIEMENT EN PRÉ-PROD
Lancement manuel
Merge sur la branche « PP » -> Git
merge
Déploiement en environnement de pré-production -> Capistrano
Validation du déploiement -> PHPUnit
+ Curl
LE DÉPLOIEMENT EN PRODUCTION
Lancement manuel par l’équipe de développement suite à un GO du chef de
projet
Merge sur la branche « PROD » -> Git Merge
Déploiement en environnement de production ->
Capistrano
Validation du déploiement ->
PHPUnit + Curl
LA QUALITÉ DU CODE
Revue de code automatisé
-> Coder, LINT, PHPMD, PHPCD
Tests de performances
-> JMETER
QU’EST-CE QU’IL FAIT, CAPISTRANO ?
SUR N SERVEURS EN PARALLÈLE…
Enchainement d’actions sur le gestionnaire de source, le système de
fichiers et sur drupal
- Sauvegarde de l’ancienne version
- Installation des fichiers
- Désactivation des features
- Mise à jour de la base de données (lancement des hook_update) et
réactivation des features
ILS FONT QUOI, LES SMOKE TESTS ?
UNE SUCCESSION DE CURL
La home répond (code HTTP 200)
Pas de bloc d’erreurs Drupal sur la home
Pas d’erreur 404 sur les assets
Les blocs importants sont bien présents
ET COMMENT ON MONITORE TOUT CA ?
Buildwall Jenkins
Envoie de mail à l’échec d’un
job
Page de healthcheck utilisée
par l’exploitant
Courbes d’évolutionde la
qualité et des performances
J’AI L’IMPRESSION QU’IL MANQUE QUELQUE
CHOSE, NON ?
SI ! LES TESTS UNITAIRES !
PAS DE SOLUTION DE T.U. PERTITENTE EN D7
Simpletest non pertinent -> trop lent
Focalisation sur les tests d’intégrations et les revues de code
Pas de selenium : ne fonctionnait pas sur notre site (trop de js)
COMMENT CA S’EST FINI ?
Sortie des mini sites dans les temps
Une MEP par jour pendant les évènements, faite par les développeurs
0 Rollback
Une qualité de code au top
QUE RETENIR ?
Concevez votre pipeline le plus tôt possible !
Maitrisez Git, Drush et Features !
Testez votre pipeline avant la mise en ligne initiale !
Sachez tester de façon pertinente, que soit pour les tests d’intégration et
les smokes test !
Monitorez !
ahuon@octo.com
@arnaudhuon
Livraison continue avec Drupal 7

Contenu connexe

En vedette

2014sessionPara 3
2014sessionPara 32014sessionPara 3
2014sessionPara 3acvq
 
Aspiracion de secrecines a cano-m
Aspiracion de secrecines a cano-mAspiracion de secrecines a cano-m
Aspiracion de secrecines a cano-m
ULADECH - PERU
 
Folleto Final UEFA Europa League Hamburgo 2010 ATLETI - Fulham
Folleto Final UEFA Europa League Hamburgo 2010 ATLETI - FulhamFolleto Final UEFA Europa League Hamburgo 2010 ATLETI - Fulham
Folleto Final UEFA Europa League Hamburgo 2010 ATLETI - Fulham
ATLETISOY
 
Desarrollosruiz
DesarrollosruizDesarrollosruiz
Desarrollosruiz
profelena
 
Brico supresión de olores en aire acondicionado
Brico supresión de olores en aire acondicionadoBrico supresión de olores en aire acondicionado
Brico supresión de olores en aire acondicionado
daxiel
 
Bloque i la enseñanza
Bloque i la enseñanzaBloque i la enseñanza
Bloque i la enseñanza
mirnamartinezs
 
Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...
Salainversion
 
La vasija
La vasijaLa vasija
La vasija
Juan Gonzalez
 
Infirmière spécialisé clinique en soins de réadaptation aux hug fil conduct...
Infirmière spécialisé clinique en soins de réadaptation aux hug   fil conduct...Infirmière spécialisé clinique en soins de réadaptation aux hug   fil conduct...
Infirmière spécialisé clinique en soins de réadaptation aux hug fil conduct...
Réseau Pro Santé
 
Seminario 18/03/11
Seminario 18/03/11Seminario 18/03/11
Seminario 18/03/11
Alejandra Cork
 
Franja Morada
Franja MoradaFranja Morada
Franja Morada
Alessio Bocco
 
Ferrari
FerrariFerrari
Ferrari
gerarjam
 
Estudio De Mercado
Estudio De MercadoEstudio De Mercado
Estudio De Mercado
aerazov
 
Convocatorias Corporativas Efectivas
Convocatorias Corporativas EfectivasConvocatorias Corporativas Efectivas
Convocatorias Corporativas Efectivas
suareal
 
PRESENTACIÓN SHOCKSY
PRESENTACIÓN SHOCKSYPRESENTACIÓN SHOCKSY
PRESENTACIÓN SHOCKSY
jezicayolanda
 
Presentación aldalan centros
Presentación aldalan centrosPresentación aldalan centros
Presentación aldalan centros
Bizkaiaformacion.com
 
Competencias Del Docente..
Competencias Del Docente..Competencias Del Docente..
Competencias Del Docente..
ULADECH - PERU
 
Phpi conceptos
Phpi conceptosPhpi conceptos
Phpi conceptos
nacho saez
 
Piratas Que Operan Como Empresa
Piratas Que Operan Como EmpresaPiratas Que Operan Como Empresa
Piratas Que Operan Como Empresa
UNA
 
Practica 2
Practica 2Practica 2
Practica 2
Yoli
 

En vedette (20)

2014sessionPara 3
2014sessionPara 32014sessionPara 3
2014sessionPara 3
 
Aspiracion de secrecines a cano-m
Aspiracion de secrecines a cano-mAspiracion de secrecines a cano-m
Aspiracion de secrecines a cano-m
 
Folleto Final UEFA Europa League Hamburgo 2010 ATLETI - Fulham
Folleto Final UEFA Europa League Hamburgo 2010 ATLETI - FulhamFolleto Final UEFA Europa League Hamburgo 2010 ATLETI - Fulham
Folleto Final UEFA Europa League Hamburgo 2010 ATLETI - Fulham
 
Desarrollosruiz
DesarrollosruizDesarrollosruiz
Desarrollosruiz
 
Brico supresión de olores en aire acondicionado
Brico supresión de olores en aire acondicionadoBrico supresión de olores en aire acondicionado
Brico supresión de olores en aire acondicionado
 
Bloque i la enseñanza
Bloque i la enseñanzaBloque i la enseñanza
Bloque i la enseñanza
 
Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 14 de diciembre de ...
 
La vasija
La vasijaLa vasija
La vasija
 
Infirmière spécialisé clinique en soins de réadaptation aux hug fil conduct...
Infirmière spécialisé clinique en soins de réadaptation aux hug   fil conduct...Infirmière spécialisé clinique en soins de réadaptation aux hug   fil conduct...
Infirmière spécialisé clinique en soins de réadaptation aux hug fil conduct...
 
Seminario 18/03/11
Seminario 18/03/11Seminario 18/03/11
Seminario 18/03/11
 
Franja Morada
Franja MoradaFranja Morada
Franja Morada
 
Ferrari
FerrariFerrari
Ferrari
 
Estudio De Mercado
Estudio De MercadoEstudio De Mercado
Estudio De Mercado
 
Convocatorias Corporativas Efectivas
Convocatorias Corporativas EfectivasConvocatorias Corporativas Efectivas
Convocatorias Corporativas Efectivas
 
PRESENTACIÓN SHOCKSY
PRESENTACIÓN SHOCKSYPRESENTACIÓN SHOCKSY
PRESENTACIÓN SHOCKSY
 
Presentación aldalan centros
Presentación aldalan centrosPresentación aldalan centros
Presentación aldalan centros
 
Competencias Del Docente..
Competencias Del Docente..Competencias Del Docente..
Competencias Del Docente..
 
Phpi conceptos
Phpi conceptosPhpi conceptos
Phpi conceptos
 
Piratas Que Operan Como Empresa
Piratas Que Operan Como EmpresaPiratas Que Operan Como Empresa
Piratas Que Operan Como Empresa
 
Practica 2
Practica 2Practica 2
Practica 2
 

Similaire à Livraison continue avec Drupal 7

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
Jonathan Martin
 
Devops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.comDevops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.com
antony_guilloteau
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
Emmanuel Hugonnet
 
Jenkins Workflow
Jenkins WorkflowJenkins Workflow
Jenkins Workflow
Jean Detoeuf
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Emmanuel Hugonnet
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
atelier111
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
Jérémie Campari
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualité
Sylvain Leroy
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
rfelden
 
Realworld cd pipelines
Realworld cd pipelines Realworld cd pipelines
Realworld cd pipelines
TREEPTIK
 
Code, ship and run
Code, ship and runCode, ship and run
Code, ship and run
Julien Maitrehenry
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
Quentin Adam
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Benoît Lafontaine
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
Radoine Douhou
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010Lushkah911
 
dev et admin sys : une cohabitation simplifiée
dev et admin sys : une cohabitation simplifiéedev et admin sys : une cohabitation simplifiée
dev et admin sys : une cohabitation simplifiée
Nicolas Silberman
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
Jean-Philippe Briend
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Jean-Philippe Briend
 

Similaire à Livraison continue avec Drupal 7 (20)

20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
 
Devops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.comDevops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.com
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Jenkins Workflow
Jenkins WorkflowJenkins Workflow
Jenkins Workflow
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualité
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
 
Realworld cd pipelines
Realworld cd pipelines Realworld cd pipelines
Realworld cd pipelines
 
Code, ship and run
Code, ship and runCode, ship and run
Code, ship and run
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013Deployer en continu, Benoît Lafontaine, USIEVENT 2013
Deployer en continu, Benoît Lafontaine, USIEVENT 2013
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
Industrialisation bar camp2010
Industrialisation bar camp2010Industrialisation bar camp2010
Industrialisation bar camp2010
 
dev et admin sys : une cohabitation simplifiée
dev et admin sys : une cohabitation simplifiéedev et admin sys : une cohabitation simplifiée
dev et admin sys : une cohabitation simplifiée
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
 

Dernier

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
 
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é
 
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
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
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
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 
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
 

Dernier (9)

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
 
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é
 
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...
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
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)
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 
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'...
 

Livraison continue avec Drupal 7

  • 1. LIVRAISON CONTINUE AVEC DRUPAL 7 A R N A U D H U O N
  • 2.
  • 3. LE SITE DOIT ÊTRE EN LIGNE DANS UN MOIS ET DEMI, COMMENT ON FAIT ????
  • 4. ON VA FAIRE ÇA EN AGILE !!!!
  • 5. MAIS IL FAUT AUSSI FAIRE LE RESTE DU BACKLOG… COMMENT PEUT-ON LIVRER LES MODIFICATIONS EN PRODUCTION LE PLUS SOUVENT POSSIBLE ET SANS RISQUE ?
  • 6. ON VA FAIRE DE LA LIVRAISON CONTINUE!!!!
  • 7. EN PRATIQUE, CA CONSISTE EN QUOI ?
  • 8. CONCEVONS UN « BUILD PIPELINE » POUR D7 Déploiemen t en intégration Déploiemen t en Pré Prod Intégration continue Déploiemen t en production Commit Recette développeu r Recette métier Validation finale
  • 9. PERMETTEZ MOI D’OUVRIR UNE PARENTHESE
  • 10. COMMENT PARTAGE T’ON LA CONFIGURATION CONTENUE DANS LA BASE DE DONNÉES ENTRE LES POSTES DES DÉVELOPPEURS ET L’ENVIRONNEMENT DE DÉVELOPPEMENT ?
  • 11. LA BASE DE DONNÉES DE L’ENVIRONNEMENT DE DÉVELOPPEMENT DOIT ÊTRE LA RÉFÉRENCE POUR TOUS LES DÉVELOPPEURS !
  • 12. ET COMMENT TRANSPOSE T’ON LA CONFIGURATION D’UN ENVIRONNEMENT À L’AUTRE ?
  • 13. ON UTILISE FEATURES ET LES HOOK_UPDATE Dans notre cas, 7 features : Pour le contenu Pour les contextes Pour les filtres Pour les images Pour les menus Pour les rôles Pour les vues
  • 14. JE FERME LA PARENTHESE
  • 15. EN DETAIL, C’EST QUOI CE PIPELINE ?
  • 16. Déploiemen t en intégration Déploiemen t en Pré Prod Intégration continue Déploiemen t en production Commit Recette développeu r Recette métier Validation finale
  • 17. ZOOM SUR L’INTÉGRATION CONTINUE 100% automatisée : Jenkins l’active après chaque commit sur la branche master de notre GIT Déploiement en environnement de développement Validation du déploiement (smoke tests) Lancement des tests d’intégration automatisés
  • 18. ZOOM SUR LE DÉPLOIEMENT EN INTÉGRATION Lancement manuel suite à une validation manuelle des développeurs: Sauvegarde de la configuration Commit sur la branche « DEV » Merge sur la branche « INT » Déploiement en environnement d’intégration Validation du déploiement
  • 19. ZOOM SUR LE DÉPLOIEMENT EN PRÉ-PROD Lancement manuel suite à une validation manuelle du métier: Merge sur la branche « PP » Déploiement en environnement de pré-production Validation du déploiement
  • 20. ZOOM SUR LE DÉPLOIEMENT EN PRODUCTION Lancement manuel par l’équipe de développement suite à un GO du chef de projet Merge sur la branche « PROD » Déploiement en environnement de production Validation du déploiement
  • 21. ET LA QUALITÉ DU CODE, ÇA FAIT PAS PARTIE DU PIPELINE ?
  • 22. NON, MAIS C’EST PRIS EN COMPTE ! Revue de code automatisé Revue de code de l’équipe hebdomadaire Tests de performance en continue
  • 23. ET TECHNIQUEMENT, ÇA SE TRADUIT COMMENT ?
  • 24. L’INTÉGRATION CONTINUE 100% automatisée Déploiement en environnement de développement -> Capistrano Validation du déploiement -> PHPUnit + Curl Tests d’intégration automatisés -> PHPUnit + Curl
  • 25. LE DÉPLOIEMENT EN INTÉGRATION Lancement manuel Sauvegarde de la configuration -> Features Update Commit sur la branche « DEV » -> Git commit Merge sur la branche « INT » -> Git merge Déploiement en environnement d’intégration -> Capistrano Validation du déploiement -> PHPUnit + Curl
  • 26. LE DÉPLOIEMENT EN PRÉ-PROD Lancement manuel Merge sur la branche « PP » -> Git merge Déploiement en environnement de pré-production -> Capistrano Validation du déploiement -> PHPUnit + Curl
  • 27. LE DÉPLOIEMENT EN PRODUCTION Lancement manuel par l’équipe de développement suite à un GO du chef de projet Merge sur la branche « PROD » -> Git Merge Déploiement en environnement de production -> Capistrano Validation du déploiement -> PHPUnit + Curl
  • 28. LA QUALITÉ DU CODE Revue de code automatisé -> Coder, LINT, PHPMD, PHPCD Tests de performances -> JMETER
  • 30. SUR N SERVEURS EN PARALLÈLE… Enchainement d’actions sur le gestionnaire de source, le système de fichiers et sur drupal - Sauvegarde de l’ancienne version - Installation des fichiers - Désactivation des features - Mise à jour de la base de données (lancement des hook_update) et réactivation des features
  • 31. ILS FONT QUOI, LES SMOKE TESTS ?
  • 32. UNE SUCCESSION DE CURL La home répond (code HTTP 200) Pas de bloc d’erreurs Drupal sur la home Pas d’erreur 404 sur les assets Les blocs importants sont bien présents
  • 33. ET COMMENT ON MONITORE TOUT CA ?
  • 34. Buildwall Jenkins Envoie de mail à l’échec d’un job Page de healthcheck utilisée par l’exploitant Courbes d’évolutionde la qualité et des performances
  • 35. J’AI L’IMPRESSION QU’IL MANQUE QUELQUE CHOSE, NON ?
  • 36. SI ! LES TESTS UNITAIRES !
  • 37. PAS DE SOLUTION DE T.U. PERTITENTE EN D7 Simpletest non pertinent -> trop lent Focalisation sur les tests d’intégrations et les revues de code Pas de selenium : ne fonctionnait pas sur notre site (trop de js)
  • 39. Sortie des mini sites dans les temps Une MEP par jour pendant les évènements, faite par les développeurs 0 Rollback Une qualité de code au top
  • 41. Concevez votre pipeline le plus tôt possible ! Maitrisez Git, Drush et Features ! Testez votre pipeline avant la mise en ligne initiale ! Sachez tester de façon pertinente, que soit pour les tests d’intégration et les smokes test ! Monitorez !