Proč je orchestrace kontejnerů důležitá?

Dokončeno

V této lekci můžete sledovat tým Tailspin při zkoumání strategií pro poskytování nové direktivy ze správy. Tým zkoumá, jak může Kubernetes pomoct při přechodu na architekturu mikroslužeb.

Budoucnost je menší.

Věci se dívají na Tailspin. V nedávném managementu mimo pracoviště představil Andy nedávné úspěchy svého týmu s 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ěci byly v mé prezentaci mimo pracoviště včerejší. Vedení je ohromeno prací, které jsme zatím udělali, a vydalo nám speciální zadání.

Tim: Uh oh. Byl jsem dost dlouhý, abych viděl past, jako je ta, která pochází z míle daleko.

Andy: Ne, tohle je 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 v našich prostředích. Nevím, jestli chci víc na talíři.

Andy: To je pochopitelný problém. 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 to bylo složité. Jak to ovlivní testování?

Mara: Nemělo by to být významná změna. Kubernetes nabízí způsob nasazení do různých oborů názvů. 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 těžké 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 kanálu, takže nebudeme muset ručně sledovat nic. 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: Dobrá zpráva 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 budeme refaktorovat 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. Minulý večer jsem rozvětvoval projekt Dockeru a refaktoroval jsem funkci dat tabulky výsledků do vlastní 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í podstatně zvětšuje, můžeme jeho kontejnery škálovat nezávisle.

Mara: Tento projekt zní úžasně! Pojďme začít aktualizovat kanál verze.

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.

Prověřte si své znalosti

1.

Který z následujících důvodů není dobrým důvodem pro použití mikroslužeb?

2.

Jak jsou Docker a Kubernetes podobné?

3.

Předpokládejme, že váš tým má v řešení několik projektů .NET Core, které vytváří více kontejnerů Dockeru. Kolik režie vyžaduje přidání podpory Kubernetes?