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

Анализ гранулярности микросервисов: эффективность архитектурных подходов (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.

Сохранить в закладках
Сравнительный анализ индексационных стратегий в PostgreSQL при различных сценариях нагрузки (2025)
Выпуск: № 1 (2025)
Авторы: Золотухина Д. Ю.

Предметом исследования является эффективность различных индексационных стратегий, реализованных в PostgreSQL, и их влияние на производительность операций SELECT, UPDATE и INSERT в условиях различных масштабов данных. Объектом исследования выступают индексы B-Tree, GIN и BRIN, применяемые для оптимизации работы баз данных. Автор подробно рассматривает такие аспекты темы, как временные характеристики выполнения операций, размер индексов и их ресурсоемкость. Особое внимание уделяется влиянию объема данных на производительность индексов и их пригодности для работы с различными типами данных, включая JSONB. Исследование направлено на систематизацию знаний о применении индексов для повышения эффективности работы высоконагруженных систем, где требуется оптимизация операций доступа, обновления и вставки данных, а также анализ потребления ресурсов. Ведущим методом исследования является эмпирический подход, включающий разработку тестовой базы данных с таблицами orders, customers и products. Эксперименты проводились для операций SELECT, UPDATE и INSERT на малых, средних и больших объемах данных. Для анализа использовались метрики времени выполнения запросов и размера индексов, полученные с использованием инструментов PostgreSQL. Новизна исследования заключается в комплексном сравнении индексов B-Tree, GIN и BRIN в PostgreSQL с учетом не только временных характеристик выполнения запросов, но и их влияния на размер базы данных и общую нагрузку на систему. В отличие от существующих исследований, сосредоточенных на отдельных аспектах индексирования, данная работа рассматривает эффективность различных типов индексов в условиях изменяющейся нагрузки и различных категорий операций. Основными выводами проведённого исследования являются рекомендации по выбору индексов в зависимости от типов запросов и условий их выполнения. Индексы B-Tree подтвердили свою универсальность, демонстрируя высокую производительность для операций SELECT и UPDATE. GIN-индексы показали преимущества для работы с JSONB-данными, но их использование ограничено высокой ресурсоемкостью. BRIN-индексы доказали свою эффективность для больших объемов данных, особенно для операций SELECT. Особым вкладом автора в исследование темы является создание рекомендаций для разработчиков баз данных, что позволяет повышать производительность приложений за счёт оптимального выбора индексационной стратегии.

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