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
Case study of the good enough architecture
Search
Jakub Kubryński
July 01, 2017
Programming
480
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Case study of the good enough architecture
Jakub Kubryński
July 01, 2017
More Decks by Jakub Kubryński
See All by Jakub Kubryński
Autonomous deployments in modern distributed systems
jkubrynski
1
130
Bulletproof communication in distributed systems
jkubrynski
0
570
JVM Workshop
jkubrynski
1
220
Engineering architecture
jkubrynski
0
840
JPA - Beyond Copy-Paste
jkubrynski
3
1.6k
Microservices - The Naked Truth Of The Maintainability
jkubrynski
1
740
Other Decks in Programming
See All in Programming
自分的「カンファレンスの楽しみ方」
syumai
0
170
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
120
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
130
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
650
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.6k
XHTMLが残したもの
yosuke_furukawa
PRO
1
300
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
110
Cloudflare is Agents
chimame
0
190
Go 1.27 における memory allocation の高速化
andpad
0
370
Press start. Python's next generation.
willingc
PRO
3
300
Oxlintはいいぞ(続)
yug1224
1
510
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Git: the NoSQL Database
bkeepers
PRO
432
67k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
230
The browser strikes back
jonoalderson
0
1.6k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Marketing to machines
jonoalderson
1
5.7k
Skip the Path - Find Your Career Trail
mkilby
1
210
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
510
Transcript
@jkubrynski CASE STUDY OF THE GOOD ENOUGH ARCHITECTURE JAKUB KUBRYNSKI
[email protected]
/ @jkubrynski / kubrynski.com
$ WHOAMI DEVSKILLER CO-FOUNDER BOTTEGA TRAINER DEVOXX.PL PROGRAM COMMITTEE MEMBER
OPEN SOURCE CONTRIBUTOR
"Have no fear of perfection - you'll never reach it."
― Salvador Dalí
WHAT YOU CAN LEARN FROM A STARTUP
IS THERE A PERFECT ARCHITECTURE?
FAST FEEDBACK AND COST-EFFECTIVE
1. MOST ORGANIZATIONS "DO AGILE" 2. MOST ORGANIZATIONS SHIP NEW
FEATURES IN MONTHS
DON'T DO AGILE. BE AGILE!
CONTINUOUS DELIVERY
RELEASE VS DEPLOYMENT
REGRESSION IS TOO EXPENSIVE
VERIFY CRITICAL PATHS AND LET YOUR USERS DO THE REST
BUT... CARE ABOUT UNIT TESTS AND FIX BUGS AS ASAP
AS POSSIBLE
MICROSERVICES AUTONOMOUS RELEASES CLOUD READY FAST PIPELINES
COMMUNICATION IS THE ROOT OF ALL EVIL
SLA 99.9 ^ 10 = 99.0
QUALITY SHARED MODEL? E2E TESTS?
CONTRACTS FTW! IF A==C && B==C THEN A==B
SAY NO TO VERSIONING BE UP TO DATE
PERFORMANCE
PERFORMANCE TESTS ARE EVEN MORE EXPENSIVE THAN REGRESSION
PERFORMANCE TESTS CANARY DEPLOYMENTS MONITORING
MONITORING IS THE NEW TESTING
MONITORING PERFORMANCE SYSTEM HEALTH EXCEPTIONS
METRICS EVERYWHERE LIVE BUSINESS INTELLIGENCE DATA DRIVEN ORGANIZATION
DATA DRIVEN MEANS ONLY VALUABLE STUFF
ANY ACTION IS AN INVESTMENT
THINK ABOUT ROI
SAFE TO FAIL MINIMIZE IMPACT
SAFE TO FAIL SELF-HEALING COMMUNICATION
SAFE TO FAIL INSTANT WARNING
SAFE TO FAIL ROLLBACK
SAFE TO FAIL ELIMINATE HUMAN ERRORS
REPEATABILITY
AUTOMATION
MACHINES COMPARED TO HUMANS: ARE GOOD IN REPEATING TASKS ARE
EASY TO ESTIMATE ARE MUCH CHEAPER
AUTOMATE TESTS
AUTOMATE DEPLOYMENTS
AUTOMATE SETUP
AUTOMATE INFRASTRUCTURE
EVERYTHING IS CODE APPLICATION SOURCE BUILD JOBS DEPLOYMENT PIPELINES DEPLOYMENT
SCRIPTS INFRASTRUCTURE OS CONFIGURATION APPLICATION PROPERTIES RUN BOOKS
NO BACKUPS * EXCEPT DATA AND GIT
MINIMIZE OVERHEAD BY KEEPING ORDER
CONVENTION OVER CONFIGURATION
CONVENTION EXAMPLE repository: git.acme.com/repos/{serviceName}.git artifactId: target/{serviceName}.jar application home: /opt/{serviceName} logs:
/opt/{serviceName}/logs/service.log dashboard: grafana.acme.com/dashboard/db/{serviceName} public ip: acme-prod-weu-{serviceName}-pip loadbalancer: acme-prod-weu-{serviceName}-lb VMs: acme-prod-weu-{serviceName}-vm-{i}
GOOD ENOUGH
KEY TAKEAWAYS MONITORING AUTOMATION CONVENTIONS CONTINUOUS DELIVERY
QUESTIONS?
THANKS FOR YOUR PATIENCE