Тип работы:
Предмет:
Язык работы:


Разработка инструмента управления feature-флагами в распределенной инфраструктуре

Работа №186374

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы53
Год сдачи2025
Стоимость4500 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
12
Не подходит работа?

Узнай цену на написание


Аннотация 2
Перечень условных обозначений 3
Введение 4
1 Анализ требований 5
1.1 Описание проблемы 5
1.2 Анализ текущей инфраструктуры 6
1.3 Предметная область 7
1.3.1 Правила активации и таргетирования feature-флагов 8
1.4 Формализация требований 10
1.4.1 Функциональные требования 11
1.4.2 Нефункциональные требования 11
1.5 Анализ существующих решений 12
2 Проектирование инструмента 15
2.1 Проектирование клиентской библиотеки 15
2.1.1 Механизм получения сервисами feature-флагов 15
2.1.2 Проблема рассогласованности feature-флагов 19
2.1.3 Работа с областями видимости 22
2.2 Проектирование компонента управления feature-флагами 23
2.2.1 Конфигурации feature-флагов в git-репозитории 23
2.2.2 Модель данных 25
2.3 Выбор технологий 26
2.4 Архитектура 28
3 Реализация инструмента 30
3.1 Реализация клиентской библиотеки 30
3.1.1 Структура клиентской библиотеки 30
3.1.2 Разработка механизма получения и отправки контекста 32
3.1.3 Проверка feature-флагов 33
3.1.4 Обработка аннотаций 35
3.1.5 Использование клиентской библиотеки 38
3.2 Разработка компонента управления feature-флагами 40
3.2.1 Структура компонента управления feature-флагами 40
3.2.2 API компонента управления feature-флагами 42
3.2.3 Взаимодействие с GitLab API 43
Заключение 46
Список литературы и использованных источников 47


Современные распределенные системы характеризуются высокой сложностью и необходимостью оперативного реагирования на изменяющиеся условия эксплуатации. В таких условиях особенно важна возможность динамического управления функциональностью системы без необходимости перезапуска ее отдельных компонентов. Одним из подходов к решению подобных задач является использование feature-флагов [1]. Особенно актуально их применение в распределенной инфраструктуре, где гибкость и оперативность изменений имеют критическое значение.
Внедрение и использование feature-флагов приносит ряд преимуществ, среди которых можно выделить:
• гибкость развертывания - возможность постепенного включения функциональности для различных групп пользователей;
• A/B тестирование - оценка влияния изменений на пользовательский опыт в контролируемых условиях;
• минимизация рисков - быстрое отключение проблемных функциональностей для минимизации потенциального ущерба;
• ускорение разработки и цикла выпуска версий - выпуск неполных или экспериментальных функций без риска нарушения общей стабильности системы.
Несмотря на перечисленные преимущества, внедрение механизма управления feature-флагами сопряжено с рядом технических вызовов, особенно в распределенных системах. Среди таких вызовов - необходимость поддержания согласованности состояния feature-флагов между различными компонентами и минимизация задержек в распространении изменений.
В связи с этим актуальной задачей является разработка специализированного программного инструмента для централизованного управления feature-флагами. Целью данной выпускной квалификационной работы является разработка инструмента управления feature-флагами. В процессе работы предстоит провести выбор подходящих технологий и архитектурных решений, учитывая особенности распределенной инфраструктуры.
Для достижения поставленной цели были определены следующие задачи:
• проанализировать требования;
• спроектировать инструмент;
• реализовать инструмент.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе выполнения выпускной квалификационной работы был разработан инструмент управления feature-флагами, ориентированный на инфраструктуру компании X. Был проведен анализ предметной области, сформулированы функциональные и нефункциональные требования, спроектирована архитектура, а также разработаны компонент управления feature-флагами и клиентская библиотека для интеграции сервисов с этим компонентом.
Таким образом, цели и задачи, поставленные в начале работы, достигнуты. Разработанный инструмент планируется поэтапно внедрять в инфраструктуру компании.



1. Flower M. Feature Toggles (aka Feature Flags) // Martin Fowler. - [Б. м.], 2017 - URL: https://martinfowler.com/articles/feature-toggles.html (дата обращения: 15.02.2025).
2. Launch Darkly. - [Б. м.], 2025 - URL: https://launchdarkly/ (дата обращения: 22.03.2025).
3. Unleash Documentation. - [Б. м.], 2025 - URL: https://docs.getunleash.io/
(дата обращения: 22.03.2025).
4. Flagsmith Documentation. - [Б. м.], 2025 - URL: https://docs.flagsmith.com/
(дата обращения: 22.03.2025).
5. Flagr Documentation. - [Б. м.], 2025 - URL: https://openflagr.github.io/flagr/
(дата обращения: 22.03.2025).
6. FF4J Documentation // GitHub. - [Б. м.], 2025 - URL:
https://github.com/ff4j/ff4j/wiki (дата обращения: 22.03.2025).
7. Togglez. - [Б. м.], 2025 - URL: https://www.togglz.org/ (дата обращения:
22.03.2025).
8. Spring Framework: Reference Documentation // Spring. - [Б. м.], 2025 - URL: https://docs.spring.io/spring-framework/reference/index.html (дата обращения: 20.04.2025).
9. PostgreSQL. - [Б. м.], 2025 - URL: https://www.postgresql.org/ (дата обращения: 20.04.2025).
10. RabbitMQ. - [Б. м.], 2025 - URL: https://www.rabbitmq.com/ (дата обращения: 20.04.2025).
11. Spring Boot: Web Applications - Reference Documentation // Spring. - [Б. м.], 2025
- URL: https://docs.spring.io/spring-boot/reference/web/index.html (дата обращения:
26.04.2025).
12. Accessing Data with JPA // Spring Guides. - [Б. м.], 2025 - URL:
https://spring.io/guides/gs/accessing-data-jpa (дата обращения: 26.04.2025).
13. Messaging with RabbitMQ // Spring Guides. - [Б. м.], 2025 - URL:
https://spring.io/guides/gs/messaging-rabbitmq (дата обращения: 26.04.2025).
14. Developing Auto-configuration for Spring Boot // Spring. - [Б. м.], 2025 - URL: https://docs.spring.io/spring-boot/reference/features/developing-auto-configuration.html
(дата обращения: 26.04.2025).
15. Миграции баз данных с Flyway // Habr. - [Б. м.], 2025 - URL:
https://habr.com/ru/companies/otus/articles/506788 (дата обращения: 20.04.2025)...25



Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