@jkubrynski / kubrynski.comMICROSERVICESTHE NAKED TRUTH OF THE MAINTAINABILITYJAKUB KUBRYNSKI[email protected] / @jkubrynski / kubrynski.com
View Slide
$ WHOAMIDEVSKILLER CO-FOUNDERBOTTEGA TRAINERDEVOXX.PL PROGRAM COMMITTEE MEMBERSPRING CLOUD CONTRACT CO-AUTHOR
Prawdziwego programistę poznaje się nie po tym, jak zaczyna, ale jakutrzymuje.
HOW MICRO?100 LOC?1K LOC?10K LOC?100K LOC?
1K LOCAVERAGE ENTERPRISE APP == 500K LOC1 ENTEPRISE APP == 500 MICROSERVICES
BUSINESS ORIENTEDFOR TECHNICAL STUFF WE HAVE LIBS
AUTONOMY
INDEPENDENCEP = P(1) * P(2) * ... * P(N)
99.8 * 99.8 * 99.8 = 99.4
99.9 ^ 10 = 99.0
AVAILABILITY VS DOWNTIME9 9 . 9 9 9 %35d 4d 8h 50m 5m per year2.5h 14m 1.5m 8s 0.8s per day
DEPTH ** SYNCHRONOUS
QUALITY
LOOSE COUPLINGOVERCANONICAL MODEL
AVOIDEND-TO-END TESTS
VERIFY CONTRACTSIF: A == C && B == CTHEN: A == B
DESIGN FOR FAILURE
RETRY
CIRCUIT BREAKERKEEP CALM AND FALLBACK
FIXAS ASAP AS POSSIBLE
PERFORMANCE
PERFORMANCE TESTSEXPENSIVEINACCURATETRICKY
PRODUCTION TRAFFICIS USUALLY ON PRODUCTION
MONITORINGAPPLICATION PERFORMANCE MANAGEMENT
ANSCOMBE'S QUARTET
PERCENTILESP50, P90, P95, P99
P??P95?P99?P99.5?
10 REQUESTS PER PAGEP90: 100% slow page viewsP95: 50% slow page viewsP99: 10% slow page views
P9910 PAGES PER SESSIONMEANS 100% FRUSTRATED USERS
MONITORP99.9 OR P99.95
AUTOMATION ** AS A CODE
PIPELINES AS A CODE
INFRASTRUCTURE AS A CODE
CONFIGURATION AS A CODE
QUESTIONS?
THANKS
"Have no fear of perfection - you'll never reach it." ― Salvador Dalí