Top Banner
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
106

Envato Dev Ops - Alt.Net Melbourne

Jan 28, 2015

Download

Technology

John Barton

Reworked my Dev Ops presentation for the
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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