Úvodní diagnostika
Upřesníme problém, požadovaný výsledek, přístupy a omezení provozu. U existujícího prostředí nejprve ověřím skutečný stav.
Kontejnerizace, migrace a provoz aplikací v Dockeru, Docker Compose nebo Kubernetes. Řeším obraz aplikace, síťování, persistentní data, registry, aktualizace, monitoring i zálohy jako jeden provozní celek.
Stabilita závisí také na datech, síti, tajných údajích, dostupnosti registru, limitech zdrojů a postupu aktualizace. Platformu volím podle nároků aplikace a týmu; malý provoz nepotřebuje Kubernetes jen proto, že je dostupný.
Reprodukovatelné obrazy, vícefázové buildy, oddělená konfigurace, interní sítě a řízený provoz menších i středních aplikačních celků.
Nasazení workloadů, služby, ingress, persistentní svazky, namespaces, oprávnění, limity a postupné aktualizace podle požadované dostupnosti.
Registry, TLS, logování, metriky, alerty, zálohy dat a bezpečnost hostitelských serverů. Bez těchto částí není kontejnerové prostředí dokončené.
Přínosem je shodné a opakovatelné prostředí, jednodušší nasazení závislostí a jasnější oddělení služeb. Nevyřeší však špatně navrženou aplikaci ani chybějící provozní odpovědnost.
Docker sjednocuje způsob zabalení aplikace a jejích závislostí, takže stejný obraz lze testovat i provozovat v různých prostředích. Docker Compose je obvykle vhodný pro jednu aplikaci nebo menší počet služeb na jednom či několika spravovaných serverech; konfigurace zůstává čitelná a provozní režie je nízká. Kubernetes řeší plánování kontejnerů napříč clusterem, automatickou náhradu instancí, řízené aktualizace, síťové politiky a práci s větším počtem týmů či služeb. Přináší však další komponenty, znalosti a náklady. V obou případech je nutné samostatně řešit persistentní data, tajné hodnoty, registry, zálohy, monitoring, limity zdrojů a bezpečný proces nasazení. Kontejner sám nezaručuje dostupnost ani bezpečnost.
Volba se má řídit požadavky na škálování, dostupnost a tým, ne popularitou technologie. Pro stabilní firemní aplikaci na jednom serveru bývá Compose jednodušší na správu i obnovu. Kubernetes dává smysl, když je potřeba více uzlů, časté release, oddělené týmy nebo standardizovaná platforma pro řadu služeb. Před migrací se vyhodnotí stav aplikace, práce s daty, síťové závislosti a provozní kompetence. Často je nejbezpečnější nejprve vytvořit kvalitní image a pipeline a orchestrátor zvolit až potom.
Rozsah může být od přípravy jednoho Docker image po převzetí existujícího clusteru. U migrace nejprve ověřím data, síťové vazby a požadavky na odstávku.
Připravte repozitáře aplikace, současný způsob sestavení a nasazení, seznam služeb, portů, domén, persistentních dat a externích závislostí. Důležité jsou požadavky na dostupnost, očekávaná zátěž, prostředí pro testování a odpovědnost za databáze. U existujícího clusteru pomůže verze platformy, přehled uzlů, namespaces, ingressu, storage tříd a způsob zálohování. Než se zvolí orchestrátor, je potřeba vědět, kdo ho bude dlouhodobě aktualizovat, monitorovat a obnovovat.
Konkrétní rozsah i cenu lze určit až podle prostředí, dostupných podkladů a dopadu případného výpadku.
Upřesníme problém, požadovaný výsledek, přístupy a omezení provozu. U existujícího prostředí nejprve ověřím skutečný stav.
Rozdělím nutné zásahy, doporučená zlepšení a otevřená rizika. Změny s dopadem na provoz mají plán ověření i návratu.
Po provedení otestuji výsledek a předám shrnutí změn, potřebnou dokumentaci a doporučení pro další provoz.
Předání zahrnuje verzovanou definici služeb, popis konfigurace, práci s citlivými údaji a provozní postupy. U kritických aplikací je součástí návrhu i ověření dostupnosti, kapacitních limitů a obnovy persistentních dat.
Ne vždy. Pro menší počet služeb může být jednodušší a spolehlivější Docker Compose. Kubernetes dává smysl při požadavcích na orchestrace, oddělení týmů, škálování nebo vyšší dostupnost, pokud má firma kapacitu platformu provozovat.
Ano. Nejprve zmapuji obrazy, registry, konfiguraci, sítě, persistentní data, tajné údaje, přístupy a dostupné zálohy. Až potom navrhnu aktualizace nebo změnu architektury.
Zálohují se persistentní data a databáze, nikoli jen běžící kontejner. Postup závisí na typu úložiště a konzistenci aplikace a musí zahrnovat prakticky ověřenou obnovu.