Оптимизация инфраструктуры информационных систем на базе микросервисной архитектуры
|
Аннотация 2
Введение 4
1 Анализ существующих работ по теме размещения микросервисов 7
1.1 Подходы к планированию ресурсов кластера 7
1.2 Постановка проблемы 10
1.3 Обзор существующих решений задачи размещения микросервисов 13
1.3.1 Tetris 14
1.3.2 Firmament 16
1.3.3 Kubernetes 18
1.3.4 OpenShift 21
1.4 Сравнение существующих решений 22
1.5 Предполагаемый способ решения проблемы 24
2 Планировщик ресурсов на основе алгоритма поиска k-разреза 29
2.1 Определение модели 30
2.2 Проблема наименьшего k-разреза 33
2.3 Алгоритм размещения 36
2.3.1 Разделение приложения 36
2.3.2 Бинарное разделение 38
2.3.3 K-разделение 40
2.4 Эвристическая упаковка 42
2.5 Поиск размещения 44
3 Тестирование полученного планировщика 47
3.1 Проведение эксперимента 47
3.2 Сравнение показателей 49
3.3 Влияние значения порога а 53
3.4 Оценка издержек 55
4 Внедрение полученного планировщика на производство 58
4.1 Производство 58
4.2 Внедрение 59
4.3 Результаты внедрения планировщика 64
Заключение 66
Список используемых источников 68
Введение 4
1 Анализ существующих работ по теме размещения микросервисов 7
1.1 Подходы к планированию ресурсов кластера 7
1.2 Постановка проблемы 10
1.3 Обзор существующих решений задачи размещения микросервисов 13
1.3.1 Tetris 14
1.3.2 Firmament 16
1.3.3 Kubernetes 18
1.3.4 OpenShift 21
1.4 Сравнение существующих решений 22
1.5 Предполагаемый способ решения проблемы 24
2 Планировщик ресурсов на основе алгоритма поиска k-разреза 29
2.1 Определение модели 30
2.2 Проблема наименьшего k-разреза 33
2.3 Алгоритм размещения 36
2.3.1 Разделение приложения 36
2.3.2 Бинарное разделение 38
2.3.3 K-разделение 40
2.4 Эвристическая упаковка 42
2.5 Поиск размещения 44
3 Тестирование полученного планировщика 47
3.1 Проведение эксперимента 47
3.2 Сравнение показателей 49
3.3 Влияние значения порога а 53
3.4 Оценка издержек 55
4 Внедрение полученного планировщика на производство 58
4.1 Производство 58
4.2 Внедрение 59
4.3 Результаты внедрения планировщика 64
Заключение 66
Список используемых источников 68
Архитектура микросервисов - это новая тенденция, которая быстро набирает обороты при разработке приложений, поскольку она повышает гибкость за счет включения различных технологий, снижает сложность за счет использования легких и модульных служб, а также улучшает общую масштабируемость и отказоустойчивость системы.
Однако это также создает проблемы. При развертывании приложения на основе служб в облаках планировщик должен тщательно планировать каждую службу, которая может иметь различные потребности в ресурсах, на распределенных вычислительных кластерах. Обеспечение желаемой производительности сервисных приложений, особенно производительности сети между задействованными сервисами, становится все более важным.
При развертывании сервисного приложения в облаке необходимо учитывать несколько важных аспектов. Во-первых, сервисы, задействованные в приложении, часто имеют различные потребности в ресурсах, таких как ЦП, память и диск. Базовая машина должна обеспечивать достаточные ресурсы для запуска каждой службы и в то же время обеспечивать согласованные функции. Во-вторых, сервисы, задействованные в приложении, часто имеют потребности в трафике из-за передачи данных, что требует тщательной обработки. Плохая обработка запросов трафика может привести к серьезному снижению производительности, поскольку время отклика службы напрямую зависит от ситуации с трафиком. Учитывая потребности в трафике, интуитивно понятное решение состоит в том, чтобы разместить сервисы, которые требуют большого трафика, на одном компьютере, что может обеспечить внутримашинную связь и уменьшить межмашинный трафик. Чтобы достичь желаемой производительности приложения на основе микросервисов, планировщики кластеров должны тщательно размещать каждый сервис приложения с учетом требований к ресурсам и требованиям трафика. Для этого разработчикам ИС необходимо составлять конфигурацию ИС таким образом, чтобы планировщик выполнял поставленные условия.
Таким образом, научная проблема заключается в том, что современные алгоритмы распределения ресурсов не учитывают сетевое взаимодействие между сервисами, что влияет на скорость работы приложений с большим объемом внутреннего трафика и на скорость разработки и развертывания приложения.
Целью исследования является разработка алгоритма распределения ресурсов, в котором будет учитываться связь между сервисами по сети, и который позволит сократить время развертывания приложения.
Объектом исследования является процесс развертывания приложения на основе микросервисной архитектуры.
Предметом исследования является методы и алгоритмы, повышающие эффективность работы инфраструктуры микросервисных приложений.
Гипотеза исследования состоит в том, что процесс развертывания приложения будет более эффективным, если при распределении ресурсов учитывать трафик между сервисами.
Для достижения поставленной цели были сформулированы и решены следующие задачи:
- анализ современной научной литературы, связанной с подходами и алгоритмами размещения, технологиями их реализации;
- выявление достоинств и недостатков существующих подходов;
- спроектировать новый алгоритм, подход или методику, в основе которого лежат методы, позволяющие повысить эффективность инфраструктуры;
- провести оценку эффективности внедренного решения.
Научная новизна состоит в разработке нового алгоритма для размещения сервисов.
В процессе исследования были использованы следующие методы: методы системного анализа, экспертной оценки, методы объектно - ориентированного анализа и проектирования.
На защиту выносятся:
- результаты анализа способов размещения сервисов;
- спроектированный алгоритм, который позволяет улучшить
использование ресурсов;
- результаты оценки эффективности спроектированного алгоритма. Диссертация состоит из введения, четырех разделов, заключения и списка литературы. Объем диссертации составляет 70 страниц и содержит 22 рисунка, 4 таблицы, список литературы включает 29 наименований источников зарубежных и отечественных авторов.
Во введении обосновывается актуальность выбранной темы исследования, определяется объект, предмет и цель исследования, выдвигается гипотеза и формулируются задачи работы, рассматриваются научная новизна исследования.
В первом разделе диссертации описываются решения задачи размещения сервисов, достоинства и недостатки, обнаруженные различными авторами научных работ, а также описывается найденная проблема, которая не рассматривалась авторами.
Во втором разделе выполнен анализ существующих решений для размещения сервисов.
В третьем разделе описывается новый подход к решению
рассматриваемой задачи, формируется математическая модель и алгоритм решения задачи. Предложенная модель реализовываться с помощью
выбранных технологий, приводится сравнение результатов с другими системами.
В четвертом разделе рассматривается внедрение нового алгоритма в существующую систему управления контейнерами и проводится оценка эффективности алгоритма.
В заключении представлены основные результаты поставленных задач и полученные выводы.
Однако это также создает проблемы. При развертывании приложения на основе служб в облаках планировщик должен тщательно планировать каждую службу, которая может иметь различные потребности в ресурсах, на распределенных вычислительных кластерах. Обеспечение желаемой производительности сервисных приложений, особенно производительности сети между задействованными сервисами, становится все более важным.
При развертывании сервисного приложения в облаке необходимо учитывать несколько важных аспектов. Во-первых, сервисы, задействованные в приложении, часто имеют различные потребности в ресурсах, таких как ЦП, память и диск. Базовая машина должна обеспечивать достаточные ресурсы для запуска каждой службы и в то же время обеспечивать согласованные функции. Во-вторых, сервисы, задействованные в приложении, часто имеют потребности в трафике из-за передачи данных, что требует тщательной обработки. Плохая обработка запросов трафика может привести к серьезному снижению производительности, поскольку время отклика службы напрямую зависит от ситуации с трафиком. Учитывая потребности в трафике, интуитивно понятное решение состоит в том, чтобы разместить сервисы, которые требуют большого трафика, на одном компьютере, что может обеспечить внутримашинную связь и уменьшить межмашинный трафик. Чтобы достичь желаемой производительности приложения на основе микросервисов, планировщики кластеров должны тщательно размещать каждый сервис приложения с учетом требований к ресурсам и требованиям трафика. Для этого разработчикам ИС необходимо составлять конфигурацию ИС таким образом, чтобы планировщик выполнял поставленные условия.
Таким образом, научная проблема заключается в том, что современные алгоритмы распределения ресурсов не учитывают сетевое взаимодействие между сервисами, что влияет на скорость работы приложений с большим объемом внутреннего трафика и на скорость разработки и развертывания приложения.
Целью исследования является разработка алгоритма распределения ресурсов, в котором будет учитываться связь между сервисами по сети, и который позволит сократить время развертывания приложения.
Объектом исследования является процесс развертывания приложения на основе микросервисной архитектуры.
Предметом исследования является методы и алгоритмы, повышающие эффективность работы инфраструктуры микросервисных приложений.
Гипотеза исследования состоит в том, что процесс развертывания приложения будет более эффективным, если при распределении ресурсов учитывать трафик между сервисами.
Для достижения поставленной цели были сформулированы и решены следующие задачи:
- анализ современной научной литературы, связанной с подходами и алгоритмами размещения, технологиями их реализации;
- выявление достоинств и недостатков существующих подходов;
- спроектировать новый алгоритм, подход или методику, в основе которого лежат методы, позволяющие повысить эффективность инфраструктуры;
- провести оценку эффективности внедренного решения.
Научная новизна состоит в разработке нового алгоритма для размещения сервисов.
В процессе исследования были использованы следующие методы: методы системного анализа, экспертной оценки, методы объектно - ориентированного анализа и проектирования.
На защиту выносятся:
- результаты анализа способов размещения сервисов;
- спроектированный алгоритм, который позволяет улучшить
использование ресурсов;
- результаты оценки эффективности спроектированного алгоритма. Диссертация состоит из введения, четырех разделов, заключения и списка литературы. Объем диссертации составляет 70 страниц и содержит 22 рисунка, 4 таблицы, список литературы включает 29 наименований источников зарубежных и отечественных авторов.
Во введении обосновывается актуальность выбранной темы исследования, определяется объект, предмет и цель исследования, выдвигается гипотеза и формулируются задачи работы, рассматриваются научная новизна исследования.
В первом разделе диссертации описываются решения задачи размещения сервисов, достоинства и недостатки, обнаруженные различными авторами научных работ, а также описывается найденная проблема, которая не рассматривалась авторами.
Во втором разделе выполнен анализ существующих решений для размещения сервисов.
В третьем разделе описывается новый подход к решению
рассматриваемой задачи, формируется математическая модель и алгоритм решения задачи. Предложенная модель реализовываться с помощью
выбранных технологий, приводится сравнение результатов с другими системами.
В четвертом разделе рассматривается внедрение нового алгоритма в существующую систему управления контейнерами и проводится оценка эффективности алгоритма.
В заключении представлены основные результаты поставленных задач и полученные выводы.
В данном исследовании были рассмотрены проблемы размещения сервисов для микросервисной архитектуры в облаках и утилизация человеческих ресурсов во время разработки таких приложений. Чтобы найти высококачественный раздел сервисных приложений, было предложено два алгоритма разделения: бинарное разделение и K-разделение, которые основаны на хорошо разработанном алгоритме рандомизированного сжатия. Для эффективной упаковки приложения используется эвристика наиболее загруженной и учитывающей трафик в алгоритме упаковки. Путем корректировки порога а, обозначающего верхнюю границу потребности в ресурсах, можно найти лучшее решение для размещения сервисных приложений. В ходе оценки было показано, что представленные алгоритмы могут улучшить коэффициент успешного размещения приложений в кластере, при этом значительно увеличив долю совместного трафика (т. е. уменьшив межмашинный трафик). При оценке накладных расходов результаты показывают, что эти алгоритмы несут некоторые накладные расходы, но в приемлемое время. Также было выяснено, что предложенные алгоритмы практичны для реальных случаев использования.
Магистерская диссертация посвящена поиску путей оптимизации инфраструктуры приложений, созданных на базе микросервисной архитектуры, за счет изменения алгоритма размещения в кластере облачного сервера.
Выполненные в работе научные исследования представлены
следующими основными результатами:
- проанализирован процесс развертывания приложения, а также
алгоритмы, используемые для размещения микросервисов. Как показал анализ, главным недостатком известных алгоритмов является отсутствие учета межсервисного трафика при размещении, в связи с чем увеличивается общее время обработки запросов системой, когда микросервисы вынуждены обмениваться сообщениями, будучи расположенными на разных узлах кластера. На основании проведенного анализа, в качестве решения проблемы был разработан алгоритм, позволяющий учитывать трафик при размещении сервисов таким образом, чтобы снизить сетевое взаимодействие между узлами кластера;
- усовершенствован метод разработки программного обеспечения путем изменения конфигурации микросервисов, что позволяет гибче настраивать систему и ускорить ее выдачу заказчику за счет заранее подготовленной конфигурации (матрицы зависимостей) для развертывания. Такая модификация позволяет повысить степень автоматизации в разработке, что позволяет снизить стоимость разработки продукта;
- проведена экспериментальная апробация усовершенствованного механизма разворачивания приложения с учетом межсервисного трафика, которая показала эффективность использования предложенного алгоритма несмотря на увеличившееся время развертывания, так как снижается время разработки приложения и повышается его гибкость.
Таким образом, в работе решена научно-практическая проблема оптимизации инфраструктуры микросервисного приложения.
Гипотеза исследования подтверждена.
Проведенная работа имеет большую значимость, так как благодаря использованию вышеописанных решений возможно повышение эффективности инфраструктуры микросервисных приложений.
Магистерская диссертация посвящена поиску путей оптимизации инфраструктуры приложений, созданных на базе микросервисной архитектуры, за счет изменения алгоритма размещения в кластере облачного сервера.
Выполненные в работе научные исследования представлены
следующими основными результатами:
- проанализирован процесс развертывания приложения, а также
алгоритмы, используемые для размещения микросервисов. Как показал анализ, главным недостатком известных алгоритмов является отсутствие учета межсервисного трафика при размещении, в связи с чем увеличивается общее время обработки запросов системой, когда микросервисы вынуждены обмениваться сообщениями, будучи расположенными на разных узлах кластера. На основании проведенного анализа, в качестве решения проблемы был разработан алгоритм, позволяющий учитывать трафик при размещении сервисов таким образом, чтобы снизить сетевое взаимодействие между узлами кластера;
- усовершенствован метод разработки программного обеспечения путем изменения конфигурации микросервисов, что позволяет гибче настраивать систему и ускорить ее выдачу заказчику за счет заранее подготовленной конфигурации (матрицы зависимостей) для развертывания. Такая модификация позволяет повысить степень автоматизации в разработке, что позволяет снизить стоимость разработки продукта;
- проведена экспериментальная апробация усовершенствованного механизма разворачивания приложения с учетом межсервисного трафика, которая показала эффективность использования предложенного алгоритма несмотря на увеличившееся время развертывания, так как снижается время разработки приложения и повышается его гибкость.
Таким образом, в работе решена научно-практическая проблема оптимизации инфраструктуры микросервисного приложения.
Гипотеза исследования подтверждена.
Проведенная работа имеет большую значимость, так как благодаря использованию вышеописанных решений возможно повышение эффективности инфраструктуры микросервисных приложений.





