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
0
440
Case study of the good enough architecture
Jakub Kubryński
July 01, 2017
Tweet
Share
More Decks by Jakub Kubryński
See All by Jakub Kubryński
Autonomous deployments in modern distributed systems
jkubrynski
1
120
Bulletproof communication in distributed systems
jkubrynski
0
540
JVM Workshop
jkubrynski
1
200
Engineering architecture
jkubrynski
0
820
JPA - Beyond Copy-Paste
jkubrynski
3
1.6k
Microservices - The Naked Truth Of The Maintainability
jkubrynski
1
730
Other Decks in Programming
See All in Programming
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
370
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2.2k
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
390
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
680
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
140
Data-Centric Kaggle
isax1015
2
620
これならできる!個人開発のすゝめ
tinykitten
PRO
0
150
CSC307 Lecture 05
javiergs
PRO
0
470
Basic Architectures
denyspoltorak
0
380
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
150
rack-attack gemによるリクエスト制限の失敗と学び
pndcat
0
220
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
730
Are puppies a ranking factor?
jonoalderson
0
2.6k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
41
GraphQLとの向き合い方2022年版
quramy
50
14k
Designing for humans not robots
tammielis
254
26k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
0
1k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
2.9k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
69
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Navigating Team Friction
lara
191
16k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
370
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