continuous deployment (english)

Post on 15-Jan-2015

127 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides for Continuous Deployment talk on agileday 2013 in Vilnius - tak (in lithuanian) here - http://www.youtube.com/watch?v=ti1Pfu9dnYY

TRANSCRIPT

Continuous DeploymentTitas Norkūnas / @varsketiz

Assembla the Product

~ 350.000 Projects tracked

~ 350.000 Repositories hosted

~ 850.000 Users registered

~ 5.000.000 Tasks created

Assembla the Team

● 40 People (20 Developers)

● 20 Countries

● 15 Different Timezones

● 163 Prod Deploys in April

Assembla the Team

Assembla the Team

Me

Colleague I work with the most

Have you heard about Continuous Deployment before?

How often do you deploy?

This is about

● The Why

● Common concerns

● The How

● Good to haves and common issues

● How we did it

Why bother?

Agile manifesto:

"Our highest priority is to satisfy the

customer through early and

continuous delivery of valuable software."

Why bother?

Agile manifesto:

"Working software is the primary

measure of progress."

Why bother?

Agile manifesto:

"Simplicity – the art of maximizing the

amount of work not done – is

essential."

Why bother?

MVP:

"The minimum viable product is that

version of a new product which

allows a team to collect the maximum amount of validated learning about

customers with the least effort."

Why bother?

Your favorite tech company does it:

● Github

● Amazon

● Heroku

● Linkedin

● Etsy

● ... <endless list> ...

Why bother?

Your favorite tech company does it:

● Github

● Amazon - Prod Deploy every 11s!● Heroku

● Linkedin

● Etsy

● ... <endless list> ...

Benefits

● Deliver value ASAP

● Advance every day

● Always be informed

● Have a fast feedback cycle

● Create a top-notch environment

Concerns

● But isn't that dangerous?

● That will cost much more!

● It will reduce quality!

● That's just cowboy-coding!

But isn't that dangerous? - No.

● Less changes in every release

● Minimal issue fix and deploy time

● Deploys are standard

That will cost much more! - No.

● Automated deploys - one time fee

● Cheap a/b testing

● Always ASAP code delivery

It will reduce quality! - No.

● Hide features that are

not ready

● Never rush to "make it"

● Keep all current testing

practices

That's just cowboy-coding! - No.

● Standardize configuration

● Standardize migrations

● Standardize all environments

The How

● "Continuous" team mentality

● Proper Continuous Integration

● Deployment Automation

● Metrics and Alerts

There is only one rule to Continuous Deployment - keep

your Mainline deployable.

Define deployable

Automated tests pass

Automated tests pass, code reviewed and tested by peer or

QA

Automated tests pass, code reviewed and tested by peer or QA, code tested on production

by a subset of users

Mainline stability

● Don't break the trust to save 5

minutes

● Don't assume you know everything

● Don't block others

Continuous Integration

Branch →

Mainline →

Continuous Integration

2?1

Mainline →

Branch →

Continuous Integration

Mainline →

1 ?

4

Branch →

3

Mainline →

Branch →

Backmerge from Mainline to branch for integrate and build. Premature integration is evil

Deployment Automation

● Easy - with a click of a button

● Risk-free - be able to rollback

● Consistent - no surprises

● Traceable - who, when what

Easy - with a click of a button

Risk-free - be able to rollback

Consistent - no surprises

Traceable - who, when, what?

Metrics and Alerts

● Real-time

● Monitor key business metrics

● Have a dashboard for app metrics

● Alert on abnormalities not

thresholds

Business metrics

Application Metrics

Abnormalities, not thresholds

The good to haves

● Fast tests and fast deploys

● Configuration automation

● Fast developer onboarding

● Uniform migration strategy

Fast tests and fast deploys

Configuration automation

Fast developer onboarding

Uniform migration strategy

"Continuous" is a game-changer. How does it change the game for

other people in the company?

How Assembla did it

Release Count Evolution

Release Count Evolution

Frustration

Release Count Evolution

Release Count Evolution

Release Count Evolution

LOL Vacation

Release Count Evolution

Common issues

● Wait, but how do I deploy schema

changes without downtime?

● I need manual testing in my

workflow...

● Does not scale.

top related