Loading...

Какво е "Microservice"?

avatar Георги Кацаров 2 минути
Какво е "Microservice"?

Микроуслугите (или както е по-популярно "Microservices") е техника за разработка на софтуер, която разглежда приложението като колекция от слабо свързани услуги. Когато разработваме микросървисни архитектури, услугите които внедряваме трябва да са изпипани, а протоколите - леки. Микроуслугите са разновидност на т.нар. "service-oriented architectures" (SOA).

Какво представляват Service-oriented architecture?

Сървисно-ориентирани архитектури наричаме стила на софтуерно проектиране, при който услугите се свързват с другите компоненти, чрез компонентите на приложението, с помощта на комуникационен протокол през мрежа. При SOA проектирането "услуга" (или "service") наричаме отделна единица функционалност, която може да бъде достъпена дистанционно и която може да се обновява независимо от останалите компонент на приложението. В контекста на сървисно-ориентираните архитектури, една услуга има следните четири свойства:
• Логически тя трябва да представлява бизнес активност с определен изход;
• Тя трябва да е самостоятелна;
• Тя трябва да представлява "черна кутия" за потребителите. Това означава, че те не е необходимо да са наясно какво, как и защо се случва в нея;
• Тя може да се състои от множество базови услуги;

Различни услуги могат да се комбинират заедно, за да се създадат пълноценните функционалности на голямо софтуерно приложение. Това е принцип, който е общ както за service-oriented architecture принципа, така и за модуларното програмиране.

А какво представляват microservices?

Подобно на принципа за SOA, разновидност на който се явяват и microservice-ите, за тях също няма една стандартизирана дефиниция. Разбира се, през годините се е оформил някакъв консенсус, благодарение на който можем да посочим ключовите характеристики на microservice-ите. Най-общо казано те включват:

• Услугите в микросървисна архитектуса (MSA) са често пъти процеси, които комуникират през мрежа, за да изпълнят цел, използвайки технологично-агностични протоколи като HTTP;
• Услугите в микросървисната архитектура трябва да могат да се поддържат независимо една от друга;
• Услугите са организирани около бизнес възможности;
• Услугите могат да бъдат имплементирани чрез различни програмни езици, бази данни, хардуерна и софтуерна среда, в зависимост от това какво пасва най-добре за отделния проект;
• Услугите са малки по размер, разработват се автономно, деплойват се независимо една от друга, децентрализирани, изградени и се пускат чрез автоматизиран процес;

Микросървисите не са просто слой в някое монолитно приложение (например уеб контролер или backend-for-frontend). Те по-скоро представляват самостоятелна част от бизнес функционалност, която има чист интерфейс и може през своите вътрешни компоненти да имплементира многопластова архитектура. От стратегическа гледна точка, микросървисните архитектури по същество следват философията на Unix, която гласи: "Направете едно нещо и го направете добре".

Ако вече имате основни познания в ASP.NET MVC, без значение дали е .NET Core или .NET Framework и искате да развиете своите архитектурни умения, спрямо различните видове сървърни приложения - запишете се на курса "Architecture of ASP.NET Core Microservices Applications - юни 2020". Не пропускайте този шанс, очакваме ви!