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

Breaking Into the Enterprise

Breaking Into the Enterprise

How we took a Saas App(Github.com) and packaged it up for the Enterprise. A bit of history about how we got there.

A86224d72ce21cd9f5bee6784d4b06c7?s=128

Corey Donohoe

April 23, 2012
Tweet

More Decks by Corey Donohoe

Other Decks in Technology

Transcript

  1. Enterprise Br I Monday, April 23, 12 The story of

    github’s enterprise product
  2. Enterprise L ’ F , ’ w r Monday, April

    23, 12 It has weird connotations Software generally gets delivered once a quarter You often have to work with bugs until the next release
  3. SaaS Software R P r Monday, April 23, 12 Variety

    of reasons, consumers buy software that’s hosted online
  4. Quickly D v r V Monday, April 23, 12 New

    Features Bugfixes
  5. Sane Pricing N P r Or r R q r

    Monday, April 23, 12 Month to Month Billing Self service instead of long sales negotiations If you don’t like it, you can move off to another service(normally)
  6. Enterprise W f w r S S? Monday, April 23,

    12 Philosophy Technology Process
  7. My name is H , C r D Monday, April

    23, 12
  8. @atmos Tw r Monday, April 23, 12

  9. On The Web . r Monday, April 23, 12

  10. GitHub.com I w r Monday, April 23, 12

  11. Collaboration S w r S Monday, April 23, 12 Make

    it easier to work on software together Discussions around changes
  12. 1.5 Million U r Monday, April 23, 12 A lot

    of those users love us All without taking any investment
  13. Problems Monday, April 23, 12 Everyone can’t use github.com, this

    makes me sad Some people won’t or can’t trust the SaaS model
  14. Who Can’t r ? Monday, April 23, 12 a lot

    of cases are banks, government, fortune 500 companies organizational structure can lead to this extremely rigid security concerns
  15. Trust v r b r r Monday, April 23, 12

    sometimes there’s legal reasons for this sometimes it’s a comfort level that people have organization’s source code is a huge deal
  16. Enterprise? W A Monday, April 23, 12 a lot of

    SaaS companies disagree with this approach give users the best products regardless of environment software development goes on all over the place
  17. Money W ’r b , Monday, April 23, 12 if

    we can make money off of this, let’s investigate it .com makes a lot of money but what if we were
  18. History A b f Monday, April 23, 12 It’s taken

    us a while to streamline everything so it’s not so painful
  19. GitHub:FI r w I Monday, April 23, 12 June of

    2009 we launched Firewall Install This shipped as a subset of overall github.com functionality
  20. BitRock P D Monday, April 23, 12 Bundle up github.com

    as an installer people could run
  21. JRuby R E v r Monday, April 23, 12 Deploying

    on JRuby allowed us to ship java class files This kept our code safe from people reading it and doing things with it
  22. Drawbacks T r ’ ffi Monday, April 23, 12 Cutting

    a release was complicated, there was no test suite People didn’t understand what FI actually meant JRuby doesn’t work the same way github.com ruby runtime does
  23. Drawbacks T r ’ r ffi Monday, April 23, 12

    new features were cherry picked into FI the codebase started diverging
  24. Drawbacks P Pr b Monday, April 23, 12 1 developer

    supporting customers, keeping up with 6 developers on .com Technical guys doing multi-month enterprise sales, they loathed it Quick release cycle we had on .com wasn’t there
  25. Let’s Kill it w ? Monday, April 23, 12 some

    employees wanted to kill it off, they thought it wasn’t worth our effort we had to support existing installs though, so we kept on working on it we had a bad feeling about it, so we started rethinking things.
  26. A New Hope L ’ R Monday, April 23, 12

    A year later we were still selling FI We now have 18 employees and still only 1 developer on FI We did have a dedicated sales person at this point
  27. Enter Chef fr Monday, April 23, 12 the FI dev

    started moving away from bitrock to chef this had a wonderful cascading effect on the entire project
  28. JRuby? w ? Monday, April 23, 12 jruby complicated things

    because it behaves differently than .com the class files were great but it complicated keeping things up to date what if we shipped on MRI, the more traditional version of ruby
  29. Unification v b Monday, April 23, 12 Found roughly 10k

    line code differences We started chipping away at combining them We started observing the important differences between the two codebases
  30. GitHub:FI r br GitHub:Enterprise Monday, April 23, 12 with the

    rebranding came a new philosophy about the product
  31. New Outlook P w r Monday, April 23, 12 enterprise

    features shouldn’t negatively impact github.com getting enterprise up and running should be trivial
  32. New Outlook H w w w r b r Monday,

    April 23, 12 everything needs to be well tested on enterprise and github.com differences between github.com and enterprise were done by feature switches cutting releases with bug fixes needs to be smooth too
  33. The Tech W r Monday, April 23, 12 almost entirely

    open source software github.com and enterprise both run on this stack
  34. Ruby 1.8.7 REE Monday, April 23, 12

  35. Ruby on Rails 2.3.14 Monday, April 23, 12 we’re a

    ruby on rails application
  36. MySQL 5.1 fr P r Monday, April 23, 12 mysql

    is pretty damn solid for us
  37. Redis 1. 2. Monday, April 23, 12 separate servers for

    different needs one is a big hash table for routing requests to file servers one is used for a variety of things, events and indexes mainly though
  38. GPG L M Monday, April 23, 12 we need a

    way to expire licenses so users renew GPG was a natural fit
  39. Ruby Encoder Ob E r Monday, April 23, 12 buys

    us the same functionality as the java class files did, bytecode and encryption allows us to run on the same ruby runtime as github.com 119 euros, worth every penny
  40. .GHP Files G H b P Monday, April 23, 12

    packages include enterprise source code and chef recipes to bring a system up to date similar to a war file or an installable bundle
  41. Infrastructure W b S S Monday, April 23, 12 github.com

    runs on 60 physical servers right now. how do we collapse the infrastructure?
  42. Huge Growth E r r S r b. Monday, April

    23, 12 github.com has a horizontally scalable infrastructure in one organization we can collapse that infrastructure down to one server how do we ensure that server is easy deployments
  43. Virtual Machines W A Monday, April 23, 12 Sane setup

    path for enterprise users, target one linux distribution, ubuntu Deploy all of enterprise to 1 VM
  44. OVF O V r F r Monday, April 23, 12

    VMware / VirtualBox / IBM Power Chef manages Configurations
  45. Cloud Pr R O Monday, April 23, 12 I’d love

    for people to buy a license and have it spin up on ec2 we’re not working on this.... yet
  46. How You Get it M EASY Monday, April 23, 12

  47. Signup r r . b. Monday, April 23, 12

  48. Trial 45 D f r Fr Monday, April 23, 12

  49. Download VM .GHP Monday, April 23, 12

  50. Advantages w r Monday, April 23, 12 Support feels out

    clients during the trial Ensure technical relationships are solid
  51. Sales S f Pr Monday, April 23, 12 free sales

    guys up for big negotiation-heavy sales savvy users can buy enterprise with a credit card if they want
  52. Innovation r Monday, April 23, 12 developers working on github.com

    can build new features, enterprise gets em for free .ghp provides quick and simple upgrade paths
  53. Process H r r r Monday, April 23, 12 GitHub.com

    gets improvements every day we work with support staff to identify issues and fix them we auto-deploy code as soon as our jenkins build turns green
  54. Bug Fixes I f Monday, April 23, 12 support staff

    works with end users to identify the bugs they fix the code and create a pull request one of the github.com developers reviews, comments, fixes, merges
  55. Discussions O r P R q Monday, April 23, 12

    a pull request is a discussion around a git branch our continuous integration server automatically builds the branch merge into github’s master branch and deploy
  56. Shipping I E U r’ H Monday, April 23, 12

    merge into github’s master branch and deployed to github.com enterprise cuts a new release of the latest .ghp with the bug fixes enterprise users download the latest .ghp with the bug fixes
  57. Winning U Pr Monday, April 23, 12 everyone has to

    care about all aspects of the product this turns out to be a very powerful thing there’s no organization finger pointing, “oh those enterprise guys are crazy again”
  58. Success K Monday, April 23, 12 one codebase to rule

    them all, git is awesome but diverging codebases are unmaintainable one process where all stakeholders are involved and passionate get bugfixes into end user’s hands as soon as possible.
  59. Simplify C r b Monday, April 23, 12 every person

    in your organization should feel empowered to make users happier
  60. Simplify C b r Monday, April 23, 12 work together

    effectively to discuss bug fixes and features figure out what works best for your organization
  61. Simplify D Monday, April 23, 12 automated testing with jenkins

    is a breeze automate everything, even our .ghp packages are rolled w/ 0 human interaction
  62. Profit Monday, April 23, 12 i think that other saas

    products can do a similar thing be it white labeling or selling on premise version of their software
  63. Thanks Monday, April 23, 12