Infraštruktúra a Tech Debt
Produkt, ktorý slúži 100 zákazníkom, nevydrží 10 000. Technická infraštruktúra a architektúra musia rásť s biznisom - ale kedy a ako investovať do technického zlepšenia?
Tech Debt
Čo je tech debt?
Analógia s finančným dlhom:
- Požičiaš si: Quick fix, skip tests, copy-paste
- Úrok: Spomalený vývoj, bugy, frustrovaný tím
- Splátka: Refactoring, rewrite, cleanup
Typy tech debt
| Typ | Príklad | Riešenie |
|---|---|---|
| Intentional | "Viem že je to hack, ale shipping dnes" | Plánované spláty |
| Accidental | Design decisions, ktoré sa ukázali ako zlé | Inkrementálny refactor |
| Bit rot | Zastarané dependencies, security vulnerabilities | Pravidelná údržba |
Kedy je tech debt OK?
- Pre PMF - rýchlosť je kľúčová
- Experiments a throwaway code
- Time-to-market rozhoduje
Kedy je tech debt problém?
- Spomaľuje delivery nových features
- Spôsobuje produkčné problémy
- Frustruje tím a zvyšuje turnover
- Onboarding nových devov je nightmare
Tech debt nie je zlý - je to nástroj. Problém je keď si "požičiavaš" bez plánu splátok.
Škálovanie Infraštruktúry
Rule of 10x
Architektúra by mala vydržať ~10x súčasnej záťaže. Pri každom 10x skoku potrebuješ upgrades.
100 users → 1,000 users → 10,000 users → 100,000 users
↓ ↓ ↓ ↓
Monolith Optimize Services Scale-out
DB, cache DB shards k8s, CDN
Čo škálovať prvé
-
Database - Najčastejší bottleneck
- Indexy
- Query optimization
- Read replicas
- Caching
-
API/Backend - Horizontal scaling
- Load balancer
- Stateless design
- Container orchestration
-
Frontend - CDN, caching
- Static assets
- Code splitting
- Edge computing
Monitoring je kritický
Nemôžeš zlepšiť čo nemeriš:
| Tool | Čo meria |
|---|---|
| APM (Datadog, New Relic) | Application performance |
| Logging (ELK, Loki) | Errors, debugging |
| Metrics (Prometheus) | System metrics |
| Tracing (Jaeger) | Request flow |
Kľúčové poznatky
Measure first, optimize second. Bez dát len hádzaš peniaze a čas na niečo, čo možno nie je problém.
Kedy Refaktorovať
Signály
| Signál | Závažnosť |
|---|---|
| Features trvajú 2x dlhšie | Medium |
| Časté produkčné issues | High |
| Devs sa boja meniť kód | High |
| Onboarding trvá mesiace | Medium |
| Security vulnerabilities | Critical |
Stratégie
Boy Scout Rule:
"Leave the code better than you found it."
Každá zmena trochu uprace.
Strangler Fig Pattern: Postupne nahrádzaj časti systému, nerobí veľký bang.
Old System ←→ New Service
│
└─ Migrate piece by piece
Dedicated Sprint: Pravidelné "tech debt sprints" (napr. 1 z 5).
Čomu sa vyhnúť
- Big Bang Rewrite - Takmer vždy zlyhá
- Premature optimization - Riešiť problém, ktorý nemáš
- Over-engineering - YAGNI
Praktické odporúčania
Pre 0-10 zákazníkov
- Monolith je OK
- PostgreSQL/MySQL stačí
- Deploy: Heroku, Railway, Vercel
- Focus: Shipping, nie architecture
Pre 100-1000 zákazníkov
- Prvý refactoring
- Caching (Redis)
- Basic monitoring
- CI/CD pipeline
Pre 1000-10000 zákazníkov
- Microservices consideration
- Database optimization
- CDN
- Advanced monitoring
- On-call rotation
Nepredbiehaj sa. Startupy častejšie zlyhávajú kvôli over-engineering ako kvôli nedostatočnej infraštruktúre. Rie šiba problémy keď prídu, nie pred tým.
SK Kontext
Slovenské výhody
- Silná dev komunita
- Kompetitívne platy pre devov
- EU regulations (GDPR) sú známe
Praktické tipy
- Cloud: AWS/GCP/Azure majú SK billing
- Hosting: Využi EU regióny pre GDPR
- Community: Pyvo, JavaScript SK, DevOps SK
Kľúčové poznatky
Technický dlh je investícia - používaj ho strategicky. Infraštruktúra musí rásť s biznisom - ale meraj, potom optimalizuj. A nikdy nerobí kompletný rewrite.
📚 Dodatočné materiály
Základné čítanie
- Martin Fowler: Technical Debt (Definícia a typy)
- Stripe Atlas: Scaling Engineering (Infrastructure guides)
SK/CZ Zdroje
Podcasty:
- Ecommerce Bridge - Tech scaling - Spotify
- CZ Podcast - Tech debt - czpodcast.cz
Tech Debt typy:
| Typ | Príklad | Riešenie |
|---|---|---|
| Intentional | Quick fix for deadline | Plánované spláty |
| Accidental | Zlé design decisions | Inkrementálny refactor |
| Bit rot | Zastarané dependencies | Pravidelná údržba |
Rule of 10x:
100 users → 1K → 10K → 100K
↓ ↓ ↓ ↓
Monolith Cache Services Scale-out
Škálovanie priority:
- Database - indexy, replicas, caching
- API/Backend - load balancer, stateless
- Frontend - CDN, code splitting
Refactoring stratégie:
- Boy Scout Rule - uprac čo nájdeš
- Strangler Fig - postupná migrácia
- Never Big Bang Rewrite
SK Dev komunity:
- Pyvo Bratislava - Python meetups
- JavaScript SK - JS komunita
- DevOps SK - Infrastructure meetups
Nástroje:
- Datadog - datadoghq.com - APM
- Sentry - sentry.io - Error tracking
- Prometheus + Grafana - Metrics & dashboards
- Vercel/Railway - Easy hosting (early stage)
Cloud provideri (EU regióny):
- AWS - eu-central-1 (Frankfurt)
- GCP - europe-west1 (Belgium)
- Azure - West Europe
Knihy:
- Designing Data-Intensive Applications - Martin Kleppmann
- The Phoenix Project - Gene Kim
- Site Reliability Engineering - Google
Video:
- InfoQ - Architecture talks
- GOTO Conferences - Tech scaling
Skopiruj prompt a vloz do obľúbenej AI pre personalizovane učenie.
Odpovedz na 3 otázky