Continous Delivery with CQ

20
Continuous Delivery with CQ The way of automating the Software Development process Oliver Burkhalter Basel, 20. Juni 2013

description

Presentation “Continous Delivery with CQ“ by Oliver Burkhalter at CQCON2013 in Basel on 19 and 20 June 2013.

Transcript of Continous Delivery with CQ

Page 1: Continous Delivery with CQ

Continuous Delivery with CQ The way of automating the Software Development process

Oliver Burkhalter Basel, 20. Juni 2013

Page 2: Continous Delivery with CQ

© Unic - Seite 2

Agenda

• About me

• Continuous Integration(CI) and Continuous Delivery(CD)

• CQ and CI/CD implementation example

• Demo

Page 3: Continous Delivery with CQ

© Unic - Seite 3

• Oliver Burkhalter (age = 28)

• Since 2007 at Unic AG

• Likes: Software Development, People/Teams, Baking, Thun City

About me

Page 4: Continous Delivery with CQ

© Unic - Seite 4

One-Click

Releases

Deployments

Production

Page 5: Continous Delivery with CQ

© Unic - Seite 5

What is CI and CD?

Continuous Integration

Continuous Delivery

Continuous Deployment

Non-Production environment Production environment

Page 6: Continous Delivery with CQ

© 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?

Page 7: Continous Delivery with CQ

© 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?

Page 8: Continous Delivery with CQ

© 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

Page 9: Continous Delivery with CQ

© Unic - Seite 9

Why

Page 10: Continous Delivery with CQ

© Unic - Seite 10

Page 11: Continous Delivery with CQ

© 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?

Page 12: Continous Delivery with CQ

© Unic - Seite 12

Implementation example stack

Write

Build

Test Deploy

Run

Apache Maven

Jenkins

JUnit

HtmlUnit

Jenkins

Ant

Jenkins

Page 13: Continous Delivery with CQ

© 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

Page 14: Continous Delivery with CQ

© 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

Page 15: Continous Delivery with CQ

© Unic - Seite 15

• Direct deployment to the customer's production environment

• Example: Trusted Maven Repositories

Next 2: Continuous Deployment

Page 16: Continous Delivery with CQ

© Unic - Seite 16

Demo

Page 17: Continous Delivery with CQ

© Unic - Seite 17

Click to edit Master title style Questions

Page 18: Continous Delivery with CQ

© Unic - Seite 18

Click to edit Master title style Thank you!

Page 20: Continous Delivery with CQ

© Unic - Seite 20