Аннотация 2
Перечень условных обозначений 3
Введение 4
1 Анализ предметной области 5
1.1 Понятия, используемые в контексте системы 5
1.2 Обзор аналогов 5
1.3 Модель предметной области 6
2 Анализ требований 9
2.1 Общие требования 9
2.2 Варианты использования 9
2.2.1 Выявление вариантов использования 9
2.2.2 Структуризация вариантов использования 11
2.2.3 Реестр вариантов использования 12
2.2.4 Диаграмма вариантов использования 13
2.3 Стек технологий 14
3 Проектирование 15
3.1 Компоненты системы 15
3.2 Семантическая модель БД 16
3.3 Диаграммы деятельности 18
3.4 Слои компонента Inventory 22
4 Реализация 23
4.1 Компонент InventoryDB 23
4.2 Компонент Inventory 24
4.2.1 Слои данных 24
4.2.2 Взаимодействие с БД 26
4.2.3 Взаимодействие с внешней системой 28
4.2.4 Обработка результатов развёртывания 30
4.2.5 Интерфейс 34
4.2.6 Слои компонента Inventory 36
4.3 Компонент InventoryClient 37
4.4 Контейнеризация. Тестирование 39
Заключение 41
Литература 42
Облачное развёртывание применяется повсеместно. Для работы любого приложения необходимы вычислительные ресурсы в том или ином количестве. Как правило, любая система в производстве развёрнута на удаленном сервере или группе серверов, именуемых облаком.
Широкую популярность в сфере облачного развёртывания получила система Kubernetes, решающая задачу оркестрации контейнеризированных приложений [1]. Однако данное программное обеспечение имеет определённый порог вхождения и по этой причине редко подходит для использования заказчиком приложения напрямую. Отсюда возникает необходимость в частом развёртывании приложений для заинтересованных лиц.
Процесс развёртывания разнится от приложения к приложению, однако при более широком рассмотрении все равно предстает рутинным. Также, с некоторыми потерями, любые индивидуальные требования можно выполнить, используя один из шаблонных алгоритмов развёртывания.
Таким образом, предстаёт нужной и возможной система, решающая задачу автоматизации развёртывания приложения в облаке для его конечного пользователя. В основные задачи такой системы может входить следующее: развёртывание, хранение состояния и предоставление пользовательского интерфейса. Перечисленные задачи разграничивают зоны ответственности, каждая из которых может принадлежать отдельному компоненту.
Цель и задачи
Целью данной работы является разработка системы управления запросами на развёртывание приложений в облаке. Для достижения поставленной цели необходимо решить следующие задачи:
- провести анализ предметной области;
- провести анализ требований к системе;
- спроектировать систему;
- реализовать систему.
В ходе работы были выполнены все поставленные задачи, заявленная цель была достигнута.
В результате анализа предметной области была составлена модель предметной области и выделены понятия, используемые в контексте системы. Также был проведён анализ требований к системе, в ходе которого были выявлены общие требования к системе и варианты использования системы. На основе вариантов использования впоследствии был составлен итоговый реестр вариантов использования и диаграмма основных вариантов использования.
В процессе выполнения работы была спроектирована архитектура системы, позволяющая реализовать заявленную систему. В ходе проектирования были определены компоненты системы и составлена семантическая модель базы данных. Также были составлены диаграммы деятельности для основных прецедентов.
На этапе реализации также рассматривались различные архитектурные решения. В ходе разработки система регулярно подвергалась тестированию. Были реализованы юнит- тесты для большинства модулей системы.
Получившаяся система может быть успешна встроена в качестве подсистемы в систему автоматизации процесса развёртывания. В дальнейшем планируется расширение функциональности системы, на данном этапе она реализует лишь базовые бизнес- процессы.