continuous delivery at deli xl

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

Upload: ernstdehaan

Post on 30-Nov-2014

1.191 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

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