Úvod k aplikacím nativním pro cloud

Tip

Tento obsah je výňatek z eBooku, Architekting Cloud Native .NET Applications for Azure, který je k dispozici na webu Docs pro .NET nebo jako soubor PDF zdarma ke stažení, který si můžete přečíst offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Další den, v kanceláři, práce na "další velké věci".

Váš mobil vyzváněl. Je to váš přátelský náborový pracovník - ten, který denně volá s vzrušujícími novými příležitostmi.

Tentokrát se ale liší: start-up, vlastní kapitál a spousta finančních prostředků.

Zmínka o cloudu, mikroslužbách a špičkových technologiích vás nasdílí přes hraniční zařízení.

Rychle se v několika týdnech rychle chystáte a teď jste novým zaměstnancem v návrhové relaci, která navrhuje hlavní aplikaci elektronického obchodování. Budete soutěžit s předními weby elektronického obchodování.

Jak ho sestavíte?

Pokud budete postupovat podle pokynů z posledních 15 let, pravděpodobně sestavíte systém zobrazený na obrázku 1.1.

Traditional monolithic design

Obrázek 1–1 Tradiční monolitický design

Vytvoříte velkou základní aplikaci obsahující veškerou logiku vaší domény. Zahrnuje moduly, jako jsou Identity, Catalog, Ordering a další. Přímo komunikují mezi sebou v rámci jednoho procesu serveru. Moduly sdílejí velkou relační databázi. Jádro zveřejňuje funkce prostřednictvím rozhraní HTML a mobilní aplikace.

Gratulujeme! Právě jste vytvořili monolitickou aplikaci.

Ne všechno je špatné. Monolitické verze nabízejí několik jedinečných výhod. Jsou například jednoduché pro...

  • build
  • test
  • deploy
  • troubleshoot
  • vertikální škálování

Mnoho úspěšných aplikací, které existují dnes, byly vytvořeny jako monolitické. Aplikace je hit a pokračuje ve vývoji, iterace po iteraci a přidává další funkce.

V určitém okamžiku ale začnete cítit nepříjemně. Zjistíte, že ztrácíte kontrolu nad aplikací. Jak čas pokračuje, pocit se stává silnější a nakonec vstoupíte do stavu známého Fear Cyclejako :

  • Aplikace se stala tak složitou, že jí nikdo nerozumí.
  • Bojíte se provádění změn – každá změna má nezamýšlené a nákladné vedlejší účinky.
  • Nové funkce/opravy jsou složité, časově náročné a nákladné k implementaci.
  • Každá verze je co nejmenší a vyžaduje úplné nasazení celé aplikace.
  • Jedna nestabilní komponenta může dojít k chybovému ukončení celého systému.
  • Nové technologie a architektury nejsou volbou.
  • Implementace metodologií agilního doručování je obtížné.
  • Architektonické eroze se při zhoršení základu kódu s nikdy nekončícími "rychlými opravami".
  • Nakonec se konzultanti dostanou a řeknou vám, že to přepíšou.

Zní to dobře?

Mnoho organizací tento monolitický cyklus strachu vyřešilo přijetím přístupu nativního pro cloud k vytváření systémů. Obrázek 1–2 ukazuje stejný systém, který používá techniky a postupy nativní pro cloud.

Cloud-Native Design

Obrázek 1–2 Návrh nativní pro cloud

Všimněte si, jak se aplikace rozloží mezi sadu malých izolovaných mikroslužeb. Každá služba je samostatná a zapouzdřuje svůj vlastní kód, data a závislosti. Každý se nasadí v softwarovém kontejneru a spravuje ho orchestrátor kontejnerů. Místo velké relační databáze vlastní každá služba vlastní úložiště dat, což se liší podle potřeb dat. Všimněte si, že některé služby závisejí na relační databázi, ale na jiných databázích NoSQL. Jedna služba ukládá svůj stav do distribuované mezipaměti. Všimněte si, jak všechny přenosy směrují přes službu API Gateway, která zodpovídá za směrování provozu do základních back-endových služeb a vynucování mnoha křížových problémů. Nejdůležitější je, že aplikace plně využívá funkce škálovatelnosti, dostupnosti a odolnosti, které najdete na moderních cloudových platformách.

Nativní cloudová architektura

Hmm... Právě jsme použili termín Nativní pro cloud. Vaše první myšlenka může být: "Co přesně to znamená?" Další obor buzzword zřetězení softwarových dodavatelů na trh více věcí?"

Naštěstí je to úplně jiné a snad vám tato kniha pomůže přesvědčit vás.

Během krátké doby se nativní cloud stal hnacím trendem v softwarovém průmyslu. Jedná se o nový způsob vytváření rozsáhlých a složitých systémů. Přístup plně využívá moderní postupy vývoje softwaru, technologie a cloudovou infrastrukturu. Nativní cloud mění způsob návrhu, implementace, nasazení a zprovoznění systémů.

Na rozdíl od průběžného hypu, který řídí naše odvětví, je nativní pro cloud pro reálné. Vezměte v úvahu Cloud Native Computing Foundation (CNCF), konsorcium více než 400 velkých společností. Její charta spočívá v tom, že cloudově nativní výpočetní prostředí bude všudypřítomné napříč technologiemi a cloudovými zásobníky. Jako jedna z nejvlivnějších opensourcových skupin hostuje mnoho nejrychleji rostoucích opensourcových projektů na GitHubu. Mezi tyto projekty patří Kubernetes, Prometheus, Helm, Envoy a gRPC.

CNCF podporuje ekosystém open source a neutrality dodavatelů. Po tomto zájemci představuje tato kniha principy, vzory a osvědčené postupy nativní pro cloud, které jsou nezávislé na technologiích. Současně probereme služby a infrastrukturu dostupné v cloudu Microsoft Azure pro vytváření systémů nativních pro cloud.

Co přesně je nativní pro cloud? Posaďte se, relaxujte a pusťte se do zkoumání tohoto nového světa.