SlideShare une entreprise Scribd logo
1  sur  35
Drupal Café
21-11-2012

About Continuous Integration
(and why you should use it)
Introduction

 • Baris Wanschers
 • Co-owner of LimoenGroen
 • Chairman of Stichting Drupal Nederland
Agenda

• The need for Continuous Integration
• How we use it
• Technical overview
• Demo
Show hands

• Who uses version control?
Show hands

• Who uses version control?
• Who uses a DTAP (or DTP)?
Show hands

• Who uses version control?
• Who uses a DTAP (or DTP)?
• Who uses Features / Context?
Show hands

• Who uses version control?
• Who uses a DTAP (or DTP)?
• Who uses Features / Context?
• Who applies Continuous Integration?
We’ve all been there

 • Implementing a new feature? Involves
   putting the site in maintenance for hours
We’ve all been there

 • Implementing a new feature? Involves
   putting the site in maintenance for hours

 • Re-clicking all you’ve done local, on Prod
We’ve all been there

 • Implementing a new feature? Involves
   putting the site in maintenance for hours

 • Re-clicking all you’ve done local, on Prod
 • The client accepts changes on ACC, but
   they still end up different on PROD
We’ve all been there

 • Implementing a new feature? Involves
   putting the site in maintenance for hours

 • Re-clicking all you’ve done local, on Prod
 • The client accepts changes on ACC, but
   they still end up different on PROD

 • In the end: Frustrated Clients
What is it?

"In software engineering, continuous integration (CI)
implements continuous processes of applying quality
control — small pieces of effort, applied frequently.”




                                            Source: Wikipedia
What is it?

"In software engineering, continuous integration (CI)
implements continuous processes of applying quality
control — small pieces of effort, applied frequently.”
“Continuous integration aims to improve the quality of
software, and to reduce the time taken to deliver it, by
replacing the traditional practice of applying quality
control after completing all development."

                                            Source: Wikipedia
What’s the advantage?

 • Direct feedback if it cannot be deployed
   Got e-mail? Back to the drawing board.
What’s the advantage?

 • Direct feedback if it cannot be deployed
   Got e-mail? Back to the drawing board.


 • In control when going live
   Deployed to Test? Then it will work on Production as well.
What’s the advantage?

 • Direct feedback if it cannot be deployed
   Got e-mail? Back to the drawing board.


 • In control when going live
   Deployed to Test? Then it will work on Production as well.


 • Continue developing while CI tool runs
   No need to wait.
What’s the advantage?

 • Direct feedback if it cannot be deployed
   Got e-mail? Back to the drawing board.


 • In control when going live
   Deployed to Test? Then it will work on Production as well.


 • Continue developing while CI tool runs
   No need to wait.


 • Integration with Issue Management
   Update issues by committing your change.
How we use it




    D     T     A   P
How we use it
                Repository
                • develop
                • master




    D     T             A    P
How we use it
                Repository
                • develop
                • master




    D     T             A    P

                                      DB + Files
                             (drush sql-sync / drush rsync)
How we use it
                    Repository
                    • develop
                    • master




        Code       Code          Code




    D          T            A           P

                                                 DB + Files
                                        (drush sql-sync / drush rsync)
How we use it
                            Repository
                            • develop
                            • master
       commit -m
 “Applied X. Fixes #123.”

         develop or
        master/[TAG]




       D               T            A    P
How we use it
                            Repository
                            • develop    Service hooks
                            • master
       commit -m
 “Applied X. Fixes #123.”

         develop or
        master/[TAG]




       D               T            A           P
How we use it
                                  Repository
                                  • develop    Service hooks
                                  • master
       commit -m
 “Applied X. Fixes #123.”

         develop or
        master/[TAG]    develop




       D               T                  A           P
How we use it
                                  Repository
                                  • develop    Service hooks
                                  • master
       commit -m
 “Applied X. Fixes #123.”                                      manual start

         develop or
        master/[TAG]    develop




       D               T                  A           P
How we use it
                                  Repository
                                  • develop      Service hooks
                                  • master
       commit -m
 “Applied X. Fixes #123.”                                        manual start

         develop or
        master/[TAG]    develop    develop




       D               T                     A          P
