ВВЕДЕНИЕ 4
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 6
1.1. Основные понятия 6
1.2. Обзор аналогов 6
2. ПРОЕКТИРОВАНИЕ 9
2.1. Анализ вариантов использования системы 9
2.2. Проектирование архитектуры системы 10
2.3. Проектирование базы данных 12
2.4. Проектирование компонентов для отправки сообщений 14
2.5. Проектирование административного интерфейса 16
3. РЕАЛИЗАЦИЯ 19
3.1. Выбор технических средств 19
3.2. Реализация компонентов 20
3.2.1. Render Service 20
3.2.2. Messaging Service 21
3.2.3. Реализация работы с очередью сообщений 27
3.3. Реализация административного интерфейса 29
4. ТЕСТИРОВАНИЕ 38
4.1. Методы тестирования компонентов 38
4.2. Методы тестирования системы в целом 39
5. РАЗВЕРТЫВАНИЕ И ВНЕДРЕНИЕ 42
ЗАКЛЮЧЕНИЕ 45
СПИСОК ЛИТЕРАТУРЫ 46
ПРИЛОЖЕНИЯ 49
Приложение 1 49
Приложение 2 51
Приложение 3 59
Актуальность темы
В жизненном цикле любого достаточно крупного проекта наступает момент, когда монолитная архитектура перестает удовлетворять потребностям в скорости работы, масштабируемости и простоте поддержки. В таких случаях необходима разработка независимых сервисов, которые выполняют часть функций исходной системы.
В рамках выпускной квалификационной работы будет рассмотрена разработка веб-сервиса, созданного в качестве альтернативы существующей системы рассылок, входящей в монолитную часть сайта kvartirka.com. Одна из ключевых идей подобного разделения заключается в инкапсуляции логики, связанной с рассылками и уведомлениями, в отдельном веб-приложении, которое не оказывает влияния на работу основной системы. Кроме того, такой подход предоставляет возможность исправить архитектурные и интерфейсные ошибки существующей системы, выбрать более современные и лучше подходящие для данной функциональности средства реализации.
Цель и задачи исследования
Целью исследования является разработка независимого веб-сервиса для управления массовыми рассылками. Для достижения поставленной цели требуется решить следующие задачи:
• провести анализ предметной области;
• спроектировать архитектуру системы;
• реализовать систему, следуя разработанной архитектуре;
• произвести тестирование системы.
Объем и структура работы
Общий объем работы составляет 48 стр., основная часть работы содержит 5 глав. Выпускная квалификационная работа включает в себя 3 приложения, объем библиографии составляет 29 источников, объем приложений - 12 страниц.
Краткое содержание работы
В первой главе «Анализ предметной области» приведены основные термины, используемые в работе, а также произведен обзор аналогов разрабатываемой системы.
Во второй главе «Проектирование» выявлены основные варианты использования системы, приведено описание общей архитектуры системы, создана структура базы данных и рассмотрены особенности отдельных компонентов системы.
В третьей главе «Реализация» приведены технические средства и приемы, необходимые для реализации компонентов системы и их взаимодействия, а также особенности реализации отдельных компонентов.
В четвертой главе «Тестирование» представлены подходы к тестированию разрабатываемых компонентов и системы в целом.
В пятой главе «Развертывание и внедрение» описана подготовка системы к эксплуатации в промышленных условиях.
В заключении перечислены достигнутые результаты, выявлены возможные направления дальнейших исследований.
В приложении 1 содержится DDL-схема базы данных веб-сервиса.
В приложении 2 приведены макеты административного интерфейса системы.
В приложении 3 представлен набор данных, использовавшийся на начальном этапе разработки для заполнения тестовой базы данных .
В ходе выполнения выпускной квалификационной работы были достигнуты следующие результаты:
1) произведен обзор аналогов разрабатываемого сервиса;
2) выделены варианты использования сервиса управления массовыми рассылками;
3) спроектирована архитектура системы;
4) спроектирована база данных;
5) создан дизайн административного интерфейса системы;
6) реализованы компоненты системы;
7) произведено тестирование системы;
8) выполнена контейнеризация компонентов системы;
9) система внедрена в опытную эксплуатацию.
При выполнении работы мною были изучены новые для меня технологии и библиотеки:
1) язык программирования TypeScript;
2) система сборки FuseBox;
3) CSS-препроцессор SASS;
4) очередь сообщений RabbitMQ;
5) библиотеки aio-pika, tortoise-orm, trafaret и др.
Направлениями дальнейших исследований могут стать:
1) проведение нагрузочных тестов;
2) увеличение числа доступных каналов доставки;
3) дополнения административного интерфейса;
4) разработка утилит для миграции шаблонов рассылок из системы- предшественника.