Úvod do aplikací nativních pro cloud

Návod

Tento obsah je výňatek z elektronické knihy Architektura cloud-native .NET aplikací pro Azure, která je k dispozici na .NET Docs nebo jako bezplatné PDF ke stažení, které si můžete přečíst offline.

miniatura obálky e-knihy Cloud-nativní aplikace .NET pro Azure.

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 posouvá za hranice.

Během několika týdnů se přesuňte dopředu a nyní jste novým zaměstnancem na návrhovém sezení, kde se navrhuje významná aplikace pro elektronické 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.

Tradiční monolitická struktura

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...

  • stavět
  • zkouška
  • nasadit
  • odstraňování problémů
  • 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 zhroucit celý systém.
  • Nové technologie a architektury nejsou volbou.
  • Implementace metodologií agilního doručování je obtížné.
  • Architektonická eroze nastává, když se základ kódu zhoršuje nekonečnými "rychlými opravami."
  • Nakonec konzultanti vstoupí a řeknou vám, abyste to přepsal/a.

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.

 návrhCloud-Native

Obrázek 1–2 Cloudově nativní návrh

Všimněte si, jak se aplikace rozloží mezi sadu malých izolovaných mikroslužeb. Každá služba je samostatná a obsahuje 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 jsou směrovány přes službu API Gateway, která je zodpovědná za směrování provozu do základních back-endových služeb a vynucování mnoha průřezových záležitostí. 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 Cloud Native. Vaším prvním nápadem může být: "Co přesně to znamená?" Další módní slovíčko vymyšlené softwarovými dodavateli, aby prodali 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í přístup ke cloudu skutečně autentický. Vezměte v úvahu Cloud Native Computing Foundation (CNCF), konsorcium více než 400 velkých společností. Jejím cílem je učinit cloud-native computing všudypřítomným napříč technologiemi a cloudovými platformami. 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ů. V tomto duchu tato kniha představuje cloudově nativní principy, vzory a osvědčené postupy, 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ě znamená Cloud Native? Posaďte se, relaxujte a pusťte se do zkoumání tohoto nového světa.