envato dev ops - alt.net melbourne

106
Dev Ops, Ruby, Rails, and Envato A team of 8 deploy heaps of times a day to a Ruby on Rails app that has scaled up to around 20 million requests a week without an ops team . lolwut? Thursday, 30 June 2011

Upload: john-barton

Post on 28-Jan-2015

117 views

Category:

Technology


1 download

DESCRIPTION

Reworked my Dev Ops presentation for the

TRANSCRIPT

Page 1: Envato Dev Ops - Alt.Net Melbourne

Dev Ops, Ruby, Rails, and Envato

A team of 8 deploy heaps of times a day to a Ruby on Rails app that has scaled up to around 20 million

requests a week without an ops team.

lolwut?

Thursday, 30 June 2011

Page 2: Envato Dev Ops - Alt.Net Melbourne

John Barton

@johnbarton

[email protected]

Thursday, 30 June 2011

Page 3: Envato Dev Ops - Alt.Net Melbourne

Envato?

http://envato.com

Thursday, 30 June 2011

Page 4: Envato Dev Ops - Alt.Net Melbourne

Stock Marketplaces&

Tutorial Network

Thursday, 30 June 2011

Page 5: Envato Dev Ops - Alt.Net Melbourne

Marketplaces

Thursday, 30 June 2011

Page 6: Envato Dev Ops - Alt.Net Melbourne

Like iStockPhoto but for other creative niches

oreBay for digital goods

Thursday, 30 June 2011

Page 7: Envato Dev Ops - Alt.Net Melbourne

Tuts+ Network

Thursday, 30 June 2011

Page 8: Envato Dev Ops - Alt.Net Melbourne

Big Blog Network for education in creative fields

Thursday, 30 June 2011

Page 9: Envato Dev Ops - Alt.Net Melbourne

The Marketplace

Thursday, 30 June 2011

Page 10: Envato Dev Ops - Alt.Net Melbourne

August 2006

Thursday, 30 June 2011

Page 11: Envato Dev Ops - Alt.Net Melbourne

One Marketplace

Thursday, 30 June 2011

Page 12: Envato Dev Ops - Alt.Net Melbourne

FlashDen

Thursday, 30 June 2011

Page 13: Envato Dev Ops - Alt.Net Melbourne

Rails 0.13bNo UsersNo Traffic

Thursday, 30 June 2011

Page 14: Envato Dev Ops - Alt.Net Melbourne

June 2011

Thursday, 30 June 2011

Page 15: Envato Dev Ops - Alt.Net Melbourne

9 Marketplaces

Thursday, 30 June 2011

Page 16: Envato Dev Ops - Alt.Net Melbourne

ActiveDen (nee FlashDen)AudioJungle

ThemeForestVideoHive

GraphicRiverCodeCanyon

3D OceanTuts+ Marketplace

PhotoDune

Thursday, 30 June 2011

Page 17: Envato Dev Ops - Alt.Net Melbourne

Rails 2.3.11830,462 Users

22 Million Requests Weekly

Thursday, 30 June 2011

Page 18: Envato Dev Ops - Alt.Net Melbourne

One Codebase and One Production Environment

Thursday, 30 June 2011

Page 19: Envato Dev Ops - Alt.Net Melbourne

What’s interesting about our deployments?

Thursday, 30 June 2011

Page 20: Envato Dev Ops - Alt.Net Melbourne

deploy frequently, high scale, no ops team

Thursday, 30 June 2011

Page 21: Envato Dev Ops - Alt.Net Melbourne

What do you need to do the same?

Thursday, 30 June 2011

Page 22: Envato Dev Ops - Alt.Net Melbourne

Some technical infrastructure, some

business/cultural

Thursday, 30 June 2011

Page 23: Envato Dev Ops - Alt.Net Melbourne

Cultural Bits

Thursday, 30 June 2011

Page 24: Envato Dev Ops - Alt.Net Melbourne

The “Dev Ops” Culture

Thursday, 30 June 2011

Page 25: Envato Dev Ops - Alt.Net Melbourne