How we use it
                                  Repository
                                  • develop      Service hooks
                                  • master
       commit -m
 “Applied X. Fixes #123.”                                        manual start

         develop or
        master/[TAG]    develop    develop       master/[TAG]




       D               T                     A            P
How we use it
                                  Repository
                                  • develop      Service hooks
                                  • master
       commit -m
 “Applied X. Fixes #123.”                                        manual start

         develop or
        master/[TAG]    develop    develop       master/[TAG]




       D               T                     A            P
Technical set-up
DEV environment           Jenkins                               Git
• LAMP                    • Tomcat                              • GitHub/BitBucket
• Git                     • Apache (as proxy for Tomcat)        • Service Hooks
• Git flow                 • Jenkins plugins:                    • Service user (read
• Drush                       • Git                             only) + ssh key
• Drush alias files            • Github
                              • Git parameter
                          • Jenkins jobs per project / target   Redmine
                          environment                           • LAMP
Target envs (T/A/P)
                          • Shell scripts:                      • Redmine plugin:
• LAMP
                              • make-backup.sh                      • Github webhook
• Drush
                              • update-code.sh
• SSH key Jenkins user
                              • apply-updates.sh
in site user authorized
keys
Demo

• Issue in Redmine
  ”Replace latest blogs in footer with single teaser”
Demo

• Issue in Redmine
  ”Replace latest blogs in footer with single teaser”


• Fix on dev & Update Feature
Demo

• Issue in Redmine
  ”Replace latest blogs in footer with single teaser”


• Fix on dev & Update Feature
• Commit with Issue number
Demo

• Issue in Redmine
  ”Replace latest blogs in footer with single teaser”


• Fix on dev & Update Feature
• Commit with Issue number
• Champagne!
Future improvements

• Features does not work on all modules
• Automated tests with Jenkins
  SimpleTest / Behat / Selennium


• Automated roll-back on errors
• Set monitoring to ‘scheduled downtime’ on
  deployments
Questions?

• baris@limoengroen.nl
• www.limoengroen.nl
  www.bariswanschers.com

• @BarisW on Drupal.org / IRC / Twitter

Contenu connexe

Tendances

Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletestlyricnz
 
Drupal development, deployment, and automation with Puppet
Drupal development, deployment, and automation with PuppetDrupal development, deployment, and automation with Puppet
Drupal development, deployment, and automation with PuppetPuppet
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...Puppet
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineSlawa Giterman
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsPublicis Sapient Engineering
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Edureka!
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an IntroductionSanjeev Sharma
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Puppet
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentDan Stine
 
Continuous deployment-at-flipkart
Continuous deployment-at-flipkartContinuous deployment-at-flipkart
Continuous deployment-at-flipkartPankaj Kaushal
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CloudBees
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsMandi Walls
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefNathen Harvey
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in DjangoKevin Harvey
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Ohad Basan
 
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014Puppet
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyMike Brittain
 
Compliance Automation Workshop
Compliance Automation WorkshopCompliance Automation Workshop
Compliance Automation WorkshopChef
 

Tendances (20)

Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletest
 
Drupal development, deployment, and automation with Puppet
Drupal development, deployment, and automation with PuppetDrupal development, deployment, and automation with Puppet
Drupal development, deployment, and automation with Puppet
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 
Jenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated DeploymentJenkins and Chef: Infrastructure CI and Automated Deployment
Jenkins and Chef: Infrastructure CI and Automated Deployment
 
Continuous deployment-at-flipkart
Continuous deployment-at-flipkartContinuous deployment-at-flipkart
Continuous deployment-at-flipkart
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
At Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in OperationsAt Your Service: Using Jenkins in Operations
At Your Service: Using Jenkins in Operations
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
 
Automated Drupal deployment with Git and Capistrano
Automated Drupal deployment with Git and CapistranoAutomated Drupal deployment with Git and Capistrano
Automated Drupal deployment with Git and Capistrano
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
The Seven Habits of Highly Effective Puppet Users - PuppetConf 2014
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
Compliance Automation Workshop
Compliance Automation WorkshopCompliance Automation Workshop
Compliance Automation Workshop
 

Similaire à Why You Should Use Continuous Integration

My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsGR8Conf
 
Cypress report
Cypress reportCypress report
Cypress reportAdarsh
 
PaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpPaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpNathan Handler
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Mike Willbanks
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleMike Willbanks
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week Indiaexortech
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 
DevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppDevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppB1 Systems GmbH
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationMaruti Gollapudi
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftYaniv cohen
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 
Everything as Code with Azure DevOps
Everything as Code with Azure DevOpsEverything as Code with Azure DevOps
Everything as Code with Azure DevOpsVenura Athukorala
 
Seminaire od devops 10traps 1.0
Seminaire od devops 10traps 1.0Seminaire od devops 10traps 1.0
Seminaire od devops 10traps 1.0Alain Delafosse
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-Ting Cheng
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 

Similaire à Why You Should Use Continuous Integration (20)

My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
Devops
DevopsDevops
Devops
 
Cypress report
Cypress reportCypress report
Cypress report
 
PaaSTA: Running applications at Yelp
PaaSTA: Running applications at YelpPaaSTA: Running applications at Yelp
PaaSTA: Running applications at Yelp
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012Gearman - Northeast PHP 2012
Gearman - Northeast PHP 2012
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Gearman: A Job Server made for Scale
Gearman: A Job Server made for ScaleGearman: A Job Server made for Scale
Gearman: A Job Server made for Scale
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
DevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppDevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetApp
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Everything as Code with Azure DevOps
Everything as Code with Azure DevOpsEverything as Code with Azure DevOps
Everything as Code with Azure DevOps
 
End_to_End_DevOps.pptx
End_to_End_DevOps.pptxEnd_to_End_DevOps.pptx
End_to_End_DevOps.pptx
 
Seminaire od devops 10traps 1.0
Seminaire od devops 10traps 1.0Seminaire od devops 10traps 1.0
Seminaire od devops 10traps 1.0
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 

Plus de LimoenGroen

Managing Drupal interface translation
Managing Drupal interface translationManaging Drupal interface translation
Managing Drupal interface translationLimoenGroen
 
Drupal Quick wins for an accessible website
Drupal Quick wins for an accessible websiteDrupal Quick wins for an accessible website
Drupal Quick wins for an accessible websiteLimoenGroen
 
Open drupal DrupalCamp Gent 2018
Open drupal DrupalCamp Gent 2018Open drupal DrupalCamp Gent 2018
Open drupal DrupalCamp Gent 2018LimoenGroen
 
24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)
24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)
24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)LimoenGroen
 
The Myths, Musts and Migraines of Migrations - DrupalJam 2018
The Myths, Musts and Migraines of Migrations - DrupalJam 2018The Myths, Musts and Migraines of Migrations - DrupalJam 2018
The Myths, Musts and Migraines of Migrations - DrupalJam 2018LimoenGroen
 
Being a better mentor
Being a better mentorBeing a better mentor
Being a better mentorLimoenGroen
 
Panels in Drupal: een EYE-opener
Panels in Drupal: een EYE-openerPanels in Drupal: een EYE-opener
Panels in Drupal: een EYE-openerLimoenGroen
 
Drupal is Traag: handvatten voor een snelle site.
Drupal is Traag: handvatten voor een snelle site.Drupal is Traag: handvatten voor een snelle site.
Drupal is Traag: handvatten voor een snelle site.LimoenGroen
 
Front-end Performance in Drupal
Front-end Performance in DrupalFront-end Performance in Drupal
Front-end Performance in DrupalLimoenGroen
 
Wat is Drupal? Over Drupal in musea.
Wat is Drupal? Over Drupal in musea.Wat is Drupal? Over Drupal in musea.
Wat is Drupal? Over Drupal in musea.LimoenGroen
 

Plus de LimoenGroen (10)

Managing Drupal interface translation
Managing Drupal interface translationManaging Drupal interface translation
Managing Drupal interface translation
 
Drupal Quick wins for an accessible website
Drupal Quick wins for an accessible websiteDrupal Quick wins for an accessible website
Drupal Quick wins for an accessible website
 
Open drupal DrupalCamp Gent 2018
Open drupal DrupalCamp Gent 2018Open drupal DrupalCamp Gent 2018
Open drupal DrupalCamp Gent 2018
 
