agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

52
Abraham Marin-Perez @AbrahamMarin fromfragiletoagile.c om Keeping Your CI / CD Pipeline as Fast as It Needs to Be #FastCI @AbrahamMarin @EqualExperts

Upload: abraham-marin-perez

Post on 11-Apr-2017

75 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Abraham Marin-Perez@AbrahamMarin

fromfragiletoagile.com

Keeping Your CI / CD Pipeline as Fast as It Needs to Be

#FastCI @AbrahamMarin @EqualExperts

Page 2: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About Me

Page 3: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About Me

Page 4: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About Me

Page 5: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About Me

Page 6: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About Me

Page 7: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About Me

Page 8: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About Me

Page 9: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About This Talk

Page 10: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About This Talk

Page 11: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About This Talk

Page 12: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About This Talk

Page 13: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

About This Talk

Page 14: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Page 15: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Slow feedback

Impact on ability to meet our SLAs

Pay per use

The Problems Of Size

Page 16: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Page 17: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

SUPER APP

# Files: 169# Tests: 1800Build Time: 9 minOutput: superapp.war

APP BACKEN

DSUPER

APP

# Files: 115# Tests: 1200Build Time: 6 minOutput: superapp.war

# Files: 72# Tests: 800Build Time: 4 minOutput: appbackend.jar

Page 18: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Microservices?

Page 19: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Microservices

Page 20: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Microservices

Page 21: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Microservices

Page 22: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Microservices

Page 23: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Microservices

Page 24: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Microservices

Page 25: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Build Pipeline Becomes a Network

Page 26: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be
Page 27: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

A real case scenario

Page 28: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Parent POM

Logging

Page 29: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Parent POM

Logging

28%

Page 30: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Parent POM

Logging

28%28%

28%

Page 31: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Parent POM

Logging

28%28%

28%

20%

Page 32: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Parent POM

Logging

48%

28%

28%

20%

Page 33: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Parent POM

Logging

Highest runfrequency

Lowest runfrequency

Page 34: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Highest runfrequency

Lowest runfrequency

Page 35: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Build Time (BT): time an individual build takes to run

Change Rate (CR): percentage of commits upon an individual build with respect to the whole system

Useful Metrics

Page 36: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Highest runfrequency

Lowest runfrequency

Page 37: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Parent POM

Logging

28%

Page 38: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Impact Time (IT): total time to run a build and all the builds that will be triggered as a result

Useful Metrics

Page 39: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

No dependants IT(A) = BT(A)

A

Useful Metrics

Page 40: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Serial execution IT(A) = BT(A) + IT(B) + IT(C)

B

A

C

Useful Metrics

Page 41: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Parallel execution IT(A) = BT(A) + max(IT(B), IT(C))

B

A

C

Useful Metrics

Page 42: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Highest runfrequency

Lowest runfrequency

Page 43: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Weighted Impact Time (WIT): impact time of a build weighted according to its change rage

WIT(A) = IT(A) * CR(A)

Useful Metrics

Page 44: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Average Impact Time (AIT): total time needed, on average, to execute all necessary builds after any given commit anywhere in the system

AIT = WIT(A) + WIT(B) + ... + WIT(Z)

Useful Metrics

Page 45: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Sample Thresholds

Page 46: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Average Impact Time

Average Impact Time is what indicates how well you have scaled your system

Sample Thresholds

Page 47: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Maximum Impact Time

In a worst-case scenario, a build won’t take longer than this.

Sample Thresholds

Page 48: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Maximum Impact Time for Critical Components

The same, but only for your most sensitive modules (log-in, payment gateway, etc.)

Beware of dependencies!

Sample Thresholds

Page 49: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Service

Service

Service

Highest runfrequency

Lowest runfrequency

Page 50: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Manual processingtakes time...

Page 51: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

https://commons.wikimedia.org/wiki/File:2012_Italian_GP_-_Lotus_wheel.jpg

Page 52: Agile roundabout 2017 01 - keeping your ci-cd system as fast as it needs to be

Thank You

@EqualExperts

equal-experts

equalexperts.com

Thank You

fromfragiletoagile.com@AbrahamMarin

#FastCI