“Culture of respect & trust, good attitude toward

failure...”

Ted Dzubia

Thursday, 30 June 2011

Page 26: Envato Dev Ops - Alt.Net Melbourne

“How about "culture of stop fucking up"?”

Ted Dzubiahttp://teddziuba.com/2011/03/devops-scam.html

Thursday, 30 June 2011

Page 27: Envato Dev Ops - Alt.Net Melbourne

A problem of competing priorities

Thursday, 30 June 2011

Page 28: Envato Dev Ops - Alt.Net Melbourne

Our Solution:Don’t have Ops

Thursday, 30 June 2011

Page 29: Envato Dev Ops - Alt.Net Melbourne

Outsource commodity platform bits:

virtualisation/cloud, have rackspace take care of db/

mailserver

Thursday, 30 June 2011

Page 30: Envato Dev Ops - Alt.Net Melbourne

Ensure the dev team has the skills to take care of the

rest

Thursday, 30 June 2011

Page 31: Envato Dev Ops - Alt.Net Melbourne

Take advantage of an individual's talents, but don’t rely upon them

ie. don’t accidentally create an ops guy

Thursday, 30 June 2011

Page 32: Envato Dev Ops - Alt.Net Melbourne

OK to have specialists... for special work.

Keeping the app running isn’t “special”

Thursday, 30 June 2011

Page 33: Envato Dev Ops - Alt.Net Melbourne

Within the Business

Thursday, 30 June 2011

Page 34: Envato Dev Ops - Alt.Net Melbourne

Preserve The “Golden Age”

Thursday, 30 June 2011

Page 35: Envato Dev Ops - Alt.Net Melbourne

Thursday, 30 June 2011

Page 36: Envato Dev Ops - Alt.Net Melbourne

3 Developers30 minute feedback cycledeploy, discuss on forums,

deploy again

Thursday, 30 June 2011

Page 37: Envato Dev Ops - Alt.Net Melbourne

Keep doing everything good about the the startup days

for as long as we can

Thursday, 30 June 2011

Page 38: Envato Dev Ops - Alt.Net Melbourne

Avoid Corporate Antipatterns

Thursday, 30 June 2011

Page 39: Envato Dev Ops - Alt.Net Melbourne

We’ve all been doing dev long enough to see this

stuff screwed up over and over again

Thursday, 30 June 2011

Page 40: Envato Dev Ops - Alt.Net Melbourne

Decision 3:Don’t do all that stuff

Thursday, 30 June 2011

Page 41: Envato Dev Ops - Alt.Net Melbourne

Ultimate Responsibility

Thursday, 30 June 2011

Page 42: Envato Dev Ops - Alt.Net Melbourne

"The fault, dear Brutus, is not in our

QA or Ops,But in ourselves."

Thursday, 30 June 2011

Page 43: Envato Dev Ops - Alt.Net Melbourne

Test Driven Developmentvs.

QA Team

Thursday, 30 June 2011

Page 44: Envato Dev Ops - Alt.Net Melbourne

Test Driven Infrastructurevs.

Ops Team

Thursday, 30 June 2011

Page 45: Envato Dev Ops - Alt.Net Melbourne

Both as a team and as individuals we own our work from when we are

asked to do it...

Thursday, 30 June 2011

Page 46: Envato Dev Ops - Alt.Net Melbourne

... until is is demonstrably error free and performant

in production

Thursday, 30 June 2011

Page 47: Envato Dev Ops - Alt.Net Melbourne

Everyone is in the (paid) on call roster

Thursday, 30 June 2011

Page 48: Envato Dev Ops - Alt.Net Melbourne

Everyone takes a turn at Level 2 Customer Support

Thursday, 30 June 2011

Page 49: Envato Dev Ops - Alt.Net Melbourne

Want those jobs to be easier?

Stop fucking up.

Thursday, 30 June 2011

Page 50: Envato Dev Ops - Alt.Net Melbourne

Process

Thursday, 30 June 2011

Page 51: Envato Dev Ops - Alt.Net Melbourne

