speed up continuous delivery with bigdata analytics

27
#JenkinsWorld Speed up Continuous Delivery with BigData Analytics Luca Milanesio

Upload: luca-milanesio

Post on 12-Apr-2017

411 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Speed up Continuous Delivery with BigData Analytics

#JenkinsWorld

Speed up Continuous Deliverywith BigData Analytics

Luca Milanesio

Page 2: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

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

About GerritForge

Page 3: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

• 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: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

NOT a lecture on Continuous Delivery

NOT a lecture on Code ReviewNOT a lecture on BigData

What NOT to expect?

Page 5: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

SO WHAT?#!@$!

Page 6: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

SHOW a Continuous Delivery scenario

Page 7: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

LEARNtogether from its problems

Page 8: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

EXPERIMENTa new approach using BigData

Page 9: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

DISCUSSresults together and iterate

Page 10: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

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 11: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

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 12: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

Git/Gerrit (Code Review)

Components

Jenkins (Continuous Integration & Delivery)

Page 13: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

DEMO

See the pipeline in action

Page 14: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

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 15: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

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 16: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

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

Rings any bell?

Problem #2 : Ripple effect

Page 17: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

In order to deliver Feature ABC I NEED

Ver. N of Service-A with Ver. M of Service-B and

Ver. K of Service C

Problem #3 : Dependencies

Page 18: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

Release small changes is GOODRelease often every change is GOOD

BUTHow long it takes the "Big Picture" and End-to-

End?Where is my bottleneck?

Problem #4 : Cycle time

Page 19: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

Problems #1 + #2 + #3 + #4 = DevOps meltdown

Problem #6 : all together

Page 20: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

• 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 21: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

Continuous Delivery – Analytics Pipeline

Data Aggregatio

n Jobs

Page 22: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

Continuous Delivery – Analytics Dimensions

Projects Commits

People Reviews System Metrics

Page 23: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

Continuous Delivery – Tools Dimensions

SCM / Code Review

CI / CD

Page 24: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

DEMO

Continuous Delivery Analytics

Page 25: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

•Collect more data (System, JVM, Review scores)•Real-time statistics•Events correlation•Feedback loop to Code-Review•Production data harvest•More?

Future directions

Page 26: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

Want to know more?

www.gerritforge.com/contact

Page 27: Speed up Continuous Delivery with BigData Analytics

@gitenterprise @gerritreview #JenkinsWorld

• GerritForge's blogwww.gitenterprise.me• Gerrit Code Review

www.gerritcodereview.com• Jenkins

www.jenkins.io• RabbitMQ

rabbitmq.com

Resources

• Apache Flumeflume.apache.org• Hadoop HDFS

hadoop.apache.org• Apache Spark

spark.apache.org• Kibana

github.com/elastic/kibana