Your SlideShare is downloading. ×
0
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Livraison continue avec Drupal 7
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Livraison continue avec Drupal 7

901

Published on

Session présenté au Drupal Camp 2013

Session présenté au Drupal Camp 2013

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
901
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. LIVRAISON CONTINUE AVEC DRUPAL 7 A R N A U D H U O N
  2. LE SITE DOIT ÊTRE EN LIGNE DANS UN MOIS ET DEMI, COMMENT ON FAIT ????
  3. ON VA FAIRE ÇA EN AGILE !!!!
  4. MAIS IL FAUT AUSSI FAIRE LE RESTE DU BACKLOG… COMMENT PEUT-ON LIVRER LES MODIFICATIONS EN PRODUCTION LE PLUS SOUVENT POSSIBLE ET SANS RISQUE ?
  5. ON VA FAIRE DE LA LIVRAISON CONTINUE!!!!
  6. EN PRATIQUE, CA CONSISTE EN QUOI ?
  7. 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
  8. PERMETTEZ MOI D’OUVRIR UNE PARENTHESE
  9. 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 ?
  10. LA BASE DE DONNÉES DE L’ENVIRONNEMENT DE DÉVELOPPEMENT DOIT ÊTRE LA RÉFÉRENCE POUR TOUS LES DÉVELOPPEURS !
  11. ET COMMENT TRANSPOSE T’ON LA CONFIGURATION D’UN ENVIRONNEMENT À L’AUTRE ?
  12. 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
  13. JE FERME LA PARENTHESE
  14. EN DETAIL, C’EST QUOI CE PIPELINE ?
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. ET LA QUALITÉ DU CODE, ÇA FAIT PAS PARTIE DU PIPELINE ?
  21. NON, MAIS C’EST PRIS EN COMPTE ! Revue de code automatisé Revue de code de l’équipe hebdomadaire Tests de performance en continue
  22. ET TECHNIQUEMENT, ÇA SE TRADUIT COMMENT ?
  23. 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
  24. 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
  25. 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
  26. 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
  27. LA QUALITÉ DU CODE Revue de code automatisé -> Coder, LINT, PHPMD, PHPCD Tests de performances -> JMETER
  28. QU’EST-CE QU’IL FAIT, CAPISTRANO ?
  29. 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
  30. ILS FONT QUOI, LES SMOKE TESTS ?
  31. 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
  32. ET COMMENT ON MONITORE TOUT CA ?
  33. 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
  34. J’AI L’IMPRESSION QU’IL MANQUE QUELQUE CHOSE, NON ?
  35. SI ! LES TESTS UNITAIRES !
  36. 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)
  37. COMMENT CA S’EST FINI ?
  38. 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
  39. QUE RETENIR ?
  40. 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 !
  41. ahuon@octo.com @arnaudhuon

×