Введение 4
Глава 1 Анализ методов разработки микросервисов 7
1.1 Виртуализация 7
1.2 Модели обслуживания облачных вычислений. PaaS решения 11
1.3 Микросервисы. Микросервисная архитектура 17
1.4 Анализ подходов к управлению прикладным программным интерфейсом микросервисов 25
1.5 Проблема управления API 28
1.6 Анализ инструментов управления прикладным программным интерфейсом микросервисов 30
1.7 Анализ требований к инструменту управления API 33
Глава 2 Методы разработки и развертывания инструментов управления прикладным программным интерфейсом микросервисов 37
2.1 Методы управления прикладным программным интерфейсом 37
2.2 Технологии разработки микросервисов 42
Глава 3 Модель инструмента управление прикладным программным интерфейсом на основе микросервисной архитектуры 52
3.1 Разработка модели инструмента управления прикладным программным интерфейсом 52
3.2 Разработка инструмента управлением прикладным программным интерфейсом микросервисов 61
Глава 4 Апробация модели инструмента управления прикладным программным интерфейсом 74
4.1 Процесс внедрения инструмента управления прикладным программным интерфейсом 74
4.2 Процесс интеграции инструмента прикладного программного интерфейса с готовым проектным решением 80
4.3 Расчет надежности разработанного инструмента 82
Заключение 85
Список используемой литературы и используемых источников 86
Приложение А Схема конфигурации API 89
В данной работе поднимается проблема управления API микросервисов в облачных средах, а также выдвигается гипотеза о возможности его значительного упрощения при правильно спроектированном архитектурном подходе. Данная проблема поднимается с точки зрения не только разработчика ПО, но и человека, управляющего проектом и отвечающего за его архитектуру.
Проблема управления API является частью проблем, возникающих при использовании микросервисной архитектуры. Эта архитектура на данный момент является передовой технологией разработки корпоративных приложений. При проектировании программного продукта с использованием микросервисной архитектуры остро возникает вопрос публикации интерфейса, с целью скрыть конечную реализацию и предоставить возможность замены реализации и гибкость в распределении ролей и функций микросервисов. Эту проблему решают специальные инструменты управления API. В дополнение к этому эти инструменты могут брать на себя обязательства по обеспечению безопасности коммуникации, предоставлять возможность отслеживать и собирать статистику использования API. Перед разработчиками и архитекторами стоят проблемы, решение которых ещё только предстоит найти, это обуславливает актуальность темы исследования.
Объектом исследования является внешняя коммуникация с облачным решением, а также внутренняя микросервисная коммуникация.
Предметом исследования является методы и инструменты организации коммуникации с облачным решением и микросервисной коммуникации внутри облачной среды.
Целью исследования является теоретическое обоснование и практическая реализация методов и инструментов управления API.
Для достижения поставленной цели требуется решить следующие задачи:
• проанализировать подходы к организации управления API и микросервисной коммуникации;
• проанализировать способы реализации инструментов организации управления API и микросервисной коммуникации;
• разработать модель инструмента организации управления API;
• подтвердить эффективность предлагаемой модели на практике.
Гипотеза исследования: предположение, что разработанная модель инструмента управления API и организацию микросервисной коммуникации, которая обеспечит понижение стоимости разработки приложений с применением принципов микросервисной архитектуры.
На защиту выносятся:
• модель инструмента организации управления API облачного приложения;
• результаты апробации инструмента организации управления API облачного приложения.
Научная новизна исследования заключается в разработке модели инструмента, предоставляющего возможности простого управления API микросервисов и производящий автоматическую настройку микросервисного взаимодействия.
Практическая значимость работы заключается в разработке инструмента управления API в облачных средах, который снизит стоимость и время разработки облачных приложений.
Методы исследования: методы и модели развертывания компонентов инструмента управления API, объектно-ориентированных подход к анализу и проектированию инструмента.
Основные этапы исследования: исследование проводилось с 2018 по 2021 год в несколько этапов:
• анализ подходов к организации управления API и микросервисной коммуникации;
• анализ способов реализации инструментов организации управления API и микросервисной коммуникации;
• разработка модели инструмента организации управления API;
• разработка компонентов инструмента;
• анализ результатов внедрения инструмента.
Первая глава посвящена анализу архитектуры облачных программных решений, а также рассматриваются разные подходы к управлению API в облачной среде, поднимается проблема управления API, возникающая в условиях использования облачных сред и микросервисных архитектур.
Во второй главе рассмотрены существующие методы управления API с их преимуществами и недостатками. Рассмотрены методы развертывания микросервисов в облачной среде. А также в этой главе описывается концептуальная архитектура инструмента управления API и микросервисной коммуникации.
Третья глава содержит этапы проектирования и разработки инструмента управления API и микросервисной коммуникации.
Четвертая глава описывает экспериментальную апробацию инструмента в облачной среде, а также приведен расчет надежности инструмента.
В заключении подводятся итоги выполненной работы.
Работа изложена на 88 страницах и включает 38 рисунков, 3 таблицы.
В ходе проведения исследования и написание выпускной квалификационной работы был проведен анализ существующих подходов к управление прикладным программным интерфейсом микросервисов, а также инструментов позволяющих эти подходы сделать эффективными и простыми.
Для достижения результата были выполнены поставленные задачи:
• проанализированы подходы к управлению прикладным программным интерфейсом в облачной среде;
• проанализированы существующие инструменты управления прикладным программным интерфейсом микросервисов;
• разработана модель инструмента с эффективным управлением прикладным программным интерфейсом;
• подтверждена эффективность предлагаемой модели на практике.
Описанный в работе инструмент управления прикладным программным интерфейсом микросервисов позволит при помощи простых конфигураций организовать публикацию прикладного программного интерфейса, а также обеспечит надежную маршрутизацию трафика внутри облачной среды.
Разработанный инструмент построен с учетом внедрения в микросервисную архитектуру с использованием современных платформ облачных технологий таких как Kubernetes, который содержит удобные встроенные инструменты балансировки нагрузки, масштабирования, а также надежного хранилища данных etcd, что позволяет достичь большой степени надежности инструмента в целом.
Доработка инструмента силами проекта позволит легко расширить возможности по управлению API, а также добавить новый функционал, такой как авторизация, консистентная балансировка, защищенные соединения TLS.
1. Bill Doerrfeld Andreas Krohn, Kristopher Sandoval, Bruno Pedro The API Lifecycle: An Agile Process for Managing the Life of an API [Книга]. - [б.м.] : Nordic APIs AB (July 8, 2015), 2015.
2. Brenda Jin Saurabh Sahni, Amir Shevat Designing Web APIs: Building APIs That Developers Love [Book]. - [s.l.] : O'Reilly Media, 2018. - 1st. - 9781492026921.
3. Brendan Burns Joe Beda, Kelsey Hightower Kubernetess Up & Running [Book] / ed. Cofer Kim. - [s.l.] : O’Reilly, 2019. - 2-e : p. 278. - 978-1-492-04653-0.
4. Bucchiarone Antonio Microservices: Science and Engineering Hardcover [Book]. - [s.l.] : Springer, 2020. - 1st. - 978-3030316457.
5. Carnell John Spring Microservices in Action [Book]. - [s.l.] : Manning Publications, 2017. - 978-1617293986.
6. Fowler Susan J. Production-Ready Microservices [Book]. - [s.l.] : O'Reilly Media, 2017. - 1st. - 978-1491965979.
7. Ian Miell Aidan Hobson Sayers Docker in Practice [Book]. - [s.l.] : Manning Publications, 2019. - 2-е : p. 384. - 978-1617294808.
8. Irakli Nadareishvili Ronnie Mitra, Matt McLarty, Mike Amundsen Microservice Architecture: Aligning Principles, Practices, and Culture [Book]. - [s.l.] : O'Reilly, 2016. - 1-е : p. 146. - 978-1491956250.
9. Jose Ramon Huerga Alex Kovalevych, Robert Buchanan, Daniel Lee, Chelsy Mooy, Xavier Bruhiere Kong: Becoming a King of API Gateways [Книга]. - [б.м.] : Bleeding Edge Press, 2018.
10. Kasun Indrasiri Prabath Siriwardena Microservices for the Enterprise [Book] / ed. Berendson Laura. - San Jose : Apress Media LLC, 2018. - 1 : p. 434. - 978-1-4842-3857-8.
11. Kavis Michael J. Architecting the Cloud: Design Decisions for Cloud Computing Service Models (SaaS, PaaS, and IaaS) (Wiley CIO) [Book]. - [s.l.] : Jhon Wiley & Sons, Inc, 2014. - 1-е : p. 229. - 978-1118617618.
12. Kleppmann Martin Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems Paperback [Book]. - [s.l.] : O'Reilly UK Ltd, 2017. - p. 2nd. - 978-1449373320.
13. Morgan Bruce Paulo A. Pereria Microservices in Action [Book] / ed. Stephens Michael. - NY : Manning Publications Co., 2019. - 1-e. - 9781617294457.
14. Nayyar Dr. Anand Handbook of Cloud Computing: Basic to Advance research on the concepts and design of Cloud Computing [Book]. - [s.l.] : BPB Publications, 2019. - 1-е : p. 415. - 9388176669.
15. Newman Sam Building Microservices: Designing Fine-Grained Systems [Книга]. - [б.м.] : O'Reilly Media, 2015. - 1st. - 978-1491950357.
...