LEAN / TPS Principles

...without the process

Thursday, 30 June 2011

Page 52: Envato Dev Ops - Alt.Net Melbourne

Thursday, 30 June 2011

Page 53: Envato Dev Ops - Alt.Net Melbourne

You cannot write code any faster than you can deploy

it to production

Thursday, 30 June 2011

Page 54: Envato Dev Ops - Alt.Net Melbourne

Long running projects?

Thursday, 30 June 2011

Page 55: Envato Dev Ops - Alt.Net Melbourne

A. B. C.

Always Be Cmerging

(the c is silent)

Thursday, 30 June 2011

Page 56: Envato Dev Ops - Alt.Net Melbourne

I would not want to try this with Subversion, or Visual Source Safe... and I never had enough money to try “Team Foundation Server”

Thursday, 30 June 2011

Page 57: Envato Dev Ops - Alt.Net Melbourne

Use GIT

http://git-scm.com/

Thursday, 30 June 2011

Page 58: Envato Dev Ops - Alt.Net Melbourne

Dark LaunchFeature FlagsPrivate Beta

Thursday, 30 June 2011

Page 59: Envato Dev Ops - Alt.Net Melbourne

User Community

Thursday, 30 June 2011

Page 60: Envato Dev Ops - Alt.Net Melbourne

We do trip up running this fast

Thursday, 30 June 2011

Page 61: Envato Dev Ops - Alt.Net Melbourne

But through years of openness with our users

via our forums and owning up to our mistakes

Thursday, 30 June 2011

Page 62: Envato Dev Ops - Alt.Net Melbourne

... we’ve ended up with a (relatively) sympathetic

community

Thursday, 30 June 2011

Page 63: Envato Dev Ops - Alt.Net Melbourne

Time Zones both help and hurt

Thursday, 30 June 2011

Page 64: Envato Dev Ops - Alt.Net Melbourne

Traffic peaks during US day means that if things go

wrong we’re usually asleep

Thursday, 30 June 2011

Page 65: Envato Dev Ops - Alt.Net Melbourne

But it makes it very easy to deploy during our business

hours

Thursday, 30 June 2011

Page 66: Envato Dev Ops - Alt.Net Melbourne

Open Source

Thursday, 30 June 2011

Page 67: Envato Dev Ops - Alt.Net Melbourne

No point you solving the same problem as the guy

down the street

Thursday, 30 June 2011

Page 68: Envato Dev Ops - Alt.Net Melbourne

No point the guy down the street solving the same

problem you did last week

Thursday, 30 June 2011

Page 69: Envato Dev Ops - Alt.Net Melbourne

Technology

Thursday, 30 June 2011

Page 70: Envato Dev Ops - Alt.Net Melbourne

Commodity Hosting is a prerequisite

Thursday, 30 June 2011

Page 71: Envato Dev Ops - Alt.Net Melbourne

Notice I’m not saying “Cloud Computing”

Thursday, 30 June 2011

Page 72: Envato Dev Ops - Alt.Net Melbourne

Thursday, 30 June 2011

Page 73: Envato Dev Ops - Alt.Net Melbourne

Thursday, 30 June 2011

Page 74: Envato Dev Ops - Alt.Net Melbourne

You can't trust “the cloud” but

you can trust “the cloud to be “the cloud”.

Thursday, 30 June 2011

Page 75: Envato Dev Ops - Alt.Net Melbourne

Make a conservative platform choice so we don’t have to sweat the

detailsie. Ubuntu 10.4 LTS

Thursday, 30 June 2011

Page 76: Envato Dev Ops - Alt.Net Melbourne

I guess you guys have to choose like Windows

Ultimate 2009 Edition?

Thursday, 30 June 2011

Page 77: Envato Dev Ops - Alt.Net Melbourne

Seriously though, Ruby guys love shiny new things, and we’re spoiled for choice

_even_ when it harms us.

Thursday, 30 June 2011

Page 78: Envato Dev Ops - Alt.Net Melbourne

