• Most individual user-generated cards sent in a single week: ~2 million • Registered user growth over December 2011: 211% (3.1x) • Revenue growth over December 2011: 135% (2.3x) • Number of commits to main app git repo: 44,545 • Number of commits to chef git repo: 4,447 • Peak traffic served: ~300 Mbps • Number of production deploys across applications: 1,631 • Number of staging deploys across applications: 10,600 • Unique animated gifs posted in Campfire: 3,208 Friday, January 18, 13
- A DevOps Oath I, [YOU], Do solemnly swear to help developers solve their problems, quickly and without [too many] yak- shaves and make their lives easier, so they can ship code, so that the company can improve, so that we all can be successful. I will do what it takes to avoid repeated tasks, help unblock the blocked, and generally make things work better. Friday, January 18, 13
WE COULD • Build a web ui to handle deploys • Make a simple script that wraps the common commands • Ignore them, haters gonna hate Friday, January 18, 13
I keep losing my changes or forget to commit ಠ_ಠ I want notifications when someone deploys I want to deploy multiple branches at once ಠ_ಠ ಠ_ಠ Friday, January 18, 13
• Ruby gem (on internal gemserver) • Self-updating (pp devtools update) • Built on top of Thor • Made to be extensible (easy to add apps, tasks, recipes) DEvTOOLS Friday, January 18, 13
I need to deploy but I don’t have ssh credentials ಠ_ಠ It takes too long to run the test builds Are we deploying? What step are we at? ಠ_ಠ ಠ_ಠ Friday, January 18, 13
Text # On your machine $ pp rails deploy earth quirkey/branch1 mrb/f2 # Does git merging, sends request to jenkins # On Jenkins, in a `deploy` job $ pp $APP deploy $ENV $BRANCHES --local # Skips the git stuff, just does the actual # deploy and sends the notifications Friday, January 18, 13
Jenkins • Global visibility (changed the game) • No fear of losing network connectivity during a deploy • Single point of orchestration • Being able to see the deploys and builds made the team want to make them faster and better Friday, January 18, 13
What branches are deployed to staging? ಠ_ಠ What just got deployed to production? Johnny just said he pushed something, but I can’t find it ಠ_ಠ ಠ_ಠ Friday, January 18, 13
devtools makes api calls to pushparty which records deploys in postgres then uses devtools to send them to jenkins which uses devtools to send progress and status to pushparty Friday, January 18, 13
devtools makes api calls to pushparty which records deploys in postgres then uses devtools to send them to jenkins which uses devtools to send progress and status to pushparty which uses devtools to announce the completed deploy in campfire Friday, January 18, 13
devtools makes api calls to pushparty which records deploys in postgres then uses devtools to send them to jenkins which uses devtools to send progress and status to pushparty which uses devtools to announce the completed deploy in campfire Friday, January 18, 13
Working with chef [with multiple team members working on multiple projects in multiple staging environments] is a pain in the butt. ಠ_ಠ Friday, January 18, 13
Awesome things I don’t have time to talk about • pp chef create_node • pp vagrant setup • pushparty bashrc’s • graphite integration Friday, January 18, 13
Awesome things I don’t have time to talk about • pp chef create_node • pp vagrant setup • pushparty bashrc’s • graphite integration • deploy build time graphs Friday, January 18, 13
Awesome things I don’t have time to talk about • pp chef create_node • pp vagrant setup • pushparty bashrc’s • graphite integration • deploy build time graphs • more every day Friday, January 18, 13