Release Early & Release Often: Reducing Deployment Friction

Post on 10-Apr-2017

1.632 views 0 download

Transcript of Release Early & Release Often: Reducing Deployment Friction

RELEASE EARLY &

Reducing Deployment Friction

RELEASE OFTEN

Saturday, October 1, 11

ANDY DELCAMBREIt rhymes with “Welcome”

Saturday, October 1, 11

@adelcambre

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

REDUCING DEPLOYMENTFRICTION

Saturday, October 1, 11

REDUCING DEPLOYMENTFRICTION

Saturday, October 1, 11

REDUCING DEVELOPMENTFRICTION

Saturday, October 1, 11

Saturday, October 1, 11

STARTING A NEW TASK

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

git checkout -b U-666

Saturday, October 1, 11

git commit -m “[U-666] add unicorns”

Saturday, October 1, 11

Saturday, October 1, 11

.............................

..*......**..................

.............................

......................

Finished in 10.809554 seconds

109 examples, 0 failures, 3 pending

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

EyBot

Saturday, October 1, 11

require 'ey/irc'

run EY::Irc::Receiver.new { |message| case message.body when /^ping$/ message.say(message.to, ”Hello World!”) endend

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

CONTINUOUS INTEGRATION

Saturday, October 1, 11

Saturday, October 1, 11

MASONSaturday, October 1, 11

Saturday, October 1, 11

git checkout mastergit merge U-666

git push origin master

Saturday, October 1, 11

MARK TICKET AS “MERGED”

Saturday, October 1, 11

AUTO DEPLOY TO EDGE

Saturday, October 1, 11

Saturday, October 1, 11

404 DEPLOYS IN SEPTEMBER

Saturday, October 1, 11

~ 20 per week day

Saturday, October 1, 11

2-9 Production Deploys per Day

Saturday, October 1, 11

EyBot: release awsm production

Saturday, October 1, 11

Ensure master is green

Saturday, October 1, 11

Tag the release

Saturday, October 1, 11

Assign all merged tickets to the version

Saturday, October 1, 11

Push tag to the deploy branch

Saturday, October 1, 11

Production automatically deploys from the deploy branch

Saturday, October 1, 11

Mark all tickets in this release as resolved

Saturday, October 1, 11

Send Notifications

Saturday, October 1, 11

Hoptoad Airbrake

Saturday, October 1, 11

New Relic

Saturday, October 1, 11

Email

Saturday, October 1, 11

Saturday, October 1, 11

Saturday, October 1, 11

The actual deploy

Saturday, October 1, 11

Fairly Standard Deploy

Saturday, October 1, 11

current/ releases/ shared/

Saturday, October 1, 11

Unicorn

Saturday, October 1, 11

bundle install --deployment

Saturday, October 1, 11

Zero Downtime Migrations

Saturday, October 1, 11

No Magic, Just a technique

Saturday, October 1, 11

Adding a column

Saturday, October 1, 11

Add a migration to add the column

Saturday, October 1, 11

Ship code that needs the new column

Saturday, October 1, 11

Deploy the codeRestart the serversThen run migrations

Saturday, October 1, 11

More examples

Saturday, October 1, 11

Removing a Column

Saturday, October 1, 11

Renaming a column

Saturday, October 1, 11

A work in progress

Saturday, October 1, 11

Thanks!

Saturday, October 1, 11

Questions?

twitter.com/adelcambre

engineyard.com

We’re hiring!

Saturday, October 1, 11