23
#GerritUserSummi t Gerrit Analytics Uncover the hidden value of your Gerrit Code Review Luca Milanesio [email protected] om

Gerrit Code Review Analytics

Embed Size (px)

Citation preview

Page 1: Gerrit Code Review Analytics

#GerritUserSummit

Gerrit AnalyticsUncover the hidden value of your Gerrit Code Review

Luca [email protected]

Page 2: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

• Founded in the UK• HQ in London, Offices in the UK and Italy• Committed to OpenSource

About GerritForge

Page 3: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

• Co-founder and Director of GerritForge • over 20 years in Agile

Development and ALM• Contributor to many

OpenSource projects• Mind and hands of

@gitenterprise and @gerritreview Twitter feeds

About Luca Milanesio

Page 4: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

NOT a lecture on Continuous Delivery

NOT a lecture on Code ReviewNOT a lecture on BigData

What NOT to expect?

Page 5: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

SHOW a Continuous Delivery scenario

Page 6: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

LEARNtogether from its problems

Page 7: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

EXPERIMENTa new approach using BigData

Page 8: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

DISCUSSresults together and iterate

Page 9: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery Pipeline

Push Build

Unit Tests

Push Build

Unit Tests

Automated

Tests

Push Build

Unit Tests

Automated

Tests

Beta Users

Tests

User's feedback Publish to all Users

Failed

Failed

Page 10: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Code Review & CD Validation

A1

refs/for/master

master

C2 C2*

A1 C2 (local)master

C2*

push

Verified: -1(build failed)

push

Verified: +1(build OK)

Reviewed: +2

CI Build: OK

C2*

CI Build: OK

amend

Page 11: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Git/Gerrit (Code Review)

Components

Jenkins (Continuous Integration & Delivery)

Page 12: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

We use micro-services–100+ Components–200+ Repositories–300+ People and 100,000+ of review comments

–Cross-components [implicit] dependencies–Lots of build chains–10,000+ of builds

Now feel the pain :-(

Page 13: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Problem #1 : Tons of logs slows us down

"Build was so fast a week ago … why is it getting so slow now?"

100Ks of logs are tough for Jenkins

Page 14: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

"It was working until 5 mins ago … then someone changed something"

Rings any bell?

Problem #2 : Ripple effect

Page 15: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

• Collect all review events• Collect all logs• Channel them to a central store• Crunch and Crunch continuously•Never delete• Process, inspect and learn

BigData to the rescue

Page 16: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery – Analytics Pipeline

Data Aggregatio

n Jobs

Page 17: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Gerrit plugins to extract analytics datahttps://gerrit.googlesource.com/plugins/analytics/

Page 18: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Gerrit plugins to generate real-time events on Kafkahttps://gerrit.googlesource.com/plugins/kafka/

Page 19: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery – Analytics Dimensions

Projects Commits

People Reviews

System Metrics

Page 20: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Continuous Delivery – Tools Dimensions

SCM / Code Review

CI / CD

Page 21: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

DEMO

Continuous Delivery Analytics

Page 22: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

•Collect more data (System, JVM, Review scores)•Real-time statistics•Events correlation•Feedback loop to Code-Review•Production data harvest•Collect Issue-Tracker logs for End-2-End cycle time

Future directions

Page 23: Gerrit Code Review Analytics

@gitenterprise @gerritreview #GerritUserSummit

Wants to know more?

www.gerritforge.com/contact