So we make an effort to keep the stack as Vanilla as

possible

Thursday, 30 June 2011

Page 79: Envato Dev Ops - Alt.Net Melbourne

Virtualised servers in our own sandbox.

Cloud Flexibility - Cloud Shit-ness = WIN

Thursday, 30 June 2011

Page 80: Envato Dev Ops - Alt.Net Melbourne

Automate Configuration Management

Thursday, 30 June 2011

Page 81: Envato Dev Ops - Alt.Net Melbourne

Babushka

http://babushka.me/

Thursday, 30 June 2011

Page 82: Envato Dev Ops - Alt.Net Melbourne

Test drive your architecture...

Thursday, 30 June 2011

Page 83: Envato Dev Ops - Alt.Net Melbourne

...or borrow “deps” built by other people

Thursday, 30 June 2011

Page 84: Envato Dev Ops - Alt.Net Melbourne

Lets look at some code

Thursday, 30 June 2011

Page 85: Envato Dev Ops - Alt.Net Melbourne

Babushka is designed to be run manually on the

remote machine

Thursday, 30 June 2011

Page 86: Envato Dev Ops - Alt.Net Melbourne

Use Dollhousehttps://github.com/geelen/

dollhouse

To drive babushka remotely

Thursday, 30 June 2011

Page 87: Envato Dev Ops - Alt.Net Melbourne

moar code

Thursday, 30 June 2011

Page 88: Envato Dev Ops - Alt.Net Melbourne

A lot of people I take seriously, take Chef

seriously.

http://wiki.opscode.com/

Thursday, 30 June 2011

Page 89: Envato Dev Ops - Alt.Net Melbourne

Automate Deployment

Thursday, 30 June 2011

Page 91: Envato Dev Ops - Alt.Net Melbourne

Codes?

Thursday, 30 June 2011

Page 92: Envato Dev Ops - Alt.Net Melbourne

The un-sung hero

Thursday, 30 June 2011

Page 93: Envato Dev Ops - Alt.Net Melbourne

rake db:migrate

Thursday, 30 June 2011

Page 94: Envato Dev Ops - Alt.Net Melbourne

I’m so used to having it I can’t even remember how I

ever deployed database changes in the past

Thursday, 30 June 2011

Page 95: Envato Dev Ops - Alt.Net Melbourne

Performance & Scaling

Thursday, 30 June 2011

Page 96: Envato Dev Ops - Alt.Net Melbourne

Not as big a deal as everyone thinks

Thursday, 30 June 2011

Page 97: Envato Dev Ops - Alt.Net Melbourne

.NET runtime is faster... but it’s really not that big a deal

Thursday, 30 June 2011

Page 98: Envato Dev Ops - Alt.Net Melbourne

Shared-nothing load balanced app servers + out of request queue workers

not rocket surgery

Thursday, 30 June 2011

Page 99: Envato Dev Ops - Alt.Net Melbourne

Measure, deploy, measure again and then tweak or

rollback

New Relic FTW

Thursday, 30 June 2011

Page 100: Envato Dev Ops - Alt.Net Melbourne

There is no code faster than no code.

Thursday, 30 June 2011

Page 101: Envato Dev Ops - Alt.Net Melbourne

Why I’m happier than I was as a .NET programmer

Thursday, 30 June 2011

Page 102: Envato Dev Ops - Alt.Net Melbourne

Mainly because ofSystem.Threading.Timer

Thursday, 30 June 2011

Page 103: Envato Dev Ops - Alt.Net Melbourne

No Viewstate

(Yes I heard you’ve got MVC now instead)

Thursday, 30 June 2011

Page 104: Envato Dev Ops - Alt.Net Melbourne

A culture of people who fix things instead of waiting for

them to be fixed

Thursday, 30 June 2011

Page 105: Envato Dev Ops - Alt.Net Melbourne

People who care about expressiveness of code and

finding the right abstractions

Thursday, 30 June 2011

Page 106: Envato Dev Ops - Alt.Net Melbourne

Question?Thursday, 30 June 2011