Proč je orchestrace kontejnerů důležitá?
- 7 min
V této jednotce můžete sledovat tým Tailspin, jak zkoumají strategie pro poskytování nové směrnice od vedení. Tým zkoumá, jak může Kubernetes pomoct při přechodu na architekturu mikroslužeb.
Budoucnost bude menší.
Situace se v Tailspinu zlepšuje. Při nedávném manažerském mítinku mimo kancelář představil Andy nedávné úspěchy svého týmu v použití Azure DevOps, které byly dobře přijaty. Andy také představil ukázku nedávného projektu testování konceptu týmu pomocí kontejnerů Dockeru. Tyto ukázky vedly k řadě produktivních konverzací o technické budoucnosti organizace. Další den se Andy vrátí ke sdílení zpráv s webovým týmem Space Game.
Andy: Včerejší offsite prezentace proběhla opravdu dobře. Vedení je ohromeno prací, které jsme zatím udělali, a vydalo nám speciální zadání.
Tim: Uh oh. Byl jsem tady dost dlouho, abych rozpoznal past jako tato, kterou jsem mohl vidět přicházet na míle daleko.
Andy: Ne, je to pro nás skvělá příležitost. Správa milovala naši ukázku kontejnerů Dockeru a chce, abychom prozkoumali architekturu mikroslužeb.
Amita: Mikroslužby? Líbí se aplikacím pro telefony a hodinky?
Andy: Ne, mikroslužby jsou typické aplikace, jako je naše webová aplikace. Hlavním rozdílem je, že místo vytváření a nasazování jedné monolitické aplikace refaktorujeme všechny komponenty, které by byly lépe udržovány a spravovány jako autonomní služby. Tyto služby pak sestavíme tak, aby byly dobré v tom, co dělají, a nasadíme je, aby fungovaly nezávisle.
Tim: Nejsem si jistý, že se mi to líbí. Už se zabývám tolika službami napříč našimi prostředími. Nevím, jestli chci víc na talíři.
Andy: To je pochopitelná starost. Naštěstí existuje několik skvělých nástrojů pro správu velkého množství kontejnerů v daném prostředí. Byli jsme požádáni, abychom pro naši webovou aplikaci orchestrovali vícekontenerové řešení, které je orchestrované pomocí Kubernetes. Chtějí také vědět, jak to ovlivní náš proces DevOps.
Mara: Četl jsem o Kubernetes. Azure má pro ni skvělou podporu prostřednictvím služby Azure Kubernetes Service a vím, že pro ni v Azure DevOps existuje podpora kanálu.
Amita: Tento proces zní, jako by byl složitý. Jak to ovlivní testování?
Mara: Nemělo by to být významná změna. Kubernetes nabízí způsob, jak provádět nasazení do různých jmenných prostor. To nám umožňuje rozdělit naše nasazení tak, abychom mohli mít celá prostředí vyhrazená pro testování a produkční prostředí. A protože všechny běží ve stejném clusteru a používají stejné kontejnery, testovací prostředí by mělo nabídnout to, co očekáváme v produkčním prostředí.
Amita: Bude obtížné sledovat, jaké prostředí je kde?
Mara: Ne, k tomu můžeme použít prostředí Azure DevOps. Pomocí portálu zjistíte, kde je každá služba a jak se tam dostala. Všechno je automatizované prostřednictvím potrubí, takže nebudeme muset nic ručně sledovat. Jediným problémem, který mám teď, je to, jaký dopad to bude mít na naše vývojové prostředí, aby to bylo možné vytvořit.
Andy: Dobrou zprávou je, že dopad je minimální. Za předpokladu, že máme naše projekty nastavené pro sestavování kontejnerů Dockeru, stačí nasadit do Kubernetes několik souborů manifestu, které popisují služby a jejich nasazení.
Mara: Přemýšleli jste o tom, co přepracujeme jako druhý kontejner? Vím, že existuje několik týmů, které nás požádaly o zpřístupnění naší tabulky výsledků prostřednictvím webového rozhraní API.
Andy: Jsem o krok před tebou. Minulou noc jsem rozštěpil projekt Dockeru a refaktoroval jsem funkcionalitu dat žebříčku do samostatné mikroslužby. To nám ponechá jeden kontejner pro web a druhý pro rozhraní API pro tabulku výsledků. Oba kontejnery jsou nakonfigurované tak, aby měly vlastní veřejné koncové body, které můžeme sdílet s kýmkoli, kdo chce web nebo rozhraní API používat, bez ohledu na to, jakou technologii aplikace používá. Pokud se zatížení u kterékoli možnosti podstatně zvětší, můžeme její kontejnery škálovat nezávisle.
Mara: Tento projekt zní skvěle! Začněme s aktualizací uvolňovací linky.
Co je Kubernetes?
Kubernetes je opensourcová platforma pro orchestraci kontejnerů, která automatizuje nasazení, škálování a správu kontejnerizovaných aplikací. Poskytuje architekturu pro spouštění distribuovaných systémů deklarativním, responzivním způsobem a dokáže spouštět kontejnery napříč několika hostiteli a poskytuje efektivní využití prostředků a vyšší spolehlivost.
Tým Tailspin pro tento scénář vybral Kubernetes, protože splnil všechny své potřeby:
Složitost nasazení s více kontejnery: Kubernetes je navržený především tak, aby automatizoval procesy týkající se nasazování a údržby nasazení kontejnerů.
Konzistence napříč prostředími a fázemi: stejně jako kontejnery zajišťují konzistentní nasazení pro aplikace, které obsahují, Kubernetes zajišťuje konzistentní nasazení kontejnerů, které cluster spravuje.
Podpora Azure DevOps: Azure DevOps nabízí prvotřídní podporu pro práci s Kubernetes.
Snadný vývoj: Dopad Kubernetes na zdrojový projekt je srovnatelný s přidáním podpory Dockeru, což je minimální a omezené na deklarativní konfiguraci.
Přijetí Kubernetes výrazně zjednodušuje proces přijetí architektury mikroslužeb, která využívá více kontejnerů Dockeru.