Continuous deployment

31
Continuous Deploym Martin Shwalbe

description

Just uploaded this for someone but i see that animations are broken. The slide is also not that usefull currently as it requires some more explanations.

Transcript of Continuous deployment

Page 1: Continuous deployment

Continuous Deployment

Martin Shwalbe

Page 2: Continuous deployment

How Long does it take to Deploy?

More than a Year?

Six months to a Year? One to six months?

One day to two Weeks?

Two Weeks to a Month?One day to two Weeks?

One hour to one day?

Less than 10 Minutes?

Page 3: Continuous deployment

How Long does it take to Deploy?

Page 4: Continuous deployment

Continuous Deployment is a repeatable methodology to deploying code

Page 5: Continuous deployment

Continuous Deployment is Automation

Page 6: Continuous deployment

Deployment Reduces Code Inventory

Page 7: Continuous deployment

Deployment improves Confidence

Page 8: Continuous deployment

Continuous Deployment is Safety

Page 9: Continuous deployment

Fast Turnaround leads to Happy Customers

Page 10: Continuous deployment

… and happy developers

Page 11: Continuous deployment

Traditional Release Cycle

Development Release Cut Stage QA Fix Bugs Integrate Patches

Release!

Timeline1-4 Weeks

Page 12: Continuous deployment

Continuous Deployment Release Cycle

Development Release Cut Stage

Automated QATesting and

StagingFix Bugs Integrate

Patches

DeployRelease!

Timeline5-10 Minutes

x x x x

Page 13: Continuous deployment

Tools

Jenkins

Statistic Analysers

Page 14: Continuous deployment

Continuous Deployment

Continuous Integration Cycle

Developer

Version Control System

CI ServerBuild Servers

Feedback

Page 15: Continuous deployment

Continuous Deployment Cycle

Deploy To Production

FeedBackContinuousIntegration

Deploy Test

Page 16: Continuous deployment

Database Evolution in Continuous Deployment

Updating Database is scary!

Page 17: Continuous deployment

Database Evolution

Page 18: Continuous deployment

Database Evolution Categorize

Page 19: Continuous deployment

Database Evolution: Addition

Addtions do not cause any problems.

Page 20: Continuous deployment

Destructive Database Evolution

Destructive changes need a bit more care, the degree of which depends on the

degree of destruction involved

Page 21: Continuous deployment

Destructive Database Evolution

Working Environment

Page 22: Continuous deployment

Destructive Database Evolution

Updating The Database

Page 23: Continuous deployment

Destructive Database Evolution

Unhappy Customer!

Page 24: Continuous deployment

Database Evolution

Which comes first?Code or the Database?

Page 25: Continuous deployment

Destructive Database Evolution

Apply Changes without breaking backwards compatibility

Page 26: Continuous deployment

Destructive Database Evolution

The application can still read and write to the old columns

Page 27: Continuous deployment

Destructive Database Evolution

Update the application.

//Keep this RequestSelect Address Data from Table User

//Additional RequestSelect Address Data from Table Address

Page 28: Continuous deployment

Destructive Database Evolution

The application would read and write to both tables.

Page 29: Continuous deployment

Destructive Database Evolution

Cleanup the Application.

Select Address Data from Table Address

SQL Script to copy old data from User table to Address table

Page 30: Continuous deployment

Destructive Database Evolution

Delete the obsolete Columns

Page 31: Continuous deployment

Thank you!