Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Microservices - The Naked Truth Of The Maintainability
Search
Jakub Kubryński
April 03, 2017
Programming
1
650
Microservices - The Naked Truth Of The Maintainability
Jakub Kubryński
April 03, 2017
Tweet
Share
More Decks by Jakub Kubryński
See All by Jakub Kubryński
Autonomous deployments in modern distributed systems
jkubrynski
1
100
Bulletproof communication in distributed systems
jkubrynski
0
450
JVM Workshop
jkubrynski
1
180
Engineering architecture
jkubrynski
0
730
Case study of the good enough architecture
jkubrynski
0
370
JPA - Beyond Copy-Paste
jkubrynski
3
1.5k
Other Decks in Programming
See All in Programming
Ruby メモリ管理 プログラミング
megmogmog1965
0
130
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
160
Harnessing Large Language Models for Training-free Video Anomaly Detection
tereka114
1
1.3k
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
Xcode 16のPreviewModifierと@Previewableを活用した効率的なプレビュー方法の考察
ojun9
2
160
DynamoDB コスト最適化っぽいことの基本 with Terraform
kuro_kurorrr
2
250
HMSコンペ 11th Solution (team : kansai-kaggler)
t88
1
680
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
日付と正規化
megmogmog1965
0
140
OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた
tomiyan
0
790
継続的な活動で築く地方エンジニアの道
myamashii
2
350
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
Featured
See All Featured
It's Worth the Effort
3n
181
27k
RailsConf 2023
tenderlove
16
720
How to Ace a Technical Interview
jacobian
274
23k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
17
1.5k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.3k
Building Effective Engineering Teams - LeadDev
addyosmani
47
2.2k
Building an army of robots
kneath
301
42k
Embracing the Ebb and Flow
colly
81
4.3k
What's new in Ruby 2.0
geeforr
338
31k
Side Projects
sachag
451
42k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Transcript
@jkubrynski / kubrynski.com MICROSERVICES THE NAKED TRUTH OF THE MAINTAINABILITY
JAKUB KUBRYNSKI
[email protected]
/ @jkubrynski / kubrynski.com
$ WHOAMI DEVSKILLER CO-FOUNDER BOTTEGA TRAINER DEVOXX.PL PROGRAM COMMITTEE MEMBER
SPRING CLOUD CONTRACT CO-AUTHOR
Prawdziwego programistę poznaje się nie po tym, jak zaczyna, ale
jak utrzymuje.
HOW MICRO? 100 LOC? 1K LOC? 10K LOC? 100K LOC?
1K LOC AVERAGE ENTERPRISE APP == 500K LOC 1 ENTEPRISE
APP == 500 MICROSERVICES
BUSINESS ORIENTED FOR TECHNICAL STUFF WE HAVE LIBS
AUTONOMY
INDEPENDENCE P = P(1) * P(2) * ... * P(N)
99.8 * 99.8 * 99.8 = 99.4
99.9 ^ 10 = 99.0
AVAILABILITY VS DOWNTIME 9 9 . 9 9 9 %
35d 4d 8h 50m 5m per year 2.5h 14m 1.5m 8s 0.8s per day
DEPTH * * SYNCHRONOUS
QUALITY
LOOSE COUPLING OVER CANONICAL MODEL
AVOID END-TO-END TESTS
VERIFY CONTRACTS IF: A == C && B == C
THEN: A == B
DESIGN FOR FAILURE
RETRY
CIRCUIT BREAKER KEEP CALM AND FALLBACK
FIX AS ASAP AS POSSIBLE
PERFORMANCE
PERFORMANCE TESTS EXPENSIVE INACCURATE TRICKY
PRODUCTION TRAFFIC IS USUALLY ON PRODUCTION
MONITORING APPLICATION PERFORMANCE MANAGEMENT
ANSCOMBE'S QUARTET
PERCENTILES P50, P90, P95, P99
P?? P95? P99? P99.5?
10 REQUESTS PER PAGE P90: 100% slow page views P95:
50% slow page views P99: 10% slow page views
P99 10 PAGES PER SESSION MEANS 100% FRUSTRATED USERS
MONITOR P99.9 OR P99.95
AUTOMATION * * AS A CODE
PIPELINES AS A CODE
INFRASTRUCTURE AS A CODE
CONFIGURATION AS A CODE
None
QUESTIONS?
THANKS
"Have no fear of perfection - you'll never reach it."
― Salvador Dalí