Какво е "Microservice"?
Микросървисите (или както е в оригинал "Microservices") са в основата на техника за разработка на софтуер, която разглежда приложението като колекция от слабо свързани услуги. Когато разработваме микросървисни архитектури, отделните услуги, които внедряваме трябва да са изпипани, а протоколите за комуникация между тях - леки. Микросървисите са разновидност на т.нар. "Service-Oriented Architectures" (SOA).
Какво представляват Service-Oriented Architectures?
Сървисно-ориентирани архитектури наричаме стила на софтуерно проектиране, при който приложенията са разделени на различни „услуги“. Те се свързват помежду си с помощта на комуникационен протокол през мрежа. При SOA проектирането, "услуга" (или "service") наричаме отделна единица функционалност, която може да бъде достъпна дистанционно и която може да се обновява независимо от останалите компоненти на приложението. В контекста на сървисно-ориентираните архитектури, една услуга има следните четири свойства:
- Логически тя трябва да представлява бизнес логика с ясно определен краен резултат;
- Тя трябва да е самостоятелна;
- Тя трябва да представлява "черна кутия" за другите компоненти. Това означава, че те не е необходимо да са наясно какво, как и защо се случва в нея;
- Тя може да се състои от множество базови услуги.
Различни услуги могат да се комбинират заедно, за да се създадат пълноценните функционалности на голямо софтуерно приложение. Това е принцип, който е застъпен и в т.нар. модуларно програмиране (Modular Programming).
Какво представлява Microservice Architecture?
Mикросървисната архитектура (Microservice Architecture - MSA) е разновидност на SOA, като и за двете няма една стандартизирана дефиниция. Разбира се, през годините се е оформил някакъв консенсус, благодарение на който можем да посочим ключовите характеристики на MSA. Най-общо казано те включват:
- Услугите в микросървисна архитектура са често пъти процеси, които комуникират през мрежа, за да изпълнят цел, използвайки технологично-агностични протоколи като HTTP;
- Услугите в микросървисната архитектура трябва да могат да се поддържат независимо една от друга;
- Услугите са организирани около конкретна бизнес логика;
- Услугите могат да бъдат имплементирани чрез различни програмни езици, бази данни, хардуерна и софтуерна среда, в зависимост от това какво пасва най-добре за отделния проект;
- Услугите са малки по размер, разработват се автономно, деплойват се независимо една от друга, дори на отделни физически или логически сървъри и се пускат чрез автоматизиран процес;
Микросървисите не са просто слой в някое монолитно приложение (например уеб контролер). Те по-скоро представляват самостоятелна част от бизнес функционалност, която има чист интерфейс и може през своите вътрешни компоненти да имплементира многопластова архитектура. От стратегическа гледна точка, микросървисните архитектури по същество следват философията на Unix, която гласи: "Направете едно нещо и го направете добре".
Ако вече имате основни познания в ASP.NET MVC, без значение дали е .NET Core или .NET Framework и искате да развиете своите архитектурни умения, спрямо различните видове сървърни приложения - запишете се на курса "Architecture of ASP.NET Core Microservices Applications - септември 2021". Не пропускайте този шанс, очакваме ви!