Jak za polovinu ceny získat 8× více RAM, CPUs, NVMe storage, rychlý deployment a jednodušší infrastrukturu — aneb přechod z DigitalOcean na Hetzner a dedikované servery.
.
Obsah článku
- Úvod
- Výchozí stav: DigitalOcean + Easypanel
- Limity sdílených VPS při buildech
- Infra server a oddělení správy infrastruktury
- Dokploy jako nástroj pro deploy a správu
- Monitoring pomocí Promethea a Grafany
- Produkce na dedikovaném serveru
- Náklady, výkon a provozní dopady
- Závěr
Úvod
Na Strategio serverech dlouhodobě běží několik klientských aplikací, interních systémů a dalších služeb. Jde o produkční provoz postavený na technologiích – PHP, Node a Go – s pravidelnými deployi, build procesy a požadavky na stabilitu i výkon. Infrastruktura proto musí zvládat jak samotný běh aplikací, tak náročnější buildy a správu více služeb najednou.
Výchozí stav: DigitalOcean + Easypanel
Původní infrastruktura běžela na DigitalOcean a skládala se ze dvou VPS (droplety):
- VPS 2vCPU, 8 GB RAM, 160GB storage
- VPS 4vCPU, 4 GB RAM, 80GB storage
Celkem:
- 6 vCPU
- 12 GB RAM
- 240 GB NVMe
- cena: 72 USD / měsíc
Nad touto infrastrukturou byl přibližně 4-5 let používán Easypanel s placenou licencí, která umožňovala primitivní monitoring a zálohování databází do vlastních AWS S3 úložišť. Setup byl dlouhodobě funkční a odpovídal potřebám provozu.
Problém: buildy a paměť
Limitem se postupně staly build procesy, typicky u frontendových aplikací.
Konkrétně:
- build Nuxt.js aplikace si dokázal vzít cca 1–1.5 GB RAM
- build běžel na stejném serveru jako produkční služby
- při souběhu více procesů docházelo k vyčerpání paměti
Důsledky:
- pád celého serveru
- velmi pomalé deploye
- nutnost hlídat RAM při každém nasazení
Alternativní PaaS nástroje
Existují open-source alternativy jako CapRover nebo Coolify, které jsou zdarma a v komunitě poměrně rozšířené. Tyto nástroje ale nebyly detailně zkoumány. Cílem nebylo hledat jiný PaaS, ale změnit samotný způsob, jak je infrastruktura navržená. Klíčovým problémem totiž nebyl konkrétní deploy nástroj, ale fakt, že build procesy a běh aplikací sdílely stejné prostředky. Řešení proto nespočívalo ve výměně PaaS, ale ve změně architektury infrastruktury.
Infra server na Hetzner VPS
Jako první krok byl nasazen samostatný VPS u Hetzner:
Hetzner VPS
- 4 GB RAM
- 2 vCPU
- 40 GB SSD
- 3.62 € / měsíc
Dostupnost:
- dlouhodobě bez problémů
- monitorována přes placený UptimeRobot
- nižší latence než do Frankfurtu
- datacentra ve Falkensteinu a Norimberku
Z tohoto VPS vznikl server pro správu infrastruktury, který lze podle potřeby resizovat, navýšit nebo přenést jinam.
Dokploy, Prometheus a Grafana
Na infra serveru běží:
Dokploy
- plně free, self-hosted
- správa a deploy služeb na ostatních serverech
- přehledné webové rozhraní
- možnost oddělit build a deploy servery
- jediné omezení je monitoring (ale vyřešeno přes Prometheus a Grafanu)
- https://dokploy.com/
Prometheus
- plně free, self-hosted
- sběr metrik ze všech serverů
- https://prometheus.io/
Grafana
- plně free, self-hosted
- detailní dashboardy
- předpřipravené přehledy
- napojení na Prometheus na několik kliknutí
- https://grafana.com/
Výsledkem je výrazně lepší přehled nad stavem infrastruktury, než jaký byl k dispozici dříve.
Produkce na dedikovaném serveru
Produkční služby běží na dedikovaném serveru z Hetzner aukce:
- AMD Ryzen 7 3700X
- 8 fyzických jader
- 16 vláken
- 64 GB RAM, ECC
- 2× 1 TB NVMe v RAIDu (2 TB celkem)
- 40 € / měsíc (seženete i levnější)
Na tomto serveru:
- běží pouze produkční služby
- je nainstalován jen node-exporter (poskytuje end-point Prometheu)
- data si pravidelně sbírá Prometheus z infra serveru
Server může být jeden z více, které lze spravovat centrálně z jednoho místa.
Náklady, výkon a provozní dopady
Původní stav
- DigitalOcean + licence easypanel
- cca 28–30 tis. Kč / rok (vč. DPH)
Současný stav
- Hetzner VPS (infra)
- Hetzner dedicated server
- cca 16 000 Kč / rok (vč. DPH)
Zároveň:
- 8× více RAM
- 8 CPU + 16 vláken (vs. 6 vCPU)
- 6× větší NVMe úložiště
- buildy 2–3× rychlejší
- jasně oddělená infrastruktura
- výrazně lepší přehled nad provozem
Závěr
Výsledná infrastruktura je dnes přibližně 2× levnější než původní řešení na DigitalOcean, ale je fér říct, že ani tohle není nejlevnější varianta, jakou bylo možné zvolit. Dedikovaný server s 64 GB RAM vznikl spíš jako vědomé rozhodnutí mít velkou provozní rezervu než jako nutná minimum konfigurace.
Čistě technicky by šlo jít ještě výrazně níž. Varianta postavená například na 8 GB VPS by se i s DPH vešla zhruba do 3 200 Kč ročně, což je cca 9× levnější než původní stav.
Současná konfigurace tak není o honbě za nejnižší cenou, ale o pohodě. O tom, že není potřeba řešit každý gigabajt RAM, že buildy probíhají bez pádů serveru a že je k dispozici dostatek prostoru i na věci, které s produkcí přímo nesouvisí. Upřímně – v aukci trochu svrběly prsty a mít rezervu „jako prase“ se ukázalo jako příjemný vedlejší efekt. Když už nic jiného, je tu aspoň jistota, že si tam lze kdykoliv pustit třeba i Minecraft server.
Samotná změna providera by znamenala citelný posun, ale teprve kombinace oddělené architektury, dedikovaného výkonu a jednoduchých self-hosted nástrojů umožnila dosáhnout maximálního efektu. Výsledkem je přehledná a rozšiřitelná infrastruktura s výrazně lepším poměrem ceny, výkonu a provozního komfortu než u původního VPS řešení.