Slide 1

Slide 1 text

unsucking YOUR TEAM’S ENVIRONMENT DEVELOPMENT

Slide 2

Slide 2 text

NO FORKING HOLMAN @ LOST YO QUIT READING THIS SHIT

Slide 3

Slide 3 text

githu

Slide 4

Slide 4 text

WE STARTED WITH one QUEUE

Slide 5

Slide 5 text

THIS QUEUE WORKED SORTA OBJECTS IN, TASK OCCURS

Slide 6

Slide 6 text

OH SHIT BLOCKING OPERATIONS

Slide 7

Slide 7 text

THEN SPLIT INTO 2 QUEUES SEGREGATE BY CATEGORY

Slide 8

Slide 8 text

2 QUEUES, 3x THROUGHPUT EXPONENTIAL GROWTH

Slide 9

Slide 9 text

SATURATED AVAILABILITY EXPERIENCING BOTTLENECKS

Slide 10

Slide 10 text

THIS IS GITHUB’S GODDAMN TOILET SITUATION

Slide 11

Slide 11 text

TWO GENDERED BATHROOMS ZOMG WHY AM I WAITING

Slide 12

Slide 12 text

It’s because of this:

Slide 13

Slide 13 text

GITHUB EMPLOYEES 5 8 2009 2008

Slide 14

Slide 14 text

GITHUB EMPLOYEES 2009 2010 5 8 14 2008

Slide 15

Slide 15 text

GITHUB EMPLOYEES 2009 2010 2011 5 8 14 54 2008

Slide 16

Slide 16 text

GITHUB EMPLOYEES 2008 2009 2010 2011 2012 5 8 14 54 114

Slide 17

Slide 17 text

WE’VE THOUGHT A LOT ABOUT ONBOARDING

Slide 18

Slide 18 text

IT’S NOT JUST TOILET LATENCY ABOUT

Slide 19

Slide 19 text

2.5 YEARS AGO: 1 WEEK TODAY: 20 MINUTES DURATION FROM HIRE TO BOOT (a ) (every a )

Slide 20

Slide 20 text

THINK THROUGH MAKING YOUR ENVIRONMENT SUCK LESS

Slide 21

Slide 21 text

PAIN IS MULTIPLIED ACROSS YOUR WHOLE COMPANY

Slide 22

Slide 22 text

THE APP THE STACK THE DEPLOY T H E C O M P A N Y

Slide 23

Slide 23 text

THE APP THE STACK THE DEPLOY T H E C O M P A N Y

Slide 24

Slide 24 text

I S Y O U R F O U N D A T I O N THE APP

Slide 25

Slide 25 text

remembe : EVERY APP SHOULD HAVE A ONE-LINER INSTALL REALLY.

Slide 26

Slide 26 text

EVEN LARGE PROJECTS CAN HAVE A TUTORIAL-STYLE SCRIPT remembe :

Slide 27

Slide 27 text

THINGS SUCK LESS HOMEBREW FOREMAN RBENV BUNDLER

Slide 28

Slide 28 text

AUTOMATE AUTOMATE AUTOMATE AUTOMATE AUTOMATE AUTOMATE

Slide 29

Slide 29 text

APP BOOTSTRAP

Slide 30

Slide 30 text

BOOTSTRAP REPLICATE-REPO CIBUILD SCRIPT/

Slide 31

Slide 31 text

BOOTSTRAP SCRIPT/ ALL-IN-ONE SCRIPT THAT SETS UP EVERYTHING

Slide 32

Slide 32 text

BOOTSTRAP SCRIPT/ DEPENDENCY CHECKS + MIGRATIONS + BUNDLER ASSET COMPILATION

Slide 33

Slide 33 text

BOOTSTRAP SCRIPT/ S P E E D MD5 CHECKSUM: GEMFILE + ASSETS

Slide 34

Slide 34 text

BOOTSTRAP SCRIPT/ everywhere SCRIPT/SERVER SCRIPT/CONSOLE CI

Slide 35

Slide 35 text

