vkontakte

Инструменты масштабирования платформы AGORA

28 апреля 2022 г.

cancel_ico.svg

К началу 2022 года рынок e-commerce в России вырос на 90% по количеству онлайн-заказов. Рост продолжается, повышается спрос на отечественные IT-продукты, однако для оптимизации решений нужна сильная технологическая база и профессиональный ресурс. AGORA является мощной платформой, готовой поддерживать стабильную работу при постоянно увеличивающихся нагрузках.

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

Кому нужна возможность масштабирования для крупных B2B и B2C торговых площадок

Содержание:

Архитектура маркетплейса на базе платформы AGORA

Инструменты разработки для масштабирования

Оптимизация ресурсов разработки

Резюме

Архитектура маркетплейса на базе платформы AGORA

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

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

Если же используется архитектура микросервисов, система состоит из связанных частей. Например, главная страница «ВКонтакте» будет включать в себя «кусочки»: поиск, ленту новостей, раздел «Друзья». Каждый модуль находится на своем сервере, их настройка и обновления производятся отдельно. Таким способом создается сложная архитектура высоконагруженных приложений. Не возникает проблем с масштабированием — каждый сервис растет независимо, обращается к собственной базе данных. Из минусов — проблемы с совместимостью сервисов, потребность в нескольких командах разработки и выстроенной координации между ними, а также в большем количестве оборудования.  Как следствие, микросервисная архитектура высоконагруженных систем является более дорогой в поддержке и обслуживании.


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

 

Использование комбинированной архитектуры на платформе AGORA

 

Простота доступа к коду монолитной системы дополняется гибкостью микросервисного подхода.
К отдельным сервисам в AGORA относятся:

  • Каталог — один из самых объемных и высоконагруженных модулей. Доступ к данным построен на технологиях Elastic. Это позволяет работать с любыми размерами каталогов и обеспечивать нужную персонализацию цен, остатков, характеристик и т.д.
  • Шина данных — обслуживает процессы асинхронной обработки импорта и экспорта данных с ERP-, CRM- и другими сторонними системами, а также параллельную обработку файлов, получаемых от поставщиков. Шина позволяет добавлять нужное количество серверов или воркеров для ускорения обработки и настраивать процессы под конкретный проект.
  • Поиск Elasticsearch — производится по названию, артикулу, значениям свойств или части его описания товара. Работает даже при наличии опечаток или измененных окончаний слов.
  • 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-процессов, позволяя получать ответ от баз данных за сотые доли секунды. Тяжелые поисковые запросы обрабатываются в отдельном полнотекстовом сервисе Elastic. Импорт построен на брокере задач, который автоматически определяет приоритетность обработки процессов.

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

Оптимизация ресурсов разработки

В AGORA мы применяем метод контейнеризации на основе программной платформы Docker. При таком подходе приложение (как элемент системы) изолируют в виртуальный контейнер и ограничивают ресурсы только необходимыми для работы объемами. Для управления контейнерами выбрали оркестратор Docker Swarm — он позволяет контролировать энергозатраты, перемещать контейнеры с одного сервера на другой, заниматься мониторингом, менять конфигурацию. Этот принцип позволяет нам иметь гибридную архитектуру: держать на разных серверах в контейнерах элементы системы AGORA и обеспечивать их бесконфликтное взаимодействие, оптимально используя при этом ресурсы «железа».

Если какой-то сервер выходит из строя, оркестратор оперативно замечает проблему и автоматически начинает разворачивать «упавший» контейнер на другом сервере, тем самым обеспечивая беспрерывную работу AGORA. В 2022 году оркестрация — главный тренд и инструмент горизонтального масштабирования систем.

У нас уже работают проекты с 15-20 тысячами поставщиков и каталогами на 5-7 миллионов товаров, выдерживая при этом нагрузку в 2 миллиона пользователей в месяц. При этом мы можем беспрерывно расширяться за счет покупки новых серверов, не теряя в скорости и производительности.

Способность платформы выдерживать внушительные нагрузки

Резюме

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

Если возникли вопросы или потребность в собственном маркетплейсе, вы можете обратиться к специалистам AGORA. Мы поможем выбрать лучшее решение для реализации возможностей вашего бизнеса:

8 (495) 128-99-39
info@agora.ru

 

Согласие на обработку персональных данных

< Предыдущая статья

Обновления платформы AGORA: доработка интерфейса, функциональности личного кабинета и другие важные улучшения

6 апреля 2022 г.

Поделиться в социальных сетях: