Sdílet prostřednictvím


Shrnutí: Navrhování aplikací nativních 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.

Stručně řečeno, tady jsou důležité závěry z tohoto průvodce:

  • Nativní pro cloud je návrh moderních aplikací, které přijímají rychlé změny, velké škálování a odolnost v moderních dynamických prostředích, jako jsou veřejné, privátní a hybridní cloudy.

  • Cloud Native Computing Foundation (CNCF) je vlivná opensourcová konsorcia více než 300 velkých společností. Zodpovídá za přijetí cloudově nativních výpočetních prostředí napříč technologiemi a cloudovými zásobníky.

  • Pokyny PRO CNCF doporučují, aby nativní cloudové aplikace zahrnovaly šest důležitých pilířů, jak je znázorněno na obrázku 11–1:

    Cloud-native foundational pillars

    Obrázek 11–1 Základní pilíře nativní pro cloud

  • Mezi tyto pilíře nativní pro cloud patří:

    • Cloud a jeho základní model služby
    • Principy moderního návrhu
    • Mikroslužby
    • Kontejnerizace a orchestrace kontejnerů
    • Cloudové backingové služby, jako jsou databáze a zprostředkovatelé zpráv
    • Automatizace, včetně infrastruktury jako kódu a nasazení kódu
  • Kubernetes je hostitelské prostředí, které si můžete vybrat pro většinu aplikací nativních pro cloud. Menší, jednoduché služby se někdy hostují na bezserverových platformách, jako je Azure Functions. Mezi mnoha klíčovými automatizačními funkcemi poskytují obě prostředí automatické škálování pro zpracování proměnlivých svazků úloh.

  • Komunikace služby se stává významným rozhodnutím o návrhu při vytváření aplikace nativní pro cloud. Aplikace obvykle zpřístupňují bránu rozhraní API ke správě komunikace klientů front-endu. Back-endové mikroslužby se pak snaží vzájemně komunikovat, pokud je to možné, implementují asynchronní komunikační vzory.

  • gRPC je moderní vysoce výkonná architektura, která vyvíjí starý protokol vzdáleného volání procedur (RPC). Nativní cloudové aplikace často přijímají gRPC, aby zjednodušily zasílání zpráv mezi back-endovými službami. gRPC používá protokol HTTP/2 pro svůj transportní protokol. Může to být až 8krát rychlejší než serializace JSON s velikostí zpráv o velikosti 60–80 % menší. gRPC je open source a spravuje ho nadace CNCF (Cloud Native Computing Foundation).

  • Distribuovaná data jsou modelem často implementovanými aplikacemi nativními pro cloud. Aplikace oddělují obchodní funkce do malých nezávislých mikroslužeb. Každá mikroslužba zapouzdřuje vlastní závislosti, data a stav. Klasický model sdílené databáze se vyvíjí do jedné z mnoha menších databází, z nichž každá odpovídá mikroslužbě. Když kouř vymaže, objevíme se s návrhem, který zpřístupňuje database-per-microservice model.

  • Databáze No-SQL odkazují na vysoce výkonná nerelační úložiště dat. Vynikají ve svých charakteristikách snadného použití, škálovatelnosti, odolnosti a dostupnosti. Služby s velkým objemem, které vyžadují subsekundovou dobu odezvy, upřednostňují úložiště dat NoSQL. Šíření technologií NoSQL pro distribuované systémy nativní pro cloud není možné překonstatovat.

  • NewSQL je nově vznikající databázová technologie, která kombinuje distribuovanou škálovatelnost NoSQL a záruky ACID relační databáze. Databáze NewSQL cílí na obchodní systémy, které musí zpracovávat velké objemy dat napříč distribuovanými prostředími s úplným dodržováním předpisů v transakcích/ACID. Cloud Native Computing Foundation (CNCF) obsahuje několik databázových projektů NewSQL.

  • Odolnost je schopnost systému reagovat na selhání a stále zůstat funkční. Systémy nativní pro cloud přijímají distribuovanou architekturu, kde je selhání nevyhnutelné. Aplikace musí být sestaveny tak, aby elegantně reagovaly na selhání a rychle se vrátily do plně funkčního stavu.

  • Sítě služeb představují konfigurovatelnou vrstvu infrastruktury s integrovanými možnostmi pro zpracování komunikace služeb a dalších průřezových problémů. Oddělují křížové odpovědnosti od vašeho obchodního kódu. Tyto zodpovědnosti se přesunou na proxy služby. Označuje se jako Sidecar pattern, proxy se nasadí do samostatného procesu, který zajišťuje izolaci od vašeho obchodního kódu.

  • Pozorovatelnost je klíčovým aspektem návrhu aplikací nativních pro cloud. Vzhledem k tomu, že se služby distribuují mezi cluster uzlů, centralizované protokolování, monitorování a výstrahy, jsou povinné. Azure Monitor je kolekce cloudových nástrojů navržených tak, aby poskytovala přehled o stavu vašeho systému.

  • Infrastruktura jako kód je široce uznávaný postup, který automatizuje zřizování platforem. Vaše infrastruktura a nasazení jsou automatizované, konzistentní a opakovatelné. Nástroje, jako je Azure Resource Manager, Terraform a Azure CLI, umožňují deklarativní skriptování požadované cloudové infrastruktury.

  • Automatizace kódu je požadavkem pro aplikace nativní pro cloud. Moderní systémy CI/CD pomáhají naplnit tento princip. Poskytují samostatné kroky sestavení a nasazení, které pomáhají zajistit konzistentní a kvalitní kód. Fáze sestavení transformuje kód na binární artefakt. Fáze vydání převezme binární artefakt, použije konfiguraci externího prostředí a nasadí ho do zadaného prostředí. Azure DevOps a GitHub jsou plnohodnotná prostředí DevOps.