к.т.н. Калимулин И.Ф.
Томский государственный университет систем управления и радиоэлектроники (ТУСУР), Россия
Архитектура отказоустойчивого и масштабируемого веб-приложения для моделирования электромагнитной совместимости
На сегодняшний день существует два метода проектирования и организации разработки веб-приложений, т.н. «монолит» и «микросервисы» [1]. Под монолитом понимается одно большое приложение плюс база данных. Под микросервисами (далее также – сервис) подразумевается разделение одного приложения на несколько частей-сервисов, коммуникация между которыми строится через вызовы публичных методов и функций API (application programming interface, программный интерфейс приложения).
Преимущества монолитной архитектуры: простота разработки на начальном этапе; низкие временные задержки (latency) при взаимодействии компонентов и модулей приложения между собой. Недостатки монолитной архитектуры: только вертикальная масштабируемость; надежность обеспечивается только на уровне резервирования физических компонентов компьютера.
Преимущества микросервисной архитектуры: горизонтальная масштабируемость – каждый сервис запускается на отдельной физической или виртуальной машине; резервирование и высокая доступность – один сервис можно запустить на нескольких машинах, объединенных в кластер; балансирование нагрузки – количество машин в кластере можно изменять динамически, в зависимости от нагрузки, автоматически поднимая и опуская новые экземпляры конкретного сервиса; разделение разработки внутри команды – каждый сервис является небольшим приложением, для разработки которого не нужны программисты, понимающие работу всего проекта в целом.
Недостатки микросервисной архитектуры: повышение сложности развертывания и управления приложением – необходимо реализовать систему автоматизации создания, доставки и развертывания каждого сервиса на машины; сложность отладки микросервисной архитектуры из-за разнесения сервисов по разным машинам, имеющих сетевое соединение.
Цель работы – представить обзор рекомендаций к архитектуре отказоустойчивого и масштабируемого веб-приложения для моделирования электромагнитной совместимости.

Рис. 1. Схема архитектуры серверного приложения
Для реализации приложения предлагается использовать микросервисную архитектуру. На рис. 1 показана схема основных сервисов архитектуры веб-приложения [2]. Ядром приложения является Simulation Platfrom Services, состоящий в свою очередь из набора микросервисов, реализующих задачи вычисления заданных электромагнитных параметров модели печатного узла [3]. Client – веб-браузер. DNS – система доменных имен. CDN – сеть доставки статического контента, а именно частей приложения, исполняющихся внутри клиента (браузера). Load Balancer – балансировщик нагрузки, распределяющий запросы от клиента к доступному веб-серверу. Web Server – веб-сервер, осуществляющий обработку HTTP-запросов (hypertext transport protocol) и вызывающий внутренние вызовы API. Write API – реализует методы и функции, приводящие к записи или изменении данных. Read API – реализует методы и функции, необходимые только для чтения данных. Memory Cache – автоматически обновляемый кэш наиболее часто востребованных данных, реализуется в виде базы данных, хранящая все данные в оперативной памяти. NoSQL – нереляционная база данных, организованная по принципу хранилища документов (document store). Object storage – хранилище объектов, распределенная файловая система. Сервисы, отмеченные символом «x» работают в кластере.
Таким образом, предложенная архитектура позволяет динамически адаптировать приложение к росту количества пользователей за счет увеличения количества одновременно работающих однотипных сервисов. В случае снижения нагрузки можно динамически отключать ненужные машины (вычислительные мощности), что позволяет оптимально распоряжаться бюджетом на закупку вычислительных мощностей.
Литература
1. Introduction
to Microservices. Nginx Inc. Tech Blog. [Electronic resource]. –
2017. – URL: https://www.nginx.com/blog/introduction-to-microservices/
2. The
System Design Primer. Learn how to design large-scale systems. Prep for the
system design interview. [Electronic resource]. – 2017. – URL: https://github.com/donnemartin/system-design-primer
3. Куксенко С.П., Заболоцкий А.М.,
Мелкозёров А.О., Газизов Т.Р. Новые возможности системы моделирования
электромагнитной совместимости TALGAT // Доклады Томского государственного
университета систем управления и радиоэлектроники. – 2015. – Т. 2,
№ 36. – С. 45–50.