РАЗРАБОТКА ИНСТРУМЕНТА АВТОМАТИЗАЦИИ ВЫПУСКА РЕЛИЗОВ
|
АННОТАЦИЯ 3
Анализ требований 5
1.1 Анализ процессов на момент начала работ 5
1.2 Разработка требований к инструменту 10
1.3 Модель первичного проектирования 15
2 Проектирование архитектуры системы 16
2.1 Обзор используемых технологий 16
2.2 Структура системы 19
2.3 Проектирование системы 20
3 Реализация 23
3.1 Регистрация релиза 23
3.2 Обработка активностей релиза 26
3.3 Создание и обновление запросов на изменение helm release конфигурации 28
3.4 Создание заявки на выпуск версии 29
3.5 Обновление заявок на выпуск версии 36
3.6 Завершение релиза 37
4 Тестирование 39
4.1 Модульное тестирование 40
4.2 Тестирование контроллеров 40
4.3 Тестирование репозиториев 42
4.4 Тестирование абстрактных классов 43
5 Развертывание и интеграция проекта 45
5.1 Развертывание 45
5.2 Интеграция с Jenkins 46
6 Заключение
Анализ требований 5
1.1 Анализ процессов на момент начала работ 5
1.2 Разработка требований к инструменту 10
1.3 Модель первичного проектирования 15
2 Проектирование архитектуры системы 16
2.1 Обзор используемых технологий 16
2.2 Структура системы 19
2.3 Проектирование системы 20
3 Реализация 23
3.1 Регистрация релиза 23
3.2 Обработка активностей релиза 26
3.3 Создание и обновление запросов на изменение helm release конфигурации 28
3.4 Создание заявки на выпуск версии 29
3.5 Обновление заявок на выпуск версии 36
3.6 Завершение релиза 37
4 Тестирование 39
4.1 Модульное тестирование 40
4.2 Тестирование контроллеров 40
4.3 Тестирование репозиториев 42
4.4 Тестирование абстрактных классов 43
5 Развертывание и интеграция проекта 45
5.1 Развертывание 45
5.2 Интеграция с Jenkins 46
6 Заключение
Серверные приложения являются важным компонентом современной цифровой банковской системы. На серверной стороне происходит обработка данных, проверка операций на мошенничество и взаимодействие между банками, которые могут располагаться в разных странах. Однако это также приводит к тому, что серверная часть многих систем является крайне сложным продуктом, состоящим из множества микросервисов, очередей сообщений и баз данных. К тому же, к системам постоянно выставляются новые требования и изменения в код нужно поставлять регулярно, поэтому обеспечение быстрого, надежного и простого процесса доставки кода до промышленного окружения становится одной из важнейших задач, которые встают перед любым крупным IT-бизнесом.
В компании уже был налажен процесс выпуска релизов, однако он не был идеальным и регулярно улучшался. Внедрялись различные сторонние решения, а также разрабатывались внутренние инструменты, но выпуск новых версий микросервисов на промышленное окружение все равно оставался сложным и долгим процессом, требующим большого количества времени квалифицированных разработчиков и инженеров отдела эксплуатации. Обилие ручных действий не только отнимало время, но и повышало риск возникновения ошибок, а большое количество микросервисов и их частые релизы лишь усугубляли проблему, поэтому в компании было принято решение о проведении новой итерации работ по усовершенствованию процесса выпуска релизов.
Целью работы является разработка и внедрение инструмента автоматизации выпуска релизов для существующего процесса выпуска версий.
Исходя из поставленной цели был сформулирован список задач:
1) провести анализ существующего процесса выпуска версий;
2) спроектировать систему;
3) разработать систему;
4) реализовать тесты для системы;
5) внедрить систему.
Решению поставленных задач посвящена данная выпускная квалификационная работа.
В компании уже был налажен процесс выпуска релизов, однако он не был идеальным и регулярно улучшался. Внедрялись различные сторонние решения, а также разрабатывались внутренние инструменты, но выпуск новых версий микросервисов на промышленное окружение все равно оставался сложным и долгим процессом, требующим большого количества времени квалифицированных разработчиков и инженеров отдела эксплуатации. Обилие ручных действий не только отнимало время, но и повышало риск возникновения ошибок, а большое количество микросервисов и их частые релизы лишь усугубляли проблему, поэтому в компании было принято решение о проведении новой итерации работ по усовершенствованию процесса выпуска релизов.
Целью работы является разработка и внедрение инструмента автоматизации выпуска релизов для существующего процесса выпуска версий.
Исходя из поставленной цели был сформулирован список задач:
1) провести анализ существующего процесса выпуска версий;
2) спроектировать систему;
3) разработать систему;
4) реализовать тесты для системы;
5) внедрить систему.
Решению поставленных задач посвящена данная выпускная квалификационная работа.
Возникли сложности?
Нужна помощь преподавателя?
Помощь в написании работ!
В результате проделанной работы в рамках выпускной квалификационной работы все поставленные цели и задачи были достигнуты, а именно:
• был проанализирован существующий процесс выпуска версий;
• был спроектирован, разработан и развернут инструмент автоматизации выпуска релизов;
• разработанный инструмент был подключен к микросервисам компании.
На момент написания работы с инструментом было интегрировано несколько десятков микросервисов компании, релизы которых теперь проходят только через разработанный инструмент. Инструмент помогает выпускать как небольшие и быстрые исправления, так и крупные важные релизы.
• был проанализирован существующий процесс выпуска версий;
• был спроектирован, разработан и развернут инструмент автоматизации выпуска релизов;
• разработанный инструмент был подключен к микросервисам компании.
На момент написания работы с инструментом было интегрировано несколько десятков микросервисов компании, релизы которых теперь проходят только через разработанный инструмент. Инструмент помогает выпускать как небольшие и быстрые исправления, так и крупные важные релизы.
1. Рабочий процесс Gitflow // Atlassian - [Б.м.]., 2023 -
URL: https://www.atlassian.com/ru/git/tutorials/comparing-workflows/gitflow-workflow (дата обращения: 20.11.2023)
2. Оркестрация контейнеров промышленного уровня // Kubernetes - [Б.м.]., 2023 - URL: https://kubernetes.io/ru/ (дата обращения: 02.12.2023)
3. A distributed key-value store // etcd - [Б.м.]., 2023 - URL: https://etcd.io/ (дата обращения: 03.12.2023)
4. Dev Guides // Flux - [Б.м.]., 2023 - URL: https://fluxcd.io/flux/gitops-toolkit/ (дата обращения: 12.12.2023)
5. Custom resources // Kubernetes - [Б.м.]., 2023 -
URL: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/ (дата обращения: 15.12.2023)
6. Gradle vs Maven Comparison // Gradle - [Б.м.]., 2024 - URL: https://gradle.org/maven- vs-gradle/ (дата обращения: 20.01.2024)
7. Spring expression language (SpEL) - [Б.м.]., 2024 - URL: https://docs.spring.io/spring- framework/docs/3.2.x/spring-framework-reference/html/expressions.html
(дата обращения: 25.01.2024)
8. Lesson: JDBC Introduction // Oracle Help Center - [Б.м.]., 2024 -
URL: https://docs.oracl e .com/j avase/tutori al/j dbc/overvi ew/index.html
(дата обращения: 02.02.2024)
9. Database migrations // Baeldung - [Б.м.]., 2024 -
URL: https://www.baeldung.com/database-migrations-with-flyway (дата обращения: 05.02.2024)
10. Cache2k Java caching // cache2k - [Б.м.]., 2024 - URL: https://cache2k.org/
(дата обращения: 02.02.2024)
11. Object (Java Platform SE 8) // Oracle - [Б.м.]., 2024 -
URL: https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
(дата обращения: 10.02.2024)
12. Explicit locking // PostgreSQL - [Б.м.]., 2024 -
URL: https://www.postgresql.org/docs/current/explicit-locking.html (дата обращения: 16.02.2024)
13. Documentation JSON Types // PostgreSQL - [Б.м.]., 2024 -
URL: https://www.postgresql.org/docs/current/datatype-json.html (дата обращения: 20.02.2024)
14. Client Libraries // Atlassian developer - [Б.м.]., 2024 -
URL: https://developer.atlassian.com/cloud/jira/platform/apis/document/libs/
(дата обращения: 01.03.2024)
15. Use advanced search with Jira Query Language (JQL) // Jira - [Б.м.]., 2024 - URL: https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with- jira-query-language-jql/ (дата обращения: 05.03.2024)
..19
URL: https://www.atlassian.com/ru/git/tutorials/comparing-workflows/gitflow-workflow (дата обращения: 20.11.2023)
2. Оркестрация контейнеров промышленного уровня // Kubernetes - [Б.м.]., 2023 - URL: https://kubernetes.io/ru/ (дата обращения: 02.12.2023)
3. A distributed key-value store // etcd - [Б.м.]., 2023 - URL: https://etcd.io/ (дата обращения: 03.12.2023)
4. Dev Guides // Flux - [Б.м.]., 2023 - URL: https://fluxcd.io/flux/gitops-toolkit/ (дата обращения: 12.12.2023)
5. Custom resources // Kubernetes - [Б.м.]., 2023 -
URL: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/ (дата обращения: 15.12.2023)
6. Gradle vs Maven Comparison // Gradle - [Б.м.]., 2024 - URL: https://gradle.org/maven- vs-gradle/ (дата обращения: 20.01.2024)
7. Spring expression language (SpEL) - [Б.м.]., 2024 - URL: https://docs.spring.io/spring- framework/docs/3.2.x/spring-framework-reference/html/expressions.html
(дата обращения: 25.01.2024)
8. Lesson: JDBC Introduction // Oracle Help Center - [Б.м.]., 2024 -
URL: https://docs.oracl e .com/j avase/tutori al/j dbc/overvi ew/index.html
(дата обращения: 02.02.2024)
9. Database migrations // Baeldung - [Б.м.]., 2024 -
URL: https://www.baeldung.com/database-migrations-with-flyway (дата обращения: 05.02.2024)
10. Cache2k Java caching // cache2k - [Б.м.]., 2024 - URL: https://cache2k.org/
(дата обращения: 02.02.2024)
11. Object (Java Platform SE 8) // Oracle - [Б.м.]., 2024 -
URL: https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
(дата обращения: 10.02.2024)
12. Explicit locking // PostgreSQL - [Б.м.]., 2024 -
URL: https://www.postgresql.org/docs/current/explicit-locking.html (дата обращения: 16.02.2024)
13. Documentation JSON Types // PostgreSQL - [Б.м.]., 2024 -
URL: https://www.postgresql.org/docs/current/datatype-json.html (дата обращения: 20.02.2024)
14. Client Libraries // Atlassian developer - [Б.м.]., 2024 -
URL: https://developer.atlassian.com/cloud/jira/platform/apis/document/libs/
(дата обращения: 01.03.2024)
15. Use advanced search with Jira Query Language (JQL) // Jira - [Б.м.]., 2024 - URL: https://support.atlassian.com/jira-service-management-cloud/docs/use-advanced-search-with- jira-query-language-jql/ (дата обращения: 05.03.2024)
..19
Работу высылаем на протяжении 30 минут после оплаты.
Подобные работы
- Использование сред непрерывной интеграции в комплексном тестировании программного обеспечения
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 4870 р. Год сдачи: 2017 - Инструментальная поддержка процесса разработки проекта OpenJDK
Бакалаврская работа, информационные системы. Язык работы: Русский. Цена: 4275 р. Год сдачи: 2023 - Инструментальная поддержка процесса разработки проекта OpenJDK
Бакалаврская работа, программирование. Язык работы: Русский. Цена: 4600 р. Год сдачи: 2023 - ФОРМИРОВАНИЕ УСЛОВИЙ РАЗВИТИЯ СОБЫТИЙНО-ГАСТРОНОМИЧЕСКОГО ТУРИЗМА В РЕГИОНЕ
Дипломные работы, ВКР, туризм. Язык работы: Русский. Цена: 4335 р. Год сдачи: 2017 - Исследование методов и технологий автоматизированного тестирования облачного IT-продукта, построенного на микросервисной архитектуре
Магистерская диссертация, информационные системы. Язык работы: Русский. Цена: 5450 р. Год сдачи: 2021 - СОТРУДНИЧЕСТВО КИТАЯ И ЯПОНИИ В ОБЛАСТИ ВНЕДРЕНИЯ НОВЫХ ТЕХНОЛОГИЙ В ПРОИЗВОДСТВЕННЫЕ И ЛОГИСТИЧЕСКИЕ ПРОЦЕССЫ:
ВЛИЯНИЕ НА ЭФФЕКТИВНОСТЬ, КОНКУРЕНТОСПОСОБНОСТЬ И ТОРГОВЛЮ
(2015 -2023 гг.)
Бакалаврская работа, международные отношения. Язык работы: Русский. Цена: 4900 р. Год сдачи: 2025





