ВВЕДЕНИЕ 3
1. МИКРОСЕРВИСНАЯ АРХИТЕКТУРА 5
1.1. Особенности архитектуры 6
1.2. Преимущества и недостатки 8
2. ПРОБЛЕМЫ И РЕШЕНИЯ 11
2.1. Взаимодействие 11
2.2. Единый интерфейс 12
2.3. Шаблонный код 13
2.4. Требования к системе 14
3. РЕАЛИЗАЦИЯ 16
3.1. Инструменты разработки 16
3.2. Разработка веб-интерфейса 17
3.3. Разработка серверной части 21
4. РЕЗУЛЬТАТЫ РАБОТЫ 25
ЗАКЛЮЧЕНИЕ 28
ГЛОССАРИЙ 29
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 31
В современном мире при разработке программного обеспечения все чаще и чаще возникает ситуация, в которой требования к системе меняются уже на конечных этапах разработки. К тому же наблюдается постоянный прирост функциональности в уже существующих системах. Помимо этого, к современному ПО предъявляются крайне высокие требования по производительности и отказоустойчивости.
Классическая монолитная архитектура приложений не отвечала требованиям современного мира, и на смену ей пришла микросервисная архитектура. Такая архитектура имеет значительные преимущества по сравнению с монолитными приложениями, такие, например, как лучшая масштабируемость, меньшая связанность между модулями, больший контроль на этапах разработки, тестирования и развертывания. Системы, построенные с помощью микросервисной архитектуры, также являются распределенными. Взаимодействие между сервисами осуществляется с использованием различных протоколов.
Ценой указанных выше преимуществ является значительное усложнение системы. При увеличении количества микросервисов, увеличивается и количество шаблонного кода, необходимого для настройки каждого из них: описание протоколов взаимодействия, файлов конфигурации, контроллеров. Шаблонный код приводит к большим производственным затратам, так как люди тратят время не на разработку самой системы, а на написание однотипного кода. Шаблонный код опасен также тем, что программисты начинают копировать код и переносить ошибки из одной части системы в другую. Отсутствие инструмента, позволяющего уменьшить объем однотипной работы, приводит к проблеме автоматизации создания систем, использующих микросервисную архитектуру.
Объектом исследования является процесс разработки приложений, реализованных с использованием микросервисного подхода.
Предметом исследования является микросервисная архитектура.
Целью работы является разработка системы для снижения ресурсных и временных издержек в разработке приложений, использующих микросервисную архитектуру.
Задачами данной работы являются:
• анализ микросервисной архитектуры и инструментов для разработки микросервисных систем;
• разработка и тестирование системы.
В результате выполнения данной работы было сделано следующее:
• Проведен анализ микросервисной архитектуры и инструментов для разработки микросервисных систем;
• Разработана и протестирована система, автоматизирующая процесс создания приложений с микросервисной архитектурой.
Поставленная цель - разработка системы, позволяющей на основе введенных пользователем данных сгенерировать каркас для проектируемого приложения с микросервисной архитектурой - была достигнута.
Данная работа размещена на gitlab - http: //gititis .kpfu.ru/karimovk/ms-creator.
Разработанная система может быть использована на ранних этапах разработки микросервисных приложений для сокращения времени, затрачиваемого на конфигурацию и разработку приложения.
В дальнейшем может быть сделано следующее:
• Добавление возможности автоматического развертывания сервисов с использованием инструментов контейнеризации;
• Генерация дополнительной конфигурации для взаимодействия с базой данных;
• Возможность более гибкой настройки генерируемой системы;
• Возможность добавления дополнительных зависимостей.