24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)
24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)
24Kitchen, the no. 1 platform for food lovers (Showcase LimoenGroen)
 
The Myths, Musts and Migraines of Migrations - DrupalJam 2018
The Myths, Musts and Migraines of Migrations - DrupalJam 2018The Myths, Musts and Migraines of Migrations - DrupalJam 2018
The Myths, Musts and Migraines of Migrations - DrupalJam 2018
 
Being a better mentor
Being a better mentorBeing a better mentor
Being a better mentor
 
Panels in Drupal: een EYE-opener
Panels in Drupal: een EYE-openerPanels in Drupal: een EYE-opener
Panels in Drupal: een EYE-opener
 
Drupal is Traag: handvatten voor een snelle site.
Drupal is Traag: handvatten voor een snelle site.Drupal is Traag: handvatten voor een snelle site.
Drupal is Traag: handvatten voor een snelle site.
 
Front-end Performance in Drupal
Front-end Performance in DrupalFront-end Performance in Drupal
Front-end Performance in Drupal
 
Wat is Drupal? Over Drupal in musea.
Wat is Drupal? Over Drupal in musea.Wat is Drupal? Over Drupal in musea.
Wat is Drupal? Over Drupal in musea.
 

Dernier

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Dernier (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Why You Should Use Continuous Integration

  • 1. Drupal Café 21-11-2012 About Continuous Integration (and why you should use it)
  • 2. Introduction • Baris Wanschers • Co-owner of LimoenGroen • Chairman of Stichting Drupal Nederland
  • 3. Agenda • The need for Continuous Integration • How we use it • Technical overview • Demo
  • 4. Show hands • Who uses version control?
  • 5. Show hands • Who uses version control? • Who uses a DTAP (or DTP)?
  • 6. Show hands • Who uses version control? • Who uses a DTAP (or DTP)? • Who uses Features / Context?
  • 7. Show hands • Who uses version control? • Who uses a DTAP (or DTP)? • Who uses Features / Context? • Who applies Continuous Integration?
  • 8. We’ve all been there • Implementing a new feature? Involves putting the site in maintenance for hours
  • 9. We’ve all been there • Implementing a new feature? Involves putting the site in maintenance for hours • Re-clicking all you’ve done local, on Prod
  • 10. We’ve all been there • Implementing a new feature? Involves putting the site in maintenance for hours • Re-clicking all you’ve done local, on Prod • The client accepts changes on ACC, but they still end up different on PROD
  • 11. We’ve all been there • Implementing a new feature? Involves putting the site in maintenance for hours • Re-clicking all you’ve done local, on Prod • The client accepts changes on ACC, but they still end up different on PROD • In the end: Frustrated Clients
  • 12. What is it? "In software engineering, continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently.” Source: Wikipedia
  • 13. What is it? "In software engineering, continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently.” “Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development." Source: Wikipedia
  • 14. What’s the advantage? • Direct feedback if it cannot be deployed Got e-mail? Back to the drawing board.
  • 15. What’s the advantage? • Direct feedback if it cannot be deployed Got e-mail? Back to the drawing board. • In control when going live Deployed to Test? Then it will work on Production as well.
  • 16. What’s the advantage? • Direct feedback if it cannot be deployed Got e-mail? Back to the drawing board. • In control when going live Deployed to Test? Then it will work on Production as well. • Continue developing while CI tool runs No need to wait.
  • 17. What’s the advantage? • Direct feedback if it cannot be deployed Got e-mail? Back to the drawing board. • In control when going live Deployed to Test? Then it will work on Production as well. • Continue developing while CI tool runs No need to wait. • Integration with Issue Management Update issues by committing your change.
  • 18. How we use it D T A P
  • 19. How we use it Repository • develop • master D T A P
  • 20. How we use it Repository • develop • master D T A P DB + Files (drush sql-sync / drush rsync)
  • 21. How we use it Repository • develop • master Code Code Code D T A P DB + Files (drush sql-sync / drush rsync)
  • 22. How we use it Repository • develop • master commit -m “Applied X. Fixes #123.” develop or master/[TAG] D T A P
  • 23. How we use it Repository • develop Service hooks • master commit -m “Applied X. Fixes #123.” develop or master/[TAG] D T A P
  • 24. How we use it Repository • develop Service hooks • master commit -m “Applied X. Fixes #123.” develop or master/[TAG] develop D T A P
  • 25. How we use it Repository • develop Service hooks • master commit -m “Applied X. Fixes #123.” manual start develop or master/[TAG] develop D T A P
  • 26. How we use it Repository • develop Service hooks • master commit -m “Applied X. Fixes #123.” manual start develop or master/[TAG] develop develop D T A P
  • 27. How we use it Repository • develop Service hooks • master commit -m “Applied X. Fixes #123.” manual start develop or master/[TAG] develop develop master/[TAG] D T A P
  • 28. How we use it Repository • develop Service hooks • master commit -m “Applied X. Fixes #123.” manual start develop or master/[TAG] develop develop master/[TAG] D T A P
  • 29. Technical set-up DEV environment Jenkins Git • LAMP • Tomcat • GitHub/BitBucket • Git • Apache (as proxy for Tomcat) • Service Hooks • Git flow • Jenkins plugins: • Service user (read • Drush • Git only) + ssh key • Drush alias files • Github • Git parameter • Jenkins jobs per project / target Redmine environment • LAMP Target envs (T/A/P) • Shell scripts: • Redmine plugin: • LAMP • make-backup.sh • Github webhook • Drush • update-code.sh • SSH key Jenkins user • apply-updates.sh in site user authorized keys
  • 30. Demo • Issue in Redmine ”Replace latest blogs in footer with single teaser”
  • 31. Demo • Issue in Redmine ”Replace latest blogs in footer with single teaser” • Fix on dev & Update Feature
  • 32. Demo • Issue in Redmine ”Replace latest blogs in footer with single teaser” • Fix on dev & Update Feature • Commit with Issue number
  • 33. Demo • Issue in Redmine ”Replace latest blogs in footer with single teaser” • Fix on dev & Update Feature • Commit with Issue number • Champagne!
  • 34. Future improvements • Features does not work on all modules • Automated tests with Jenkins SimpleTest / Behat / Selennium • Automated roll-back on errors • Set monitoring to ‘scheduled downtime’ on deployments
  • 35. Questions? • baris@limoengroen.nl • www.limoengroen.nl www.bariswanschers.com • @BarisW on Drupal.org / IRC / Twitter

Notes de l'éditeur

  1. Welcome all, thanks for attending. And thank you Michel for having me here. We gave this talk at the latest Tech Talk @ Triquanta and due to the great feedback we decided to do it again.\n
  2. LimoenGroen has a mission to create durable websites and a better web. We use Open Source (Drupal), and we make sure they are future-proof and accessible by anyone.\n
  3. AGENDA\nNEXT: Show hands. \n
  4. Surprisingly to see that nearly no-one already applies CI and we saw the same at the Tech Talk. And there is a need, because... NEXT\n
  5. Surprisingly to see that nearly no-one already applies CI and we saw the same at the Tech Talk. And there is a need, because... NEXT\n
  6. Surprisingly to see that nearly no-one already applies CI and we saw the same at the Tech Talk. And there is a need, because... NEXT\n
  7. Surprisingly to see that nearly no-one already applies CI and we saw the same at the Tech Talk. And there is a need, because... NEXT\n
  8. Companies that write down all clicks (content types, views, etc) and re-apply these manually on Acceptance and Production. Companies that export a view and import it on Prod.\n
  9. Companies that write down all clicks (content types, views, etc) and re-apply these manually on Acceptance and Production. Companies that export a view and import it on Prod.\n
  10. Companies that write down all clicks (content types, views, etc) and re-apply these manually on Acceptance and Production. Companies that export a view and import it on Prod.\n
  11. Companies that write down all clicks (content types, views, etc) and re-apply these manually on Acceptance and Production. Companies that export a view and import it on Prod.\n
  12. \n
  13. \n
  14. Not everything can be integrated with Features module. Then we use hook_update_N() scripts. \n
  15. Not everything can be integrated with Features module. Then we use hook_update_N() scripts. \n
  16. Not everything can be integrated with Features module. Then we use hook_update_N() scripts. \n
  17. Not everything can be integrated with Features module. Then we use hook_update_N() scripts. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. Eerst git pull, dan build steps.\n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n