BOOTSTRAP SCRIPT/ DESIGNERS ❤ THIS

Slide 36

Slide 36 text

BOOTSTRAP SCRIPT/ NON-TECHNICALS ❤ THIS

Slide 37

Slide 37 text

BOOTSTRAP SCRIPT/ DEVELOPERS ❤ THIS

Slide 38

Slide 38 text

REPLICATE-REPO SCRIPT/ A SUPPORT SCRIPT THAT LOADS PRODUCTION DATA LOCALLY

Slide 39

Slide 39 text

REPLICATE-REPO SCRIPT/ FLY YOUR PRODUCTION AR ASSOCIATIONS TO YOU IN DEVELOPMENT an rail dhh

Slide 40

Slide 40 text

REPLICATE-REPO SCRIPT/ an rail

Slide 41

Slide 41 text

REPLICATE-REPO SCRIPT/ FOR US, IT’S REPLICATE-REPO REPLICATE-#{OBJECT} BUT IT COULD BE YOUR

Slide 42

Slide 42 text

REPLICATE-REPO SCRIPT/ /RTOMAYKO/REPLICATE HTTP://

Slide 43

Slide 43 text

REPLICATE-REPO SCRIPT/ DUMPS BELONGS_TO & HAS_ONE ASSOCIATIONS

Slide 44

Slide 44 text

REPLICATE-REPO SCRIPT/ $ script/replicate-repo holman/spark CLONES ISSUES, PULL REQUESTS, USERS, GIT DATA, ETC.

Slide 45

Slide 45 text

REPLICATE-REPO SCRIPT/ AUTOMATE AUTOMATE AUTOMATE AUTOMATE AUTOMATE AUTOMATE BORING SUPPORT TASKS

Slide 46

Slide 46 text

CIBUILD SCRIPT/ OUR CONTINUOUS INTEGRATION ENVIRONMENT PREPARATION SCRIPT

Slide 47

Slide 47 text

CIBUILD SCRIPT/ SET ENV VARS + LOAD GC CONFIG + CLEAN WORK DIR BOOTSTRAP

Slide 48

Slide 48 text

CIBUILD SCRIPT/ VERSION CONTROL you TEST ENVIRONMENT

Slide 49

Slide 49 text

USE COMPUTERS TO DO THINGS

Slide 50

Slide 50 text

USE HUMANS TO DRINK WITH

Slide 51

Slide 51 text

USE COMPUTERS TO DO THINGS

Slide 52

Slide 52 text

THE STACK THE APP THE DEPLOY T H E C O M P A N Y

Slide 53

Slide 53 text

{ GROUP PARTICIPATION TIME }

Slide 54

Slide 54 text

EVERYONE LIFT YOUR 

Slide 55

Slide 55 text

OKAY NOW SMASH THEM 

Slide 56

Slide 56 text

NO?

Slide 57

Slide 57 text

OKAY, MAYBE THEY’RE EXPENSIVE, BUT THEY’RE ALSO A PAIN TO SET UP

Slide 58

Slide 58 text

MACHINES SHOULD BE expendable

Slide 59

Slide 59 text

WE’VE DONE THAT

Slide 60

Slide 60 text

I COULD SMASH THIS LAPTOP

Slide 61

Slide 61 text

JUST KIDDING OMG I’D GET MURDERED

Slide 62

Slide 62 text

AUTOMATED MACHINE SETUP  20 min

Slide 63

Slide 63 text

setu THE

Slide 64

Slide 64 text

FIRST DAY GET A LAPTOP RUN A ONE-LINER HAVE A BEER HACK

Slide 65

Slide 65 text

$ gh-setup project < >

Slide 66

Slide 66 text

DEPENDENCIES PROCESSES + fo 50 SERVICES & APPS

Slide 67

Slide 67 text

APPS DROPBOX HOMEBREW + + CHROME + 1PASSWORD + ETC.

Slide 68

Slide 68 text

DEPENDENCIES MYSQL NODE + + REDIS + POSTGRES RIAK + + RBENV + ETC.

Slide 69

Slide 69 text

+ CONFIG FULL-DISK ENCRYPTION SCREEN LOCKS VPN + ETC.

Slide 70

Slide 70 text

PUPPET

Slide 71

Slide 71 text

AUTO-REPORTING OF ANY FAILURE TO GITHUB ISSUES

Slide 72

Slide 72 text

USE COMPUTERS TO DO THINGS

Slide 73

Slide 73 text

THE DEPLOY THE APP THE STACK T H E C O M P A N Y

Slide 74

Slide 74 text

remembe : DON’T HANDLE YOUR OWN DEPLOYS

Slide 75

Slide 75 text

HUBOT HEAVEN +

Slide 76

Slide 76 text

HUBOT NODE.JS CHAT BOT HUNDREDS OF PLUGINS

Slide 77

Slide 77 text

HUBOT DEPLOY X TO Y

Slide 78

Slide 78 text

HUBOT DEPLOY X TO Y DEPLOY GITHUB TO PRODUCTION DEPLOY GITHUB TO PRODUCTION/FE DEPLOY SMOKE TO FS12,FE1

Slide 79

Slide 79 text

HUBOT DEPLOY X TO Y DEPLOY GITHUB TO PRODUCTION DEPLOY GITHUB TO PRODUCTION/FE DEPLOY SMOKE/HOTFIX TO FS12,FE1

Slide 80

Slide 80 text

HUBOT HEAVEN +

Slide 81

Slide 81 text

HEAVEN CAPISTRANO OR HEROKU SINATRA APP API TO HUBOT RUNS DEPLOYS ON OUR BOXES

Slide 82

Slide 82 text

HEAVEN DEPLOY LOCKING 1. YOU PUSH A BRANCH 2. CI STARTS A BUILD 3. BUILD PASSES 4. YOU DEPLOY BRANCH 5. HEAVEN PREVENTS DEPLOY CONFLICTS 6.YOU MERGE BRANCH 7. HEAVEN UNLOCKS DEPLOYS

Slide 83

Slide 83 text

HUBOT HEAVEN + FLEXIBLE SAFE EASY

Slide 84

Slide 84 text

USE COMPUTERS TO DO THINGS

Slide 85

Slide 85 text

T H E C O M P A N Y THE APP THE STACK THE DEPLOY

Slide 86

Slide 86 text

remembe : TAKE AWAY THE BULLSHIT

Slide 87

Slide 87 text

JUST BEING AN EMPLOYEE ADDS A LOT OF OVERHEAD LOGINS SITES TERMS REPORTS PAYROLL NAMES COMMUNICATION

Slide 88

Slide 88 text

REDUCE IT OAUTH EVERYTHING 50+ INTERNAL APPS UNDER OAUTH

Slide 89

Slide 89 text

REDUCE IT BUILD HELPERS TEAM APP HELPS US COMMUNICATE

Slide 90

Slide 90 text

CLARIFY IT WRITE A GUIDE FIRST-DAY GUIDE TO THE COMPANY

Slide 91

Slide 91 text

CLARIFY IT MAKE IT ACCESSIBLE MONITORS APP AND OFFICE TVS

Slide 92

Slide 92 text

USE COMPUTERS TO BUILD THINGS THAT CAN HELP YOUR ORGANIZATION SCALE TO THE EXTENT THAT NEW HIRES ACCLIMATE WITHOUT A LOT OF STRESS

Slide 93

Slide 93 text

THE APP THE STACK THE DEPLOY T H E C O M P A N Y

Slide 94

Slide 94 text

AUTOMATE EVERYTHING

Slide 95

Slide 95 text

WE HAVE ZERO MANAGERS BECAUSE WE AUTOMATE

Slide 96

Slide 96 text

LONG-TERM BENEFIT WILL ALWAYS OUTWEIGH SHORT-TERM COST

Slide 97

Slide 97 text

THANKS

Slide 98

Slide 98 text

NO FORKING HOLMAN @ LOST YO QUIT READING THIS SHIT ZACHHOLMAN.COM/TALKS