Continuous Delivery at Deli XL

24
Continuous Delivery @ Deli XL Ernst de Haan, E-commerce Architect, Deli XL June 6, 2012

description

Why and how Continuous Delivery was implemented at Deli XL, including benefits, design, technologies, examples and various metrics.

Transcript of Continuous Delivery at Deli XL

Page 1: Continuous Delivery at Deli XL

Continuous Delivery @ Deli XL

Ernst de Haan, E-commerce Architect, Deli XL June 6, 2012

Page 2: Continuous Delivery at Deli XL

Executive Summary

> PROD = 18 machines (16 virtual)> Developer to PROD: ± 50 min> Monday after Sprint → PROD> Multi-site, multi-branch> Deployment = 1 click (takes ± 20 min)> Rollback = 1 click> Deployment issues = 0

Page 3: Continuous Delivery at Deli XL

✓ 1K suppliers✓ 30K customers

✓ 110K products✓ € 750M/year

✓ 2M consumers?✓ 100 catalogs

Page 4: Continuous Delivery at Deli XL

Process

> Scrum, 3 week Sprints> Acceptance test inside Sprint> Separate streets: D→A→P and T> Monday after Sprint → Prod (06:00 h)> Prod deployment by Ops team in India> Developers/testers deploy to D/T/A

Page 5: Continuous Delivery at Deli XL

Architecture

> ATG 10 (multi-site)> Commerce> Service

> XINS> integration layers> high testability

> GigaSpaces> service grid + data grid> high scalability

Page 6: Continuous Delivery at Deli XL

web browsers, mobile apps, external systems

Image API(XINS)

InternetInternet

ATG In API(XINS)

ATG Out API(XINS)

External systems: SAP, IDM, AS/400, etc.

CMS(First Spirit)

Apache

JSPs

E-commerceArchitecture

Domain

Passthru API(GigaSpaces)

Data Grid(GigaSpaces)

JavaScript API(XINS)

Page 7: Continuous Delivery at Deli XL

Continuous Delivery @ Deli XL

Why we did it

What we did

Demo

Discussion

1

2

3

4

Page 8: Continuous Delivery at Deli XL

Typical IT Headaches

> Creating builds = manual labour> Deploying to test environments = slow> Deployment reliability = error prone> Get Sprint ready for PROD = challenging> Root cause analysis = difficult> Elastic scaling = not possible

been there…

Page 9: Continuous Delivery at Deli XL

Typical Business Headaches

> TTM> long, even with agile (Developer → P in weeks?)> much variance (typically due to issues after Sprint)

> Cost> manual builds & deployments are recurring costs> the later an issue is found, the more expensive

Page 10: Continuous Delivery at Deli XL

Why Continuous Delivery

> Improve TTM (shorten, reduce variance)> Automate tedious work> Increase project efficiency (within Sprints)> Increase Ops efficiency> Make offshoring easier> Simplify new initiatives/brands> Reduce (impact of) Production defects> Elastic scaling

Page 11: Continuous Delivery at Deli XL

Why Continuous Delivery - Summary

> Reduce overhead cost> Increase reliability> Increase agility

and because it reduces headaches for IT :-)

Page 12: Continuous Delivery at Deli XL

Continuous Delivery @ Deli XL

Why we did it

What we did

Demo

Discussion

1

2

3

4

Page 13: Continuous Delivery at Deli XL

At Project Start

> Manual quality control> Manual builds & deployments> Single site/brand> Single project (1 branch in version control)> Slow environment provisioning

Page 14: Continuous Delivery at Deli XL

Steps Taken During Project

> Unified vision & NFRs> Standardized all processes> Continuous Integration including QC> Automated builds & deployments> Workflow control system (Jenkins)> Standardized environment provisioning> Environment cloning procedures

Page 15: Continuous Delivery at Deli XL

Design

> Environment-agnostic builds/packages> Commit Stages - one per branch> e.g. per project: previous release/hotfixes, next release> includes QC> includes automated deployments to CI environment> includes automated functional regression tests

> Deployment Pipelines> independent from Commit Stages> configuration easy to change

Page 16: Continuous Delivery at Deli XL

Technology

> Maven> Jenkins> Puppet

less relevant, it’s about how you set it up…

Page 17: Continuous Delivery at Deli XL

Dealing with Parallel Projects

> Example:> Sprint 22 – 3 weeks – regular Sprint> Sprint 21+ – 1 week – started at same time

> Approach:> separate branch (10 min)> separate commit stage (10 min)> allocated a deployment pipeline (= environments)> communication> daily merge, one way> final merge after P delivery

Page 18: Continuous Delivery at Deli XL

Dealing with Data

> Simple approach for typical situations> repeatable data model changes

> In exceptional cases intervention is needed

Page 19: Continuous Delivery at Deli XL

Hotfixes

> Again: single click> Regular deployments from release branch

Page 20: Continuous Delivery at Deli XL

Rollbacks

> Typical:> one click of a button

> Exceptional cases:> intervention needed because of data (structure)

Page 21: Continuous Delivery at Deli XL

Resourcing Vision (1/2)

> Business & management consulting:> local Solution Architect

> Analysis> Deli XL

> Development:> local ATG/Java expertise, leads (Mindcurv Europe)> offshore ATG/Java capacity (Mindcurv India)

Page 22: Continuous Delivery at Deli XL

Resourcing Vision (2/2)

> Testing:> local testers documenting test cases> offshore Testing-as-a-Service (Mindcurv)

> Support & maintenance:> mostly offshore> local Service Delivery Manager

Page 23: Continuous Delivery at Deli XL

Continuous Delivery @ Deli XL

Why we did it

What we did

Demo

Discussion

1

2

3

4

Page 24: Continuous Delivery at Deli XL

Continuous Delivery @ Deli XL

Why we did it

What we did

Demo

Discussion

1

2

3

4