Continuous Delivery with CQ The way of automating the Software Development process Oliver Burkhalter Basel, 20. Juni 2013
Jan 13, 2015
Continuous Delivery with CQ The way of automating the Software Development process
Oliver Burkhalter Basel, 20. Juni 2013
© Unic - Seite 2
Agenda
• About me
• Continuous Integration(CI) and Continuous Delivery(CD)
• CQ and CI/CD implementation example
• Demo
© Unic - Seite 3
• Oliver Burkhalter (age = 28)
• Since 2007 at Unic AG
• Likes: Software Development, People/Teams, Baking, Thun City
About me
© Unic - Seite 4
One-Click
Releases
Deployments
Production
© Unic - Seite 5
What is CI and CD?
Continuous Integration
Continuous Delivery
Continuous Deployment
Non-Production environment Production environment
© Unic - Seite 6
• Continuous Integration:
• Team members integrate their work daily
• All the components are automatically integrated and tested by the CI system
What is CI and CD?
© Unic - Seite 7
• Continuous Delivery:
• Is the advancement of CI
• Is an end-to-end approach (from dev to end user)
• Software is always in a production-ready state
• It is the technique to automate the
build, test and deployment process
• Fail Fast pattern
• Pipeline Pattern from Jez Humble&Co.
What is CI and CD?
© Unic - Seite 8
• Continuous Deployment:
• Continuously deployment to the Production environment (one-click idea)
• From Development to Production
• “Extreme Cont. Delivery”
What is CI and CD?
Deployment
© Unic - Seite 9
Why
© Unic - Seite 10
© Unic - Seite 11
• Forces us to write Quality software
• The overall Thinking changes from
dev -> test system to dev -> end user system
• Faster release cycles are possible
• Automated Software Development Process is less error prone
• Team Ownership of the release process (not only «Release Manager»,
infrastructure is also code)
• Everybody can do a release (one click)
Why?
© Unic - Seite 12
Implementation example stack
Write
Build
Test Deploy
Run
Apache Maven
Jenkins
JUnit
HtmlUnit
Jenkins
Ant
Jenkins
© Unic - Seite 13
• With Maven Plugins: Auto start/stop of CQ, deployment of CQ packages over the
CRX HTTP interface
• Running auto. tests with JUnit and HtmlUnit
• Set of unit and integration tests
• Automated Acceptance tests still in progress
Foundation: CI
© Unic - Seite 14
• Separate “delivery” and “infrastructure” Maven module
• Delivery:
• Deployment scripts
• Infrastructure
• Environment-specific configurations
• Done with Ant scripts and custom Ant tasks
Next: Continuous Delivery
© Unic - Seite 15
• Direct deployment to the customer's production environment
• Example: Trusted Maven Repositories
Next 2: Continuous Deployment
© Unic - Seite 16
Demo
© Unic - Seite 17
Click to edit Master title style Questions
© Unic - Seite 18
Click to edit Master title style Thank you!
© Unic - Seite 19
• http://martinfowler.com/articles/continuousIntegration.html
• http://martinfowler.com/delivery.html
• http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-
deployment/
References
© Unic - Seite 20