GerritHub.io - present, past, future

37
GerritHub.io

Transcript of GerritHub.io - present, past, future

Page 1: GerritHub.io - present, past, future

GerritHub.io

Page 2: GerritHub.io - present, past, future

2 .io

About Luca

Luca MilanesioCo-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

Page 3: GerritHub.io - present, past, future

3 .io

About GerritForge

Founded in 2009 in London UK

Mission: Integrate Gerrit withthe Enterprise

Page 4: GerritHub.io - present, past, future

4 .io

Agenda Where are we coming from? Some numbers Good learning Problems What's missing What do you think?

Page 5: GerritHub.io - present, past, future

5 .io

2008 – 2013: Code Review world divided

BRANCH+

PULL REQUEST

CHECKOUT+

AMEND

Page 6: GerritHub.io - present, past, future

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]

Page 7: GerritHub.io - present, past, future

7 .io

Then GitHub plugin was born

Gerrit User S

ummit

2014

Page 8: GerritHub.io - present, past, future

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 Replication4. Imports Pull Requests Gerrit Changes /

Topics5. Align Pull Request with Gerrit merge status

Page 9: GerritHub.io - present, past, future

9 .io

First 4 months numbers

Nov 2013 – Mar 2014 Statistics

1112 users2399 changes

3311 repositories77 GBytes

Page 10: GerritHub.io - present, past, future

10 .io

Learning #1

New projects START SMALL

on GitHub (not on Gerrit)

Page 11: GerritHub.io - present, past, future

11 .io

Learning #2

When projects growthey NEED

something like Gerrit

Page 12: GerritHub.io - present, past, future

12 .io

Learning #3

Large projects WANT TO USE Gerrit

but people are scared about it

Page 13: GerritHub.io - present, past, future

13 .io

Learning #4

Nobody (except us of course)

Like Gerrit UX Look & Feel

Page 14: GerritHub.io - present, past, future

14 .io

Learning #5

Large projectsNEED REPLICATION

but is often complex to manage it

Page 15: GerritHub.io - present, past, future

15 .io

Learning #6

Large projectsUSING REPLICATION

have problems monitoring it

Page 16: GerritHub.io - present, past, future

16 .io

Learning #7

cat learning[1-6] |sed -e "s/github/bitbucket/g"

Page 17: GerritHub.io - present, past, future

17 .io

2014-2015 – Extending features and contributors

6. Private GitHub repositories7. 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

Page 18: GerritHub.io - present, past, future

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%)

Page 19: GerritHub.io - present, past, future

19 .io

OpenProblems

Page 20: GerritHub.io - present, past, future

20 .io

Problem #1

Our success = Our curseNEED TO SCALE A LOT MORE

Page 21: GerritHub.io - present, past, future

21 .io

Problem #1 - Options

• Data sharding / GlusterFS• Gerrit virtual hosting

• Massively increasing central node

Page 22: GerritHub.io - present, past, future

22 .io

Problem #2

90% of the traffic is from USA

(and our servers are in Germany)

Page 23: GerritHub.io - present, past, future

23 .io

Problem #2 - Options

• Moving central node to the USA(as GitHub does)

• Multi-master replication• Edge-caching only

Page 24: GerritHub.io - present, past, future

24 .io

Problem #3

People still doesn't understand

REPLICATIONTypical question is:

"can I use Gerrit and rest of the Team pushing to GitHub?"

Page 25: GerritHub.io - present, past, future

25 .io

Problem #3 - Options

• Push + Pull replication plugin• Replication resolution console

• GitHub WebHook to align Gerrit• Set GitHub as read-only

Page 26: GerritHub.io - present, past, future

26 .io

Problem #4

Growth = more costs

Page 27: GerritHub.io - present, past, future

27 .io

Problem #4 - Options

• Quotas for FREE use• Charge for private Projects / Teams

• Charge for Commercial use• Charge for Gerrit private virtual

hosting

Page 28: GerritHub.io - present, past, future

28 .io

Can we have something

more?

Page 29: GerritHub.io - present, past, future

29 .io

Most wanted features - #1

GerritHub "in a box"

with GitHub:Enterprise

Page 30: GerritHub.io - present, past, future

30 .io

Most wanted features - #2

GerritHub Replications status

And resolution

Page 31: GerritHub.io - present, past, future

31 .io

Most wanted features - #3

GerritHub for BitBucket

Page 32: GerritHub.io - present, past, future

32 .io

Most wanted features - #4

GerritHub project-level Jira Integration

Page 33: GerritHub.io - present, past, future

33 .io

Most wanted features - #5

What would you need?

Page 34: GerritHub.io - present, past, future

34 .io

Try now

http://GerritHub.io/login

Page 35: GerritHub.io - present, past, future

35 .io

Become Contributorand add your features

Page 36: GerritHub.io - present, past, future

36 .io

Page 37: GerritHub.io - present, past, future

Sign-in: http://gerrithub.io/login

Gerrit book: http://gerrithub.io/book

Learn more about

Get your copy TODAY

User Summit ReceptionAmazon.com