Архитектура микросервисов - это новая тенденция, которая быстро набирает обороты при разработке приложений, поскольку она повышает гибкость за счет включения различных технологий, снижает сложность за счет использования легких и модульных служб, а также улучшает общую масштабируемость и отказоустойчивость системы.
Однако это также создает проблемы. При развертывании приложения на основе служб в облаках планировщик должен тщательно планировать каждую службу, которая может иметь различные потребности в ресурсах, на распределенных вычислительных кластерах. Обеспечение желаемой производительности сервисных приложений, особенно производительности сети между задействованными сервисами, становится все более важным.
При развертывании сервисного приложения в облаке необходимо учитывать несколько важных аспектов. Во-первых, сервисы, задействованные в приложении, часто имеют различные потребности в ресурсах, таких как ЦП, память и диск. Базовая машина должна обеспечивать достаточные ресурсы для запуска каждой службы и в то же время обеспечивать согласованные функции. Во-вторых, сервисы, задействованные в приложении, часто имеют потребности в трафике из-за передачи данных, что требует тщательной обработки. Плохая обработка запросов трафика может привести к серьезному снижению производительности, поскольку время отклика службы напрямую зависит от ситуации с трафиком. Учитывая потребности в трафике, интуитивно понятное решение состоит в том, чтобы разместить сервисы, которые требуют большого трафика, на одном компьютере, что может обеспечить внутримашинную связь и уменьшить межмашинный трафик. Чтобы достичь желаемой производительности приложения на основе микросервисов, планировщики кластеров должны тщательно размещать каждый сервис приложения с учетом требований к ресурсам и требованиям трафика. Для этого разработчикам ИС необходимо составлять конфигурацию ИС таким образом, чтобы планировщик выполнял поставленные условия.
Таким образом, научная проблема заключается в том, что современные алгоритмы распределения ресурсов не учитывают сетевое взаимодействие между сервисами, что влияет на скорость работы приложений с большим объемом внутреннего трафика и на скорость разработки и развертывания приложения.
Целью исследования является разработка алгоритма распределения ресурсов, в котором будет учитываться связь между сервисами по сети, и который позволит сократить время развертывания приложения.
Объектом исследования является процесс развертывания приложения на основе микросервисной архитектуры.
Предметом исследования является методы и алгоритмы, повышающие эффективность работы инфраструктуры микросервисных приложений.
Гипотеза исследования состоит в том, что процесс развертывания приложения будет более эффективным, если при распределении ресурсов учитывать трафик между сервисами.
Для достижения поставленной цели были сформулированы и решены следующие задачи:
- анализ современной научной литературы, связанной с подходами и алгоритмами размещения, технологиями их реализации;
- выявление достоинств и недостатков существующих подходов;
- спроектировать новый алгоритм, подход или методику, в основе которого лежат методы, позволяющие повысить эффективность инфраструктуры;
- провести оценку эффективности внедренного решения.
Научная новизна состоит в разработке нового алгоритма для размещения сервисов.
В процессе исследования были использованы следующие методы: методы системного анализа, экспертной оценки, методы объектно - ориентированного анализа и проектирования.
На защиту выносятся:
- результаты анализа способов размещения сервисов;
- спроектированный алгоритм, который позволяет улучшить
использование ресурсов;
- результаты оценки эффективности спроектированного алгоритма. Диссертация состоит из введения, четырех разделов, заключения и списка литературы. Объем диссертации составляет 70 страниц и содержит 22 рисунка, 4 таблицы, список литературы включает 29 наименований источников зарубежных и отечественных авторов.
Во введении обосновывается актуальность выбранной темы исследования, определяется объект, предмет и цель исследования, выдвигается гипотеза и формулируются задачи работы, рассматриваются научная новизна исследования.
В первом разделе диссертации описываются решения задачи размещения сервисов, достоинства и недостатки, обнаруженные различными авторами научных работ, а также описывается найденная проблема, которая не рассматривалась авторами.
Во втором разделе выполнен анализ существующих решений для размещения сервисов.
В третьем разделе описывается новый подход к решению
рассматриваемой задачи, формируется математическая модель и алгоритм решения задачи. Предложенная модель реализовываться с помощью
выбранных технологий, приводится сравнение результатов с другими системами.
В четвертом разделе рассматривается внедрение нового алгоритма в существующую систему управления контейнерами и проводится оценка эффективности алгоритма.
В заключении представлены основные результаты поставленных задач и полученные выводы.
В данном исследовании были рассмотрены проблемы размещения сервисов для микросервисной архитектуры в облаках и утилизация человеческих ресурсов во время разработки таких приложений. Чтобы найти высококачественный раздел сервисных приложений, было предложено два алгоритма разделения: бинарное разделение и K-разделение, которые основаны на хорошо разработанном алгоритме рандомизированного сжатия. Для эффективной упаковки приложения используется эвристика наиболее загруженной и учитывающей трафик в алгоритме упаковки. Путем корректировки порога а, обозначающего верхнюю границу потребности в ресурсах, можно найти лучшее решение для размещения сервисных приложений. В ходе оценки было показано, что представленные алгоритмы могут улучшить коэффициент успешного размещения приложений в кластере, при этом значительно увеличив долю совместного трафика (т. е. уменьшив межмашинный трафик). При оценке накладных расходов результаты показывают, что эти алгоритмы несут некоторые накладные расходы, но в приемлемое время. Также было выяснено, что предложенные алгоритмы практичны для реальных случаев использования.
Магистерская диссертация посвящена поиску путей оптимизации инфраструктуры приложений, созданных на базе микросервисной архитектуры, за счет изменения алгоритма размещения в кластере облачного сервера.
Выполненные в работе научные исследования представлены
следующими основными результатами:
- проанализирован процесс развертывания приложения, а также
алгоритмы, используемые для размещения микросервисов. Как показал анализ, главным недостатком известных алгоритмов является отсутствие учета межсервисного трафика при размещении, в связи с чем увеличивается общее время обработки запросов системой, когда микросервисы вынуждены обмениваться сообщениями, будучи расположенными на разных узлах кластера. На основании проведенного анализа, в качестве решения проблемы был разработан алгоритм, позволяющий учитывать трафик при размещении сервисов таким образом, чтобы снизить сетевое взаимодействие между узлами кластера;
- усовершенствован метод разработки программного обеспечения путем изменения конфигурации микросервисов, что позволяет гибче настраивать систему и ускорить ее выдачу заказчику за счет заранее подготовленной конфигурации (матрицы зависимостей) для развертывания. Такая модификация позволяет повысить степень автоматизации в разработке, что позволяет снизить стоимость разработки продукта;
- проведена экспериментальная апробация усовершенствованного механизма разворачивания приложения с учетом межсервисного трафика, которая показала эффективность использования предложенного алгоритма несмотря на увеличившееся время развертывания, так как снижается время разработки приложения и повышается его гибкость.
Таким образом, в работе решена научно-практическая проблема оптимизации инфраструктуры микросервисного приложения.
Гипотеза исследования подтверждена.
Проведенная работа имеет большую значимость, так как благодаря использованию вышеописанных решений возможно повышение эффективности инфраструктуры микросервисных приложений.
1. Артамонов И.В. Разработка распределенных сервисноориентированных программных средств: учеб. пособие / И.В. Артамонов. — Иркутск: Изд-во БГУЭП, 2016. — 129 с.
2. Генкин Б.М. Анализ производительности труда / Б.М. Генкин. М.: НОРМАИНФРАМ, 2016. - 506 с.
3. Истигечева Е.В. Моделирование бизнес-процессов на примере модели «Сбыт» / Е.В. Истигечева, Т.Е. Григорьева, С.А. Панов // Текст: непосредственный // журнал «Таврический научный обозреватель», том 2, №
3. с. 55-59
4. Истигечева Е.В. Моделирование логических схем бизнеспроцессов / Е.В. Истигечева, Т.Е. Григорьева // Текст: непосредственный // журнал «Информатика и системы управления», том 2, № 48, с. 36-47
5. Липатова С.Е. Подходы к оптимизации размещения микросервисов в Kubernetes. Алгоритм NSGA-II. / С.Е. Липатова, Ю.С. Белов // Текст: непосредственный // сборник статей «Фундаментальные и прикладные исследования. актуальные проблемы и достижения», 2022, с. 22-24
6. Hu, Y.; Wang, J.; Zhou, H.; Martin, P.; Taal, A.; de Laat, C.; Zhao, Z. Deadline-Aware Deployment for Time Critical Applications in Clouds. // In Proceedings of the European Conference on Parallel Processing, Santiago de Compostela, Spain, 28 August-1 September 2017; Springer: New York, NY, USA, 2017; с. 345-357.
7. Koulouzis, S.; Martin, P.; Zhou, H.; Hu, Y.; Wang, J.; Carval, T.; Grenier, B.; Heikkinen, J.; de Laat, C.; Zhao, Z. Time-critical data management in clouds: Challenges and a Dynamic Real-Time Infrastructure Planner (DRIP) solution. // Concurr. Comput. Pract. Exp. 2019, e5269.
8. Hu, Y.; Zhou, H.; de Laat, C.; Zhao, Z. Ecsched: Efficient container scheduling on heterogeneous clusters. // In Proceedings of the European Conference on Parallel Processing, Turin, Italy, 27-31 August 2018; Springer: New York, NY, USA, 2018; с. 365-377.
9. Grandl, R.; Ananthanarayanan, G.; Kandula, S.; Rao, S.; Akella, A. Multi¬resource packing for cluster schedulers. //ACM SIGCOMM Comput. Commun. Rev.2015, 44, с. 455-466.
10. Gog, I.; Schwarzkopf, M.; Gleave, A.; Watson, R.N.; Hand, S. Firmament: Fast, centralized cluster scheduling at scale. // In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16), Savannah, GA, USA, 2-4 November 2016; с. 99-115.
11. Yusoh, Z.I.M.; Tang, M. A penalty-based genetic algorithm for the composite SaaS placement problem in the cloud. // In Proceedings of the IEEE Congress on Evolutionary Computation, Barcelona, Spain, 18-23 July 2010; с. 1-8.
12. Hajji, M.A.; Mezni, H. A composite particle swarm optimization approach for the composite saas placement in cloud environment. // Soft Comput. 2018, 22, с. 4025-4045.
13. Meng, X.; Pappas, V.; Zhang, L. Improving the scalability of data center networks with traffic-aware virtual machine placement. // In Proceedings of the 2010 IEEE INFOCOM, San Diego, CA, USA, 15-19 March 2010; pp. 1-9.
14. Wang, M.; Meng, X.; Zhang, L. Consolidating virtual machines with dynamic bandwidth demand in data centers. // Infocom 2011, 201, с. 71-75.
15. Goldschmidt, O.; Hochbaum, D.S. Polynomial algorithm for the k-cut problem. // In Proceedings of the 1988 29th Annual Symposium on Foundations of Computer Science, White Plains, NY, USA, 24-26 October 1988; с. 444-451.
...
Всего источников 30