К началу 2022 года рынок e-commerce в России вырос на 90% по количеству онлайн-заказов. Рост продолжается, повышается спрос на отечественные IT-продукты, однако для оптимизации решений нужна сильная технологическая база и профессиональный ресурс. AGORA является мощной платформой, готовой поддерживать стабильную работу при постоянно увеличивающихся нагрузках.
В этой статье рассказываем подробнее, какие инструменты используются для поддержания проектов с десятками тысяч пользователей и каталогами на миллионы товаров и как они помогают в беспрерывном развитии бизнеса. Возможности масштабирования рассмотрим на примере B2B и B2C маркетплейса AGORA — одного из популярных продуктов компании.
Архитектура маркетплейса на базе платформы AGORA
Главная трудность при масштабировании IT-систем в том, что нужно обеспечить их устойчивость к возрастающим нагрузкам и удобство изменения. Сама возможность масштабирования появляется благодаря правильно выбранной архитектуре сервисов. Для начала отметим, что архитектура программных систем существует трех типов: монолитная, микросервисная и гибридная (комбинированная).
Монолитная архитектура представляет собой единый модуль. В этом случае всеми компонентами системы (базой данных, пользовательским интерфейсом и бизнес-логикой) управляют из одного места. На начальных этапах работы проекта монолитная архитектура подходит идеально из-за простоты реализации, но для дальнейшего масштабирования не годится. Все дело в неравномерном распределении нагрузки на отдельные сервисы — это может замедлять работу всего маркетплейса, требуется большой ресурс для поддержки.
Если же используется архитектура микросервисов, система состоит из связанных частей. Например, главная страница «ВКонтакте» будет включать в себя «кусочки»: поиск, ленту новостей, раздел «Друзья». Каждый модуль находится на своем сервере, их настройка и обновления производятся отдельно. Таким способом создается сложная архитектура высоконагруженных приложений. Не возникает проблем с масштабированием — каждый сервис растет независимо, обращается к собственной базе данных. Из минусов — проблемы с совместимостью сервисов, потребность в нескольких командах разработки и выстроенной координации между ними, а также в большем количестве оборудования. Как следствие, микросервисная архитектура высоконагруженных систем является более дорогой в поддержке и обслуживании.
Для AGORA мы выбрали гибридную архитектуру, которая идеально подходит под наши цели. Это позволяет скомпенсировать недостатки первых двух типов и в то же время получить высокие показатели результативности разработки и дальнейшего развития.
Простота доступа к коду монолитной системы дополняется гибкостью микросервисного подхода.
К отдельным сервисам в AGORA относятся:
- Каталог — один из самых объемных и высоконагруженных модулей. Доступ к данным построен на технологиях OpenSearch. Это позволяет работать с любыми размерами каталогов и обеспечивать нужную персонализацию цен, остатков, характеристик и т.д.
- Шина данных — обслуживает процессы асинхронной обработки импорта и экспорта данных с ERP-, CRM- и другими сторонними системами, а также параллельную обработку файлов, получаемых от поставщиков. Шина позволяет добавлять нужное количество серверов или воркеров для ускорения обработки и настраивать процессы под конкретный проект.
- Поиск OpenSearch — производится по названию, артикулу, значениям свойств или части его описания товара. Работает даже при наличии опечаток или измененных окончаний слов.
- Product matching — cервис позволяет привязывать товары поставщика к эталонам, категории товаров поставщика к классификатору платформы, находить аналоги товаров.
- Mailer — служба отправки электронных писем. AGORA в день отправляет более 400 000 сообщений. Наличие собственного сервиса экономит порядка 300 000 р. в месяц (столько стоило бы приобретение стороннего решения для email-рассылок).
- Rest API — обеспечивает взаимодействие мобильного приложения, сторонних сервисов с backend-ом AGORA.
- CryptoPro — дает возможность подписывать электронные документы с помощью ЭЦП.
В архитектуре IT-систем не менее важен способ взаимодействия клиентского интерфейса и программной структуры. В AGORA он построен на headless eCommerce — принципе, при котором в разработке отсутствует унифицированная frontend-составляющая. Это дает свободу выбора дизайна, пользовательских сценариев и инструментов визуализации для каждого проекта. Подробнее о преимуществах headless eCommerce можно узнать в статье нашего блога.
Именно правильно выбранная функциональная архитектура системы позволяет AGORA сохранять процесс разработки стабильным, не теряя при этом возможности для дальнейшего масштабирования, в том числе благодаря выносу самых громоздких и быстрорастущих модулей в отдельные микросервисы.
Инструменты разработки для масштабирования
Платформа AGORA написана на языке программирования Python. Фреймворк Django облегчает процесс разработки благодаря готовым функциям, а PostgreSQL содержит в себе архитектуру IT-процессов, позволяя получать ответ от баз данных за сотые доли секунды. Тяжелые поисковые запросы обрабатываются в отдельном полнотекстовом сервисе OpenSearch. Импорт построен на брокере задач, который автоматически определяет приоритетность обработки процессов.
Все эти инструменты позволяют поддерживать горизонтальное масштабирование системы — увеличивать производительность внедрением новых серверов, а не за счет повышения мощностей. Именно этот способ дает равномерную нагрузку на сервера, обеспечивая большую отказоустойчивость.
Оптимизация ресурсов разработки
В AGORA мы применяем метод контейнеризации на основе программной платформы Docker. При таком подходе приложение (как элемент системы) изолируют в виртуальный контейнер и ограничивают ресурсы только необходимыми для работы объемами. Для управления контейнерами выбрали оркестратор Docker Swarm — он позволяет контролировать энергозатраты, перемещать контейнеры с одного сервера на другой, заниматься мониторингом, менять конфигурацию. Этот принцип позволяет нам иметь гибридную архитектуру: держать на разных серверах в контейнерах элементы системы AGORA и обеспечивать их бесконфликтное взаимодействие, оптимально используя при этом ресурсы «железа».
Если какой-то сервер выходит из строя, оркестратор оперативно замечает проблему и автоматически начинает разворачивать «упавший» контейнер на другом сервере, тем самым обеспечивая беспрерывную работу AGORA. В 2022 году оркестрация — главный тренд и инструмент горизонтального масштабирования систем.
У нас уже работают проекты с 15-20 тысячами поставщиков и каталогами на 5-7 миллионов товаров, выдерживая при этом нагрузку в 2 миллиона пользователей в месяц. При этом мы можем беспрерывно расширяться за счет покупки новых серверов, не теряя в скорости и производительности.
Резюме
В AGORA используется гибридная архитектура IT в сочетании с принципами контейнеризации и оркестрации, что позволяет иметь высокую доступность и скорость развертывания, а правильно выбранные инструменты делают возможным более бюджетное горизонтальное масштабирование. В реализации AGORA обгоняет конкурентов и следует новейшим трендам разработки.
Если возникли вопросы или потребность в собственном маркетплейсе, вы можете обратиться к специалистам AGORA. Мы поможем выбрать лучшее решение для реализации возможностей вашего бизнеса.