Download - Continous Delivery with CQ

Transcript
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