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
Top Related