Дипломна работа

Среда за подобряване на комуникацията между микро-услуги (service mesh) | Защитена на: 01/01/1900

Архитектурите базирани на микро-услуги стават все по-често избирани за проекти, в които обработване на голям брой заявки изисква приложенията да могат да скалират хоризонтално. Лесното хоризонтално скалиране е и едно от основните предимства на този тип архитектури спрямо използването на тези, които са базирани на монолит.

 

Използването на микро-услуги освен ползи създава и много нови предизвикателства, които не се наблюдават в монолитните приложения като например нуждата на микро-услуги да откриват други услуги, координация между микро-услуги, сигурност и други.

 

Тази дипломната работа се фокусира върху разработването на среда, която подобрява комуникацията между микро-услугите. Такава среда предлагат сървис меш (service mesh) инфраструктурите като те предоставят решение и на комуникационните проблеми. Част от предизвикателства, които те решават, са следните:

  • Производителност – сървис меш инфраструктурите се стремят да добавят минимална латентност при комуникацията между микро-услуги. Минималното време за обработка на заявки е от голямо значение за повечето разпределени приложения;
  • Сигурност – трафикът между микро-услугите е допълнително защитен посредством различни механизми, които да гарантират сигурността при комуникация между различни микро-услуги в рамките на сървис меш;
  • Конфигуриране – друго предизвикателство е менажирането на конфигурацията и конфигурирането на различни функционалности в сървис меш.

 

Целта на дипломната работа е създаването на нова сървис меш инфраструктура, която да упражнява минимален отпечатък върху средата, в която се внедрява, да бъде лесна за конфигуриране от оператори на сървис меш и да да не прави компромиси по отношение на функционалностите, които са налични в други сървис меш инфраструктурни решения. 

 

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

 

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

 

Новото сървис меш решение представлява съвкупност от различни софтуерни модули, които са написани на Kotlin програмен език. Главният модул представлява сървърен компонент, който предоставя сървис меш функционалности. За комуникация с този модул са предоставени клиентска библиотека, която може да се интегрира в JVM приложение, както и странично контейнер приложение, което позволява интеграцията на микро-услуги, независимо от технологията, която използват, без нуждата от изрична комуникация със сървър приложението, а чрез прихващане и обработване на комуникацията от и към нея. За операторите е предоставено конзолно приложение написано на GoLang, което да ги улеснява при конфигуриране на различни функционалности в рамките на сървис меш.

Scroll to Top