РБК Компании
Главная VK Tech 21 октября 2024

Как преодолеть сложности проектирования высоконагруженных систем

Что такое highload, где встречаются такие системы и какие подходы к работе с ними существуют
Как преодолеть сложности проектирования высоконагруженных систем
Источник изображения: Unsplash.com
Александр Виноградов
Александр Виноградов
Директор направления сервисов по работе с данными в VK Data Platform и VK Cloud

Директор по развитию бизнеса VK Tech

Подробнее про эксперта

Что такое highload

Highload-системы — это ИТ-системы, на которые в короткий промежуток времени приходит большое количество запросов или значительные объемы данных. Такие системы должны бесперебойно работать и обеспечить быструю обработку запросов даже при значительной нагрузке.

Ни одна компания не проектирует свои системы под highload с самого начала. Обычно нагрузка возрастает неожиданно, что становится серьезной проблемой для бизнеса. Важно понимать, что универсальных метрик для определения highload-систем не существует — каждый случай уникален и зависит от специфики бизнеса и структуры системы.

Где можно встретить высоконагруженные системы

Финансовый сектор

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

Ритейл

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

Телекоммуникации

Компании телеком-сектора активно внедряют омниканальный маркетинг и программы лояльности, которые требуют мощных систем для консолидации данных, создания «портрета клиента 360» и обеспечения доставки персонализированных предложений в режиме реального времени.

Медицина и страхование

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

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

Вызовы проектирования высоконагруженных систем

При проектировании и поддержке highload-систем встает несколько ключевых вопросов.

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

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

Как быть с legacy-системами

Во многих крупных компаниях высоконагруженные системы — это унаследованные (legacy) монолитные решения, которые обслуживают ключевые бизнес-процессы. Их можно сделать подходящими для высоких нагрузок, однако они не очень для этого приспособлены. Вопрос обновления таких систем ставит бизнес перед сложным выбором. 

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

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

Заключение

Проектирование высоконагруженных систем — это вызов для многих компаний. Но грамотный подход, использование современных технологий и внимательное отношение к управлению legacy-системами позволяют успешно преодолевать эти сложности. Важно помнить, что планирование архитектуры системы под будущий рост нагрузки — это неотъемлемая часть успеха в современном цифровом мире.

Источники изображений:

Unsplash

Интересное:

Новости отрасли:

Все новости:

Профиль

Дата регистрации29.09.2017
Уставной капитал110 000,00 ₽
Юридический адрес г. Москва, вн.тер.г. муниципальный округ Хорошевский, пр-кт Ленинградский, д. 39 стр. 79
ОГРН 5177746017158
ИНН / КПП 7714415613 771401001
Среднесписочная численность620 сотрудников

Контакты

Адрес 125167, Россия, г. Москва, Ленинградский проспект 39, стр. 79
Телефон +74957256357

Социальные сети

ГлавноеЭкспертыДобавить
новость
КейсыМероприятия