УДК 004.4
DOI: 10.36871/2618-9976.2024.11.007

Авторы

Дмитрий Сергеевич Малыгин,
Технический директор проектов по разработке программного обеспечения, разработчик ITSM платформы «Сфера», ООО «Т 1 Диджитал», Москва, Россия

Аннотация

Микросервисные архитектуры стали одним из основных подходов к разработке сложных распределенных программных систем. Микросервисы позволяют обеспечить большую гибкость и упрощают обслуживание частей: каждый микросервис может быть обновлен, установлен или усовершенствован независимо. Микросервисы используются для разработки платформ управления сервисами (ITSM/ESM) – программных систем, применяемых для автоматизации бизнес-процессов. Управление ИТ-активами, конфигурационными элементами инфраструктуры и обработка инцидентов делают эти платформы критически важными для корпорации. Они должны отвечать строгим требованиям к оперативности реагирования, безопасности и т. д. Еще одна важная характеристика – масштабируемость: свойство системы справляться с растущим объемом работы (для крупных компаний количество инцидентов растет лавинообразно). Она обеспечивается быстрым увеличением количества экземпляров системы облачным провайдером или системами оркестрации контейнеров, такими как Kubernetes или OpenShift. Программные фреймворки должны поддерживать контейнеризацию и иметь малое время запуска. В работе предлагается методология оценки Java-фреймворков для разработки систем автоматизации ITSM/ESM-процессов в целях обеспечения требуемого уровня масштабируемости приложения. Набор фреймворков, таких как Spring Boot, Micronaut, исследуется с точки зрения разных аспектов: распространенности, наличия необходимой функциональности, а также функционирования в условиях, максимально приближенных к производственным, – внутри контейнера, помещенного в среду Kubernetes. Несколько примеров атомарных, одноклассовых приложений, написанных на этих фреймворках, были запущены в контейнерах. Измеряли время запуска, использование CPU и RAM. По результатам исследования Quarkus показал лучший совокупный результат и может быть рекомендован для разработки критически важных распределенных приложений. Работа будет полезна архитекторам программного обеспечения, разработчикам и техническим директорам в качестве методологии выбора технологического стека для облачных нативных приложений.

Ключевые слова

распределенная архитектура
микросервисы
масштабируемость
cloud-native приложения
контейнеризация
производительность приложений
JVM-фреймворки
сравнительное исследование
платформа оркестрации