Programování

Azure Service Fabric: Co potřebujete vědět

Cloudové služby, jako je Azure, jsou srdcem rozsáhlých distribuovaných systémů, které hostují všechny druhy služeb. Některé z nich jsou hostovanou infrastrukturou, některé z nich jsou kontejnery a mikroslužby, některé jsou vývojové platformy a některé využívají vzory bez serveru.

Všichni potřebují jednu věc: platformu pro správu a orchestraci. Univerzální cross-cloudové nástroje, jako je Kubernetes, nabízejí jednu cestu k doručování spravovaného kontejnerového prostředí, ale existuje také místo pro vlastní prostředí, která se zaměřují na potřeby konkrétní cloudové platformy. V případě Azure to řeší nástroj, který je k dispozici od prvních dnů veřejného cloudu společnosti Microsoft: Azure Service Fabric.

Představujeme Azure Service Fabric

Skryté v základech Azure, Service Fabric může být těžké popsat. Ale vidíme to pořád, v nástrojích, které používáme k vytváření vlastního cloudového nativního softwaru. Je jádrem Azure Event Hubs a platformy IoT, jejích databází SQL a Cosmos DB a mnoha podnikových a spotřebitelských služeb, které používáme každý den. S Azure Service Fabric získáte přístup ke stejným nástrojům, které Microsoft používá ke spouštění a správě vlastních služeb a jejich vytváření do vlastního kódu.

Záměrem Azure Service Fabric je usnadnit nasazení a správu mikroslužeb, zpracování stavových i bezstavových operací napříč instancí PaaS Azure. Není to jen pro Azure, protože místní vývojový nástroj je kompletní verzí Azure Service Fabric, což znamená, že bude fungovat na jakémkoli systému Windows. Verze pro Linux umožňuje přenositelnost i do více cloudů a zpracovává stávající i vlastní kód.

Azure Service Fabric spravuje životní cyklus vaší aplikace s API, která poskytují další přístup na platformu nad rámec čistě samostatného kódu. Podporuje také vlastní mikroslužby herec / zpráva a také hostování kódu ASP.Net Core. Služby mohou běžet nativně jako procesy, nebo je můžete hostovat v kontejnerech, což vám dává možnost rychle přenést stávající kód do Azure PaaS. Kontejnery se mísí s jinými aplikačními modely Azure Service Fabric a umožňují vám rychle zahrnout existující funkce pomocí zvedání a posouvání nebo zahrnutím konkrétních zabalených aplikací.

Začínáme s Azure Service Fabric

Snad nejrychlejší způsob, jak začít s vývojem pomocí Service Fabric, je jeho rámec Reliable Services. Toto je sada API, která se integrují s funkcemi správy životního cyklu aplikace Azure Service Fabric. Můžete napsat kód v jakémkoli podporovaném jazyce nebo ve vašem výběru aplikačního rámce. Služby mohou být bez státní příslušnosti nebo stavové, bezstavové služby využívají ke zpracování stavu externí úložiště. Stavová možnost je zajímavější, protože ke správě stavu aplikace používá vlastní nástroje Service Fabric. Nemusíte uvažovat o škálování nebo vysoké dostupnosti; vše je za vás.

Pokud jste použili kolekce C #, najdete spolehlivé sbírky Reliable Service známé. Jsou také drženy ve stejné instanci jako váš výpočet, což snižuje latenci. Pokud služba selže, může načíst stav při opětovném spuštění. Mít různé modely stavu vám umožní vybrat model, který pro vaši službu funguje nejlépe. Jednoduché služby, které k provozu vyžadují pouze vstupní data, mohou být bez státní příslušnosti, ale pokud pracujete s kódem, který potřebuje znát předchozí stav, budete muset vytvořit spolehlivou službu.

Microsoft usnadňuje vytváření známých webových a aplikačních back endů na Azure Service Fabric s podporou pro ASP.Net Core. Ačkoli to není 100% kompatibilní s kódem s ASP.Net MVC, můžete migrovat stávající kód na novou platformu. Existuje podpora pro budování bezstavových i stavových služeb, předávání orchestrace aplikací a škálování do Azure Service Fabric.

Škálovatelná souběžnost s herci

Born-in-the-cloud applications should take advantage of the Reliable Actor framework. To rozšiřuje Reliable Services o implementaci virtuálních herců (jak je používán otevřeným rámcem Project Orleans, který je populární v herních backendech). Použití vzoru herec / zpráva ke zpracování mikroslužeb funguje dobře, protože jeho podkladový model souběžných systémů se rychle škáluje a dokáže zpracovat mnoho aktérů pracujících současně.

Spolehlivý herec není pro každý scénář. Funguje nejlépe, když lze váš kód rozdělit na jednoduché bloky výpočtu, které lze implementovat jako neblokující objekty s jedním vláknem, které nemají žádný stav nebo mají svůj vlastní stav. Je to nejlepší pro zcela nové aplikace, protože je těžké rozložit stávající kód. Vytváření aplikací pomocí nástroje Reliable Actor může být složité, i když jste definovali své herce. Musíte mít na paměti, že zatímco herci mohou být shromažďováni odpadky, jejich stav přetrvává a je přístupný, když v budoucnu zavoláte herce se stejným ID.

Spolehlivý herec řeší mnoho složitých problémů s distribuovaným výpočtem, budete si však muset pečlivě promyslet, jak mapujete objekty na herce a jak je budete používat ve svých aplikacích.

Azure Service Fabric jde do otevřeného zdroje

Společnost Microsoft nedávno oznámila, že jedná se o otevřenou službu Service Fabric, která mění vývojový model na model, který bude přijímat žádosti třetích stran o stažení, a zároveň umožňuje veřejný otevřený proces návrhu.

Přechod k vývojovému modelu s otevřeným zdrojovým kódem, spolu s procesem otevřeného návrhu, je obrovským počinem pro základní technologii, jako je Azure Service Fabric. Zatímco počáteční tranše otevřeného zdrojového kódu je založená na Linuxu, vývojový tým Microsoftu naznačil, že kód založený na Windows, který aktuálně běží v Azure, bude brzy následovat. Vývoj bude probíhat na GitHubu, přičemž velká část počáteční práce byla zaměřena na dokončení přechodu z interních platforem společnosti Microsoft na proces zaměřený na veřejnost.

Microsoft již nějakou dobu plánuje přinést open source Azure Service Fabric - přinejmenším od začátku linuxové větve kódu. Protože se jedná o novější kód a používá jiný nástroj než verze pro Windows, bylo mnohem jednodušší dostat tuto větev do podoby pro veřejné vydání. Nástroj Windows je složitější a má zhruba desetiletí historie, kterou je třeba rozluštit a refaktorovat. Hodně z toho je způsobeno použitím vývojových nástrojů pouze pro Microsoft, které nejsou k dispozici vnějšímu světu, a přepracováním potřebným k přesunu do veřejně dostupných nástrojů.

Díky nástroji, jako je Azure Service Fabric, máte k dispozici mnohem více možností než tradiční PaaS, zejména při vytváření nových aplikací od začátku. Podpora kontejnerů přidává možnost přinést zabalené aplikace vedle vašeho kódu. Podobně může použití známých rámců a vzorů zkrátit křivku učení. S otevřenou budoucností open source by Azure Service Fabric mohla být multicloudovým aplikačním frameworkem, který hledáte.