Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Case study of the good enough architecture
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jakub Kubryński
July 01, 2017
Programming
490
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
140
Bulletproof communication in distributed systems
jkubrynski
0
580
JVM Workshop
jkubrynski
1
220
Engineering architecture
jkubrynski
0
850
JPA - Beyond Copy-Paste
jkubrynski
3
1.6k
Microservices - The Naked Truth Of The Maintainability
jkubrynski
1
750
Other Decks in Programming
See All in Programming
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
350
contenteditable と日本語入力に向き合う
colorful12
0
230
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
170
Domain-Driven Transformation
hschwentner
2
2.3k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
470
Performance Optimization With LLMs
xleitix
0
220
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
7k
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
1.2k
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
300
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
16
8.9k
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.1k
sbt 2.0: takeoff
eed3si9n
0
170
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
22k
How to Ace a Technical Interview
jacobian
280
24k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
Paper Plane
katiecoart
PRO
5
54k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
500
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Speed Design
sergeychernyshev
33
2.2k
A better future with KSS
kneath
240
18k
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