Архив статей журнала

Анализ гранулярности микросервисов: эффективность архитектурных подходов (2025)
Выпуск: № 2 (2025)
Авторы: Чикалева Юлия Сергеевна

Современные информационные системы требуют масштабируемых архитектур для обработки больших данных и обеспечения доступности. Микросервисная архитектура, разделяющая приложения на автономные сервисы по бизнес-функциям, решает эти задачи. Однако оптимальная гранулярность микросервисов влияет на производительность, масштабируемость и управляемость. Неоптимальная декомпозиция приводит к антипаттернам, таким как избыточная мелкость или косметическая микросервисность, усложняя сопровождение. Цель исследования - сравнительный анализ методов определения гранулярности микросервисов для выявления подходов, обеспечивающих баланс производительности, гибкости и управляемости в высоконагруженных системах. Объект исследования - микросервисная архитектура высоконагруженных информационных систем, включая их структурные и функциональные характеристики, определяемые методами декомпозиции на автономные сервисы. Предмет исследования - методы определения гранулярности микросервисов (монолитная архитектура, Domain-Driven Design, Data-Driven Approach, Monolith to Microservices Approach). Применён экспериментальный подход, включающий реализацию приложения Task Manager в четырёх архитектурных конфигурациях. Нагрузочное тестирование проводилось с использованием Apache JMeter при нагрузке 1000 пользователей. Метрики производительности (время отклика, пропускная способность, CPU), доступности, масштабируемости, безопасности и согласованности собраны через Prometheus и обработаны с вычислением средних значений и стандартного отклонения. Научная новизна исследования заключается в разработке унифицированной методологии количественного анализа методов гранулярности микросервисов (монолит, DDD, Data-Driven, Monolith to Microservices), основанной на метриках (время отклика, пропускная способность, CPU, доступность, запуск, безопасность, ошибки), адаптированных для высоконагруженных систем. В отличие от качественных исследований, работа предлагает комплексный подход, включая реализацию приложения Task Manager и нагрузочное тестирование (Apache JMeter, Prometheus), решая проблему выбора оптимальной декомпозиции для повышения производительности и масштабируемости. Методология применима для автоматизации оценки архитектур в CI/CD. Монолит показал минимальное время отклика (0.76 с) и пропускную способность (282.5 запросов/с), но ограничен масштабируемостью. Data-Driven обеспечивает согласованность, DDD эффективен для сложных доменов, Monolith to Microservices имеет низкую производительность (15.99 с) из-за перегрузки авторизации. Ограничение - хост-система (8 ГБ RAM), снижающая масштабируемость. Рекомендации: оптимизировать сетевые вызовы в DDD, доступ к данным в Data-Driven, декомпозицию в Monolith to Microservices.

Сохранить в закладках
Исследование производительности современных клиентских веб-фреймворков (2025)
Выпуск: № 2 (2025)
Авторы: Ратушняк Евгений Алексеевич

Предметом исследования является производительность рендеринга трёх современных фреймворков - React, Angular и Svelte - в типовых сценариях построения и обновления пользовательского интерфейса в веб приложениях. Объектом исследования являются сами фреймворки как комплексы технологических решений, включающие механизмы обнаружения изменений, виртуальные или компилируемые DOM структуры и сопутствующие оптимизации. Автор подробно рассматривает такие аспекты темы, как первичный и повторный рендеринг, операции обновления и удаления элементов, работа в линейных и глубоко вложенных структурах данных. Особое внимание уделяется практической значимости выбора фреймворка для коммерческих продуктов, где разница в производительности непосредственно влияет на конверсию, опыт пользователя и финансовую эффективность проекта. Описываются ключевые внутренние механизмы - виртуальный DOM React, детектор Angular и компилируемый код Svelte, - которые определяют их поведение в разных нагрузочных сценариях. Методология основана на автоматизированном бенчмарке: унифицированный набор тестовых сценариев выполняется клиентскими приложениями на React, Angular и Svelte, эталонном JavaScript решении и сервере оркестраторе Express JS; время операций фиксируется через performance. now в Chrome 126, критерий производительности - время до первой перерисовки. Новизна исследования заключается в комплексном лабораторном сопоставлении трёх фреймворков по четырём критически важным сценариям (первичный рендеринг, повторный рендеринг, обновление и удаление элементов) с учётом двух типов структур данных и привязкой к актуальным версиям 2025 года. Основными выводами проведённого исследования являются следующие: Svelte обеспечивает наибольшую производительность и лидирует при глубокой иерархии благодаря компиляции DOM операций; React показывает лучшие результаты при повторном обновлении длинных списков, используя оптимизированный алгоритм обнаружения изменений и ключи элементов; Angular гарантирует предсказуемость и архитектурную целостность, но увеличивает время перерисовки примерно на 60% из-за детектора изменений. Универсального лидера не существует; рациональный выбор должен опираться на аналитический профиль операций конкретного приложения, что и подтверждают результаты представленного эксперимента.

Сохранить в закладках
Влияние асинхронных и многопоточных моделей обработки запросов на производительность серверных веб-приложений (2025)
Выпуск: № 1 (2025)
Авторы: Макаров Игорь Сергеевич, Ларин Денис Вячеславович, Воробьева Евгения Григорьевна, Емелин Даниил Павлович, Карташов Дмитрий Александрович

Объектом исследования являются серверные веб-приложения и их производительность при обработке большого количества одновременных запросов. В качестве предмета исследования рассматриваются асинхронные технологии (Node. js, Python Asyncio, Go, Kotlin Coroutines) и многопоточные модели (Java Threading, Python Threading). Авторы подробно анализируют асинхронные циклы событий, горутины, корутины и классические многопоточные подходы, оценивая их эффективность в задачах с интенсивным использованием I/O и вычислительных ресурсов. Проводится эксперимент с разработкой API на трёх языках (Java, Node. js, Go) и тестированием при помощи утилиты hey. Также исследуются особенности масштабируемости, оптимизации производительности, использование кэширования, обработка ошибок, нагрузочные тесты и особенности реализации параллельных вычислений. Цель исследования - определить, какие подходы обеспечивают наибольшую производительность в серверных приложениях. Методы исследования включают нагрузочное тестирование, сбор метрик (время отклика, пропускная способность и потребление ресурсов сервера ) и анализ результатов. Научная новизна заключается в сравнении асинхронных и многопоточных методов в реальных сценариях веб-разработки. Основными выводами исследования являются рекомендации по использованию асинхронных технологий в высоконагруженных I/O задачах и многопоточности в вычислительно сложных сценариях. Полученные результаты помогут разработчикам оптимизировать производительность серверных приложений в зависимости от их задач и нагрузки. Дополнительно исследование рассматривает аспекты сложности отладки асинхронных приложений, влияние пулов потоков на производительность многопоточных решений, а также сценарии, в которых асинхронные и многопоточные подходы могут дополнять друг друга. Особое внимание уделено управлению ресурсами сервера при масштабируемых нагрузках, что позволит IT-специалистам более точно выбирать инструменты и технологии для решения конкретных задач. В заключении обсуждаются возможные пути оптимизации работы серверных приложений, включая использование новых подходов и алгоритмов, а также перспективы развития асинхронных и многопоточных технологий в контексте высоконагруженных систем, их влияние на общую архитектуру приложений, а также на повышение отказоустойчивости и безопасности.

Сохранить в закладках