Kdy Kubernetes nenasazovat
Provozujeme Kubernetes pro klienty, kteří ho potřebují. A pravidelně klienty od Kubernetesu odrazujeme, protože ho nepotřebují. Obojí je součást stejné práce: dostat firmu k infrastruktuře, kterou uživí a zvládne provozovat.
Kolem Kubernetesu je tolik humbuku, že se z něj stal výchozí bod i tam, kde odpovídá na otázku, kterou nikdo nepoložil. Tenhle článek je o tom, jak poznat, že do téhle skupiny patříte, a co dělat.
Hlavní body
- Kubernetes řeší problémy velkého měřítka a mnoha týmů. Většina firem ani jeden nemá.
- Řídící vrstva stojí u placených tarifů kolem 73 USD měsíčně. Skutečnou cenou jsou lidé, kteří jí rozumí, a upgrady zhruba třikrát ročně.
- Pro jednu aplikaci nebo pár služeb bohatě stačí server s Docker Compose nebo spravovaná platforma.
- Nasaďte ho, teprve až vás k němu dotlačí reálná bolest z provozu.
Co Kubernetes ve skutečnosti stojí
Řídící vrstva spravovaného clusteru (EKS, AKS, GKE) vyjde u placených tarifů shodně kolem 73 USD měsíčně. To je v celkovém účtu šum. Skutečná cena je jinde.
Kubernetes je plnohodnotná platforma, kterou někdo musí umět. Potřebujete člověka, spíš dva kvůli dovolené a pohotovosti, který rozumí síťování podů, RBAC, ingressům, storage třídám, autoscalingu a tomu, proč se pod nespustil. Takoví lidé jsou drazí a špatně se shánějí.
K tomu se Kubernetes vyvíjí rychle: tři menší verze ročně, každá s podporou zhruba 14 měsíců. V praxi to znamená upgrade clusteru dvakrát až třikrát do roka, jinak běžíte na verzi bez bezpečnostních záplat. Každý upgrade je práce a riziko.
Náklad na Kubernetes se tak neměří v dolarech za control plane. Měří se v člověko-dnech, které mezitím neinvestujete do vlastního produktu.
Kdy Kubernetes nepotřebujete
Poznáte to podle několika signálů. Čím víc jich sedí, tím jistěji:
- Provozujete jednu hlavní aplikaci nebo pár služeb, které se vejdou na jeden až dva servery.
- Ve vašem týmu nikdo neprovozoval Kubernetes v produkci a nechcete, aby se to učil za ostrého provozu.
- Zátěž je předvídatelná a nemá prudké špičky, kvůli kterým byste škálovali z pěti instancí na padesát.
- Nasazujete několikrát týdně, ne stokrát denně.
- Nemáte více týmů, které by si potřebovaly navzájem izolovat prostředí.
Pokud tohle popisuje vaši firmu, Kubernetes vám nepřinese výhodu, kterou byste pocítili. Přinese hlavně nový provozní závazek na roky dopředu.
Co nasadit místo něj
Mezi „jeden server“ a „Kubernetes“ je celý žebřík řešení. Skoro vždy se dá zůstat níž, než člověk čeká. Těžší než provoz zvolené příčky bývá vybrat tu správnou.
Jeden server a Docker Compose. Pro spoustu aplikací úplně stačí slušný virtuál (třeba u Hetzneru za pár set korun měsíčně), Docker Compose a jednoduchá CI/CD pipeline. Nasazení, logy, restart. Nudné a spolehlivé.
Spravovaná platforma (PaaS). Azure App Service, Azure Container Apps nebo AWS App Runner vezmou váš kontejner a postarají se o běh, škálování i certifikáty. Container Apps navíc umí škálovat na nulu, takže za nevyužité služby neplatíte. Provozní zátěž je minimální.
Spravovaná orchestrace. Když potřebujete provozovat víc služeb, ale ne celou složitost Kubernetesu, AWS ECS na Fargate odvede velký kus práce a řídící vrstvu za vás spravuje poskytovatel.
Každá z těchto možností má strop, na který jednou narazíte. Dokud na něj nenarazíte, šetříte si peníze i provozní starosti a nic tím neztrácíte.
Kdy Kubernetes dává smysl
Aby to bylo férové: jsou situace, kdy je Kubernetes správná volba a rádi ho postavíme.
- Provozujete desítky služeb, které spolu komunikují, a potřebujete je jednotně nasazovat, verzovat a monitorovat.
- Zátěž kolísá tak, že ruční správa instancí přestává dávat smysl.
- Několik týmů potřebuje sdílet infrastrukturu s jasnými hranicemi a samoobsluhou.
- Chcete deklarativní, samoopravný provoz a máte nebo budujete platform tým, který ho uživí.
Společným jmenovatelem je vždycky měřítko a organizace firmy. S tím, co zrovna letí na konferencích, to nesouvisí. Jakmile tyhle věci nastanou, Kubernetes se z přítěže mění v páku.
Jak k tomu přistupujeme
Než u klienta cokoli navrhneme, ptáme se, co reálně provozuje a kdo to bude spravovat, až my odejdeme. Někdy je odpověď Kubernetes a postavíme ho pořádně. Často je odpovědí něco jednoduššího, co tým uživí bez nové specializace. Za dobrou infrastrukturu považujeme tu, na kterou během roku skoro nemyslíte.
Tohle rozhodnutí s klienty pravidelně procházíme, střízlivě a podle toho, co reálně provozují. Pokud ho zrovna řešíte, domluvte si s námi konzultaci.
Časté dotazy
Kdy Kubernetes opravdu potřebujeme?
Když provozujete mnoho vzájemně provázaných služeb, máte proměnlivou zátěž vyžadující automatické škálování, více týmů sdílí jednu infrastrukturu, nebo chcete deklarativní samoopravný provoz a máte lidi, kteří ho uživí. Pokud nic z toho neplatí, pravděpodobně vám stačí něco jednoduššího.
Co používat místo Kubernetesu?
Podle velikosti: jeden server s Docker Compose pro jednu aplikaci nebo pár služeb, spravovaná platforma jako Azure App Service, Azure Container Apps nebo AWS App Runner pro kontejnery bez správy serverů, případně AWS ECS na Fargate pro orchestraci více služeb bez provozování vlastního clusteru.
Kolik stojí provoz Kubernetesu?
Řídící vrstva spravovaného clusteru vyjde u placených tarifů shodně kolem 73 USD měsíčně u EKS, AKS i GKE. Hlavní náklad jsou ale lidé, kteří clusteru rozumí, a čas na upgrady, které přicházejí zhruba třikrát ročně. Právě tenhle provozní náklad se u malých týmů podceňuje.
Proč nám Kubernetes rozmlouváte, když ho sami provozujete?
Protože naším cílem je infrastruktura, kterou udržíte v chodu. Kubernetes stavíme tam, kde dává smysl, a jinde doporučíme jednodušší řešení. Pro nás je to stejná práce.