Научная статья на тему 'СРАВНЕНИЕ ПОДХОДОВ К РЕСТРУКТУРИЗАЦИИ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ ИНФОРМАЦИОННОЙ СИСТЕМЫ В УСЛОВИЯХ МАСШТАБИРОВАНИЯ В НЕСКОЛЬКИХ ДАТАЦЕНТРАХ'

СРАВНЕНИЕ ПОДХОДОВ К РЕСТРУКТУРИЗАЦИИ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ ИНФОРМАЦИОННОЙ СИСТЕМЫ В УСЛОВИЯХ МАСШТАБИРОВАНИЯ В НЕСКОЛЬКИХ ДАТАЦЕНТРАХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
109
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
микросервисная архитектура / технология Kubernetes / информационные системы / микросервисы / масштабирование / датацентры / нагрузочное тестирование / microservice architecture / Kubernetes technology / information systems / microservices / scaling / data centers / load testing

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Васильев Никита Вячеславович

В статье рассматриваются подходы к построению микросервисной архитектуры в условиях масштабирования информационной системы в несколько датацентров с учетом особенностей: межсервисного взаимодействия и взаимодействия с реплицированными базами данных. Произведено сравнение различных подходов к построению микросервисной архитектуры с использованием технологии Kubernetes. Для сравнения использовалось нагрузочное тестирование построенных моделей информационной системы в определенной конфигурации, на основе чего были сделаны выводы о применимости различных подходов при реструктуризации архитектуры системы.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Васильев Никита Вячеславович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE INFORMATION SYSTEM UNDER SCALING CONDITIONS IN SEVERAL DATA CENTERS MICROSERVICE ARCHITECTURE RESTRUCTURING APPROACHES COMPARISON

The article discusses approaches to a microservice architecture development in terms of scaling an information system into several data centers, considering the peculiarities: interservice interaction and interaction with replicated databases. Different approaches to a microservice architecture development using Kubernetes technology were compared. For comparison, load testing of the constructed models of the information system in a certain configuration was used, based on which conclusions about the applicability of various approaches in restructuring the system architecture were drawn.

Текст научной работы на тему «СРАВНЕНИЕ ПОДХОДОВ К РЕСТРУКТУРИЗАЦИИ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ ИНФОРМАЦИОННОЙ СИСТЕМЫ В УСЛОВИЯХ МАСШТАБИРОВАНИЯ В НЕСКОЛЬКИХ ДАТАЦЕНТРАХ»

СРАВНЕНИЕ ПОДХОДОВ К РЕСТРУКТУРИЗАЦИИ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ ИНФОРМАЦИОННОЙ СИСТЕМЫ В УСЛОВИЯХ МАСШТАБИРОВАНИЯ В НЕСКОЛЬКИХ

ДАТАЦЕНТРАХ

THE INFORMATION SYSTEM UNDER SCALING CONDITIONS IN SEVERAL DATA CENTERS MICROSERVICE ARCHITECTURE RESTRUCTURING

APPROACHES COMPARISON

УДК 004.65+004.45

Васильев Никита Вячеславович, магистрант, Национальный исследовательский технологический университет «МИСиС», г. Москва, Россия, m1908870@edu.misis.ru

Vasilev N.V., master student, National Research Technological University «MISiS», Moscow, Russia, m1908870@edu.misis.ru

Аннотация

В статье рассматриваются подходы к построению микросервисной архитектуры в условиях масштабирования информационной системы в несколько датацентров с учетом особенностей: межсервисного взаимодействия и взаимодействия с реплицированными базами данных. Произведено сравнение различных подходов к построению микросервисной архитектуры с использованием технологии Kubernetes. Для сравнения использовалось нагрузочное тестирование построенных моделей информационной системы в определенной конфигурации, на основе чего были сделаны выводы о применимости различных подходов при реструктуризации архитектуры системы.

Annotation

The article discusses approaches to a microservice architecture development in terms of scaling an information system into several data centers, considering the peculiarities: interservice interaction and interaction with replicated databases. Different approaches to a microservice architecture development using Kubernetes technology were compared. For comparison, load testing of the constructed models of the information system in a certain configuration was used, based on which conclusions about the applicability of various approaches in restructuring the system architecture were drawn.

Ключевые слова: микросервисная архитектура, технология Kubernetes, информационные системы, микросервисы, масштабирование, датацентры, нагрузочное тестирование

Keywords: microservice architecture, Kubernetes technology, information systems, microservices, scaling, data centers, load testing

Сегодня в условиях ускоренной информатизации общества важной задачей при разработке и сопровождении информационных систем является повышение их отказоустойчивости путем масштабирования в несколько датацентров. Изначально большинство информационных систем проектируются и реализовываются в рамках применения исключительно одного центра обработки данных. Вследствие этого их масштабирование в несколько датацентров является серьезной проблемой, поскольку влечет за собой различного рода изменения в архитектуре приложения. Это, в свою очередь, требует проведения дополнительных исследований, т.к. выбор подходящего варианта реструктуризации архитектуры неочевиден.

Тема подходов к реструктуризации архитектуры информационной системы в условиях масштабирования в несколько датацентров в научных статьях раскрыта в недостаточной мере, потому что большинство подобных разработок принадлежат ко внутренним исследованиям и не подлежат огласке

согласно корпоративным политикам, эта статья направлена на восполнение данного пробела.

Масштабирование веб-приложения, имеющего микросервисную архитектуру, из одного в несколько датацентров (ДЦ) может быть осложнено такими факторами как увеличение задержки обработки запроса или увеличение трафика между несколькими датацентрами.

В данной работе рассматривается вопрос выбора подхода к построению архитектуры системы в нескольких датацентрах из числа альтернативных.

Одна из архитектурных особенностей - межсервисное взаимодействие. Рассматриваемые подходы к реализации:

1. Обмен данными между сервисами с использованием общего сетевого шлюза.

2. Обмен данными между сервисами с использованием сетевого шлюза, локального для каждого датацентра.

Другой особенностью является взаимодействие с реплицированными базами данных, для реализации существуют следующие подходы:

1. Ведущая репликация (master) в одном ДЦ и ведомая репликация (slave) в остальных.

2. Ведущая в каждом ДЦ с ведомыми подами для масштабирования.

При репликации Master-Slave существует только один экземпляр ведущей

базы данных. Все остальные являются ведомыми - доступными только на чтение данных. При этом подходе возникают проблемы при увеличении числа ведомых экземпляров, так как всегда есть только один ведущий экземпляр [1, 2].

При репликации Master-Master в каждом из ДЦ есть ведущий экземпляр базы, который синхронизируется с ведомыми экземплярами в том же ДЦ. При этом подходе любой из экземпляров может использоваться как для чтения, так и для записи [5].

При использовании общего сетевого шлюза запросы направляются как в первый, так и во второй датацентр без приоритезации запросов [4]. При этом довольно легко балансировать нагрузку между всеми экземплярами сервиса в

разных датацентрах, но используется большое количество траффика между датацентрами.

При использовании локальных сетевых шлюзов запросы из сервиса А в сервис Б приоритетно маршрутизируются в сервисы Б, находящиеся в том же датацентре. Такой подход делает сложным балансировку между экземплярами сервиса в разных датацентрах, но минимизирует количество траффика между датацентрами.

Сравнение различных подходов к взаимодействию с базами данных и между сервисами осуществлялось путем проведения нагрузочного тестирования каждой архитектуры [3, 6]. Результаты сравнения приведены в таблице 1.

Нагрузочное тестирование проводилось в следующей конфигурации:

1. Сервисы развертываются в двух датацентрах.

2. Сервисы на языке программирования Golang.

3. Все экземпляры сервисов и баз данных разворачивались в кластерах Kubemetes.

4. Нагрузочное тестирование проводилось средствами информационной системы «Яндекс.Танк».

5. Объем передаваемых в сервис данных и данных, записываемых в базу данных, должен составлять 1 Кб, без учета специфики протокола, используемого при передаче данных в другие сервисы или базы данных.

6. Нагрузка линейно увеличивалась до 400 запросов в секунду.

Таблица 1. - Результаты проведения нагрузочного тестирования различных моделей архитектуры информационной системы

Подход к построению Количество Средняя Максимальная

архитектуры ответов с задержка задержка

кодом 200 - ответа (сек) ответа

«ОК» (сек)

Общий сетевой шлюз 95 % 0.10 0.82

Локальный сетевой 99 % 0.02 0.65

шлюз

Репликация Master-Slave 93 % 0.18 0.47

Репликация Master- 99 % 0.03 0.19

Master

Результаты нагрузочного тестирования для моделей архитектуры информационной системы представлены на рисунках 1 - 4.

Для каждой из моделей представлено два графика: график со временем ответа сервисов в различных перцентилях (p100, p99, p98, p95, pp90, p85, p80, p75, p50 - точность времени обработки запросов) и график, отражающий количество успешно обработавших запросов (HTTP 500 - ошибка, HTTP 200 -запрос выполнился успешно).

_ 1 I

. а * 1а ДА 1 а».А. . 1 А . »L. к

МО toe

П ПО 100 Л

Рисунок 1. - Общий сетевой шлюз

Прочит*» ЦИМ>1101WK*

'00

«00

400 >00 ;оо 100 ш ' At 111 it i 1 •U . 1 А > \ . ^ Л . » iA . А А А А . 1

коомогаим

100 МО N0 J00 100 о. _--■

Рисунок 2. - Локальный сетевой шлюз

I _J

tjllll . | UiJ ® к к i * м.

ilk к Л* 0 А 'Г 1. А .А...*. .1

Рисунок 3. - Репликация Master-Slave

Рисунок 4. - Репликация Master-Master

По результатам реализации выбранной архитектуры можно сделать выводы о полученных положительных эффектах: повышение среднего времени наработки системы на отказ, уменьшение количества сетевых запросов между датацентрами и уменьшение среднего времени обработки запроса при использовании подходов к построению архитектуры с использованием репликации Master-Master и локальных сетевых шлюзов.

Литература

1. Balalaie A., Heydarnoori A., Jamshidi P. «Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture» // IEEE Software. - 2016. -№33. - С. 42-52.

2. Song M., Shin H. Replica Striping for Multi-resolution Video Servers // Boavida F., Monteiro E., Orvalho J. (eds), Protocols and Systems for Interactive Distributed Multimedia. IDMS 2002. Lecture Notes in Computer Science, vol 2515. - Heidelberg: Springer-Verlag. - 2002.

3. Артамонова A.A., Сравнительный анализ двух систем управления контейнерами: Docker Swarm И Kubernetes // Синергия наук. - 2018. - №23. - С. 1173-1182.

4. Дьяченко Р.А., Ковшун А.Н., Борисов С.Н. Обзор возможностей балансировки сетевой нагрузки на основе Haproxy // Сборник научных статей VII Международной научно-практической конференции. - 2017. - С. 167-170.

5. Котиков П., Нечай А. Репликация данных между серверами баз данных в среде геоинформационных систем // Вестник Российского Нового

Университета. Серия: сложные системы: модели, анализ и управление. -2015. - №1. - С. 88-91.

6. Позин Б.А., Галахов И.В. Модели в нагрузочном тестировании // Программирование. - 2011. - №1. - С. 20-35.

Literature

1. Balalaie A., Heydarnoori A., Jamshidi P. «Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture» // IEEE Software. - 2016. -No. 33. - P. 42-52.

2. Song M., Shin H. Replica Striping for Multi-resolution Video Servers // Boavida F., Monteiro E., Orvalho J. (eds), Protocols and Systems for Interactive Distributed Multimedia. IDMS 2002. Lecture Notes in Computer Science, vol 2515. - Heidelberg: Springer-Verlag. - 2002.

3. Artamonova A.A., Comparative analysis of two container management systems: Docker Swarm and Kubernetes // Synergy of Sciences. - 2018. - No. 23. - P. 1173-1182.

4. Dyachenko R.A., Kovshun A.N., Borisov S.N. Review of Haproxy-based Network Load Balancing Capabilities // Collection of Scientific Articles of the VII International Scientific and Practical Conference. - 2017. - P. 167-170.

5. Kotikov P., Nechai A. Data replication between database servers in the environment of geoinformation systems // Bulletin of the Russian New University. Series: complex systems: models, analysis and control. - 2015. - No. 1. - P. 88-91.

6. Pozin B.A., Galakhov I.V. Models in Load Testing // Programming. - 2011. - No. 1. - P. 20-35.

i Надоели баннеры? Вы всегда можете отключить рекламу.