Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Code, Test, Deploy

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Ben Balter Ben Balter
August 20, 2014

Code, Test, Deploy

How to Ship Software Like a Startup

Avatar for Ben Balter

Ben Balter

August 20, 2014
Tweet

More Decks by Ben Balter

Other Decks in Technology

Transcript

  1. ! Code, Test, Deploy How to Ship Software Like a

    Startup Ben Balter government.github.com [email protected]
  2. ! The world’s largest code-sharing platform " Founded 2008 !

    VC Funded $100M # Hubbers 232 $ Users 7M % Projects 15M
  3. ! In your datacenter, or in the cloud & GitHub.com

    (SaaS) Public engagement
 github.com/ngageoint '
 GitHub Enterprise (VM) Internal collaboration
 enterprise.github.com
  4. ! , Git * 2d96cfe - (HEAD, tag: v3.1.1, origin/master,

    origin/HEAD, master) :gem: bump (43 minutes ago) <Ben Balter> * f4b446b - remove stray backtick (44 minutes ago) <Ben Balter> * 83599e3 - Merge branch 'master' of https://github.com/benbalter/g-man (46 minutes ago) <Ben Balter> |\ | * 42514ea - Merge pull request #61 from devscott/laxco (50 minutes ago) <Ben Balter> | |\ | | * 072d9b5 - Adding in additional entry for La Crosse County, WI (54 minutes ago) <Scott Sloan> | |/ * | 1e95d95 - remove unresolvable domains (46 minutes ago) <Ben Balter> * | 1a8645a - remove uwyo.edu/CES (86 minutes ago) <Ben Balter> |/ * 70410ba - Merge pull request #60 from jpmckinney/canada (2 hours ago) <Ben Balter> |\ | * a77ad43 - Use consistent comments for Canada hosts (2 hours ago) <James McKinney> | * 1776e45 - Add more Canadian hosts (2 hours ago) <James McKinney> * | 05211a0 - Merge pull request #58 from mitio/bulgarian-government-domains (3 hours ago) <Ben Balter> |\ \ | * | fe8f862 - Add Bulgaria's government main domain (3 hours ago) <Dimitar Dimitrov> | |/ * | 85d0c7b - Merge pull request #59 from mitio/fix-readme-typos (3 hours ago) <Ben Balter> |\ \ | |/ |/| | * f558a90 - Add missing word in the readme (3 hours ago) <Dimitar Dimitrov>
  5. ! 4 Scripts to rule them all $ script/test Bootstrapping

    $ boxen giants $ cd ~/github/giants $ script/bootstrap Running $ script/server Testing
  6. # Shared Command Line •View cameras in our datacenter •

    Search error logs • Manage and trigger alerts • Perform server maintenance • View load balancer status • Spin up cloud instances • Provision servers • Adjust firewall ports • Activate DDoS Mitigation • Restart processes • Configure DNS • Deploy to production
  7. : On each push… •~1,500 test suits •~15,00 tests •~75,00

    assertions • x 2 environments (.com, Enterprise) •Tests > 20 seconds are considered a failure •~ 90 seconds to complete
  8. > A typical day at GitHub • 230 employees 


    (2/3rd remote) • 185 chatrooms • ~30,000 lines of text 
 (13,000 from Hubot) • ~500 images • 500+ deploys • 1000+ pushes • 320 issues opened •185 pull requests opened 
 (of which 145 merged that day)
  9. ! Code, Test, Deploy How to Ship Software Like a

    Startup Ben Balter government.github.com [email protected]