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

Методи за проектиране, разработка и внедряване на микро услуги | Защитена на: 28/02/2017

В днешно време микро услугите като архитектурен стил стават все по-популярни. Те са разпределен тип архитектура - клон на архитектурата ориентирана към услуги (SOA), която акцентира върху по-прости и по-фокусирани като функционалност независими компоненти.

Множество съвременни публикации описват техните предимства и недостатъци, а езиците и рамките за програмиране се развиват в посока улесняване на изграждането на микро услуги. С оглед на това, че микро услугите са първият архитектурен стил, вдъхновен от т.нар. DevOps революция(*), то изискванията към организациите и проектите, които искат да мигрират към микро услуги, са главно свързани с DevOps.

(*) Подобряване на културата и обстановката при разработката и внедряването на софтуер, с цел те да се случват по-бързо, по-често и по-надеждно. Основни елементи са автоматизирани системи, скриптове и динамична инфраструктури (най-често облачна).

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

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

  • DevOps
  • улеснена разработка
  • мониторинг и одит
  • независимост
  • управление на версиите
  • откриване и конфигурация
  • Сигурност

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

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

 

В процеса на разработка на експерименталното приложение са изпробвани множество езици за програмиране, рамки и инфраструктурни услуги. Основните изводи за тези технологии са, че са с добра техническа документация, с богата функционалност и са лесно съвместими една с друга. Нивото на зрялост на използваните технологиите е високо (Java, Spring Boot, Heroku).

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

Scroll to Top