Azure Service Fabric: Какво трябва да знаете

Облачните услуги като Azure са по същество масивни разпределени системи, които хостват всякакви услуги. Някои от тях са хоствана инфраструктура, някои от тях са контейнери и микроуслуги, други са платформи за разработка, а други се възползват от безсървърните модели.

Всички те се нуждаят от едно: платформа за управление и оркестрация. Инструментите за кръстосани облаци с общо предназначение като Kubernetes предлагат един път за предоставяне на управлявана среда на контейнери, но има и място за персонализирани среди, които се фокусират върху нуждите на конкретна облачна платформа. За Azure това се обработва от инструмент, който съществува от най-ранните дни на публичния облак на Microsoft: Azure Service Fabric.

Представяме Azure Service Fabric

Скрит в основите на Azure, Service Fabric може да бъде трудно да се опише. Но ние го виждаме през цялото време в инструментите, които използваме за изграждане на собствен собствен облачен софтуер. Тя е в основата на платформата за събития на Azure и IoT платформата, нейните бази данни SQL и Cosmos DB, както и много от корпоративните и потребителските услуги, които използваме всеки ден. С Azure Service Fabric получавате достъп до същите инструменти, които Microsoft използва за стартиране и управление на собствените си услуги, като ги изгражда във вашия собствен код.

Целта на Azure Service Fabric е да улесни разгръщането и управлението на микросервизи, като обработва както операции с държавно състояние, така и операции без състояние в екземпляр на PaaS Azure. Това не е само за Azure, защото инструментът за локално разработване е пълна версия на Azure Service Fabric, което означава, че ще работи на всяка система на Windows. Версия на Linux го прави преносим и в множество облаци, обработвайки съществуващ и персонализиран код.

Azure Service Fabric управлява жизнения цикъл на вашето приложение, с API, които дават допълнителен достъп до платформата извън чисто самостоятелния код. Той също така поддържа собствени микроуслуги на актьор / съобщение, както и хостинг на ASP.Net Core код. Услугите могат да се изпълняват изцяло като процеси или можете да ги хоствате в контейнери, като ви дава възможност за бързо въвеждане на съществуващ код в PaaS на Azure. Контейнерите се смесват с други модели на приложения на Azure Service Fabric, което ви позволява бързо да включите съществуващата функционалност чрез повдигане и преместване или чрез включване на специфични пакетирани приложения.

Започнете с Azure Service Fabric

Може би най-бързият начин да започнете да се развивате със Service Fabric е неговата рамка за надеждни услуги. Това е набор от API, които се интегрират с функциите за управление на жизнения цикъл на приложенията на Azure Service Fabric. Можете да пишете код на всеки поддържан език или по ваш избор на рамка за приложение. Услугите могат да бъдат без гражданство или със състояние, като услугите без гражданство използват външно хранилище за обработка на състоянието. Опцията stateful е по-интересна, тъй като използва собствените инструменти на Service Fabric за управление на състоянието на приложението. Не е необходимо да обмисляте мащабиране или висока наличност; всичко се обработва за вас.

Ако сте използвали колекциите на C #, ще откриете, че надеждните колекции на Надеждната услуга са познати. Те също се държат в същия случай като вашето изчисление, намалявайки латентността. Ако услугата се провали, тя може да вземе състояние при рестартиране. Наличието на различни държавни модели ви позволява да изберете модела, който работи най-добре за вашата услуга. Простите услуги, които изискват само входни данни, за да работят, могат да бъдат без гражданство, но ако работите с код, който трябва да знае предишното състояние, ще трябва да изградите надеждна услуга.

Microsoft улеснява изграждането на познати уеб и приложения на Azure Service Fabric с поддръжка за ASP.Net Core. Въпреки че не е 100-процентово съвместим с ASP.Net MVC, можете да мигрирате съществуващия код към новата платформа. Има поддръжка за изграждане както на услуги без гражданство, така и на състояния, предаване на оркестрация на приложения и мащабиране на Azure Service Fabric.

Мащабируемо съвпадение с актьори

Приложенията, родени в облака, трябва да се възползват от рамката за надежден актьор. Това разширява надеждните услуги за внедряване на виртуални актьори (както се използва от отворената рамка на Project Orleans, която е популярна в задните части на игрите). Използването на модел на актьор / съобщение за работа с микроуслуги работи добре, тъй като в основата на неговите едновременни моделиращи системи се мащабира бързо и могат да се справят с много действащи лица едновременно.

Надеждният актьор не е за всеки сценарий. Това работи най-добре, когато кодът ви може да бъде разделен на прости блокове на изчисления, които могат да бъдат внедрени като неблокиращи еднонишкови обекти, които нямат състояние или имат собствено състояние. Най-добре е за изцяло нови приложения, защото е трудно да се разложи съществуващия код. Изграждането на приложение с помощта на надежден актьор може да бъде сложно, дори когато сте дефинирали актьорите си. Трябва да имате предвид, че докато актьорите могат да се събират боклук, състоянието им ще продължи и ще бъде достъпно, когато в бъдеще се обадите на актьор със същия идентификатор

Надеждният актьор решава много сложни проблеми с разпределени изчисления, въпреки че ще трябва да помислите внимателно как картографирате обекти към актьори и как ще ги използвате във вашите приложения.

Azure Service Fabric отива с отворен код

Microsoft наскоро обяви, че е услуга с отворен код Fabric, променяйки модела за разработка на такъв, който ще приема заявки за изтегляне от трети страни, както и позволява публичен, отворен процес на проектиране.

Преминаването към модел за разработка с отворен код, заедно с отворен процес на проектиране, е огромно начинание за фундаментална технология като Azure Service Fabric. Докато първоначалният транш с отворен код е базиран на Linux, екипът за разработка на Microsoft посочи, че базираният на Windows код, който в момента се изпълнява в Azure, ще последва скоро. Разработката ще бъде върху GitHub, като голяма част от първоначалната работа е фокусирана върху завършването на прехода от вътрешните платформи на Microsoft към публичен процес.

Microsoft планира да достави Azure Service Fabric с отворен код за известно време - поне от началото на клона на кода на Linux. Тъй като това е и по-нов код, и използва различен инструмент от версията на Windows, е много по-лесно да приведем този клон във форма за публично пускане. Инструментът на Windows е по-сложен, с около десетилетие история, която трябва да бъде разгадана и реконструирана. Голяма част от това се дължи на използването само на инструменти за разработка на Microsoft, които не са достъпни за външния свят, плюс преработката, необходима за преместването му в публично достъпни инструменти.

Наличието на инструмент като Azure Service Fabric на ваше разположение ви дава много повече възможности от традиционните PaaS, особено когато създавате нови приложения от нулата. Поддръжката за контейнери добавя възможността да въвеждате пакетирани приложения заедно с вашия код. По същия начин използването на познати рамки и модели може да съкрати кривата на обучение. С предстоящото бъдеще с отворен код, Azure Service Fabric може да бъде платформата за мултиклауд приложения, която търсите.