Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GerritHub.io - present, past, future

6,510 views

Published on

GerritHub.io was launched 2 years ago.
Learnings, problems and new ideas on how to improve the GitHub to Gerrit plugin and hints on Gerrit scalability and replication.

Published in: Technology
  • Be the first to comment

GerritHub.io - present, past, future

  1. 1. GerritHub.io
  2. 2. 2 .io About Luca • Luca Milanesio Co-founder of GerritForge • over 20 years of experience in Agile Development SCM and ALM worldwide • Contributor to Jenkins since 2007 (and previously Hudson) • Git SCM mentor for the Enterprise since 2009 • Contributor to Gerrit Code Review community since 2011
  3. 3. 3 .io About GerritForge Founded in 2009 in London UK Mission: Integrate Gerrit with the Enterprise
  4. 4. 4 .io Agenda  Where are we coming from?  Some numbers  Good learning  Problems  What's missing  What do you think?
  5. 5. 5 .io 2008 – 2013: Code Review world divided BRANCH + PULL REQUEST CHECKOUT + AMEND
  6. 6. 6 .io There are two fundamental problems with single- patch review systems: 1. They encourage lumping at-best-weakly-related changes together. 2. They encourage you to hide your history. [http://bit.ly/1hhQkcA] The pull-request system looks like an incredible easy way to contribute to any project hosted on Github [but] doing any proper and useful contribution to a software is never done right the first time. But as a software maintainer you'll end up with pull-request you'll never get finished unless you wrap things up yourself. [http://bit.ly/1o7HIb6] A big advantage in Github's favor is the number of developers that are familiar with it compared to Gerrit. Gerrit can be popular with Git power-users, but friction-free use of it requires intermediate or advanced git knowledge, and tolerance of a steep learning curve. [http://bit.ly/1cJV8IJ] I have no problem with people using github as a hosting site, but in order for *me* to pull from github, you need to (a) make a real pull request […]: real explanation, proper email addresses, proper shortlog, and proper diffstat. (b) since github identities are random, I expect the pull request to be a signed tag [http://bit.ly/1iONQ4L]
  7. 7. 7 .io Then GitHub plugin was born
  8. 8. 8 .io 2013 – Initial Features https://gerrit-review.googlesource.com/#/admin/projects/plugins/github 1. First ever OAuth 2.0 authentication for Gerrit 2. Authenticate using GitHub identity 3. Clone and Auto-Configure Replication 4. Imports Pull Requests  Gerrit Changes / Topics 5. Align Pull Request with Gerrit merge status
  9. 9. 9 .io First 4 months numbers Nov 2013 – Mar 2014 Statistics 1112 users 2399 changes 3311 repositories 77 GBytes
  10. 10. 10 .io Learning #1 New projects START SMALL on GitHub (not on Gerrit)
  11. 11. 11 .io Learning #2 When projects grow they NEED something like Gerrit
  12. 12. 12 .io Learning #3 Large projects WANT TO USE Gerrit but people are scared about it
  13. 13. 13 .io Learning #4 Nobody (except us of course) Like Gerrit UX Look & Feel
  14. 14. 14 .io Learning #5 Large projects NEED REPLICATION but is often complex to manage it
  15. 15. 15 .io Learning #6 Large projects USING REPLICATION have problems monitoring it
  16. 16. 16 .io Learning #7 cat learning[1-6] | sed -e "s/github/bitbucket/g"
  17. 17. 17 .io 2014-2015 – Extending features and contributors 6. Private GitHub repositories 7. GitHub Organisation / Teams as Group Backend 8. Automatic fetch GitHub Pull Request with WebHooks 9. OAuth 2.0 Scope selection from Gerrit session + 4 additional contributors
  18. 18. 18 .io 2 years on … new numbers  Nov 2015 Statistics 6574 users (+ 580%) 41,546 changes (+ 1,700%) 16,728 repositories (+ 530%) 500 GBytes (+ 500%)
  19. 19. 19 .io Open Problems
  20. 20. 20 .io Problem #1 Our success = Our curse NEED TO SCALE A LOT MORE
  21. 21. 21 .io Problem #1 - Options • Data sharding / GlusterFS • Gerrit virtual hosting • Massively increasing central node
  22. 22. 22 .io Problem #2 90% of the traffic is from USA (and our servers are in Germany)
  23. 23. 23 .io Problem #2 - Options • Moving central node to the USA (as GitHub does) • Multi-master replication • Edge-caching only
  24. 24. 24 .io Problem #3 People still doesn't understand REPLICATION Typical question is: "can I use Gerrit and rest of the Team pushing to GitHub?"
  25. 25. 25 .io Problem #3 - Options • Push + Pull replication plugin • Replication resolution console • GitHub WebHook to align Gerrit • Set GitHub as read-only
  26. 26. 26 .io Problem #4 Growth = more costs
  27. 27. 27 .io Problem #4 - Options • Quotas for FREE use • Charge for private Projects / Teams • Charge for Commercial use • Charge for Gerrit private virtual hosting
  28. 28. 28 .io Can we have something more?
  29. 29. 29 .io Most wanted features - #1 GerritHub "in a box" with GitHub:Enterprise
  30. 30. 30 .io Most wanted features - #2 GerritHub Replications status And resolution
  31. 31. 31 .io Most wanted features - #3 GerritHub for BitBucket
  32. 32. 32 .io Most wanted features - #4 GerritHub project-level Jira Integration
  33. 33. 33 .io Most wanted features - #5 What would you need?
  34. 34. 34 .io Try now http://GerritHub.io/login
  35. 35. 35 .io Become Contributor and add your features
  36. 36. 36 .io
  37. 37. Sign-in: http://gerrithub.io/login Gerrit book: http://gerrithub.io/book Learn more about Get your copy TODAY User Summit Reception Amazon.com

×