Composable Commerce. Разбираемся в терминологии
Несмотря на то, что SOA и микросервисный подход были придуманы десятки лет назад, их популярность в екоммерс сейчас на пике. Но в самих терминах headless, PWA, микросервисы и composable сейчас много путаницы. В этой статье мы систематизируем основные понятия и поможем разобраться, что есть что.
Out of the box
Ещё десять лет назад большинство решений для e-commerce разрабатывались как монолитные системы. В них фронтенд (презентационный слой) был неразрывно связан с бэкендом (логикой и данными). Такие платформы «из коробки» обладали обширной функциональностью и сразу покрывали большинство требований бизнеса. Подход с использованием готовых платформ актуален и сегодня — это лучший выбор для запуска MVP с минимальным time-to-market. Например, в наших проектах мы используем платформу Magento, но чаще всего только как headless-backend.
Headless-first
Первым шагом в разбиении монолитных платформ стал подход headless, который предполагает отделение фронтенда от бэкенда. Теперь не обязательно использовать фронтенд, идущий «из коробки» — вместо него можно выбрать любой современный фреймворк, например, Vue.js или React.js. Главное преимущество такого подхода — возможность вести параллельную и более быструю разработку.
Рост популярности омниканальности увеличил число тачпойнтов и маркетинговых каналов, что потребовало разных фронтендов под различные устройства. В этой ситуации headless-подход оказался особенно востребованным.
PWA
Progressive Web Applications стоят немного особняком в этой истории. Они давно на слуху, а с 2018 года поддерживаются всеми основными браузерами. При этом к Composable Commerce напрямую они не относятся: PWA — это технология, которая позволяет запускать веб-приложение так, что оно воспринимается и ощущается пользователем как нативное приложение.
Хотя чёткого и общепринятого определения у PWA нет, сложилась определённая философия и архитектура таких приложений. В общем виде, PWA — это веб-приложения, разработанные с применением специальных технологий (service worker, web app manifest, app shell, push notifications) для достижения заданных целевых характеристик: быстроты, надёжности и удобства (fast, reliable & engaging).
SPA
SPA (Single Page Application) — это архитектурный подход к построению фронтенда, при котором все взаимодействие происходит на одной странице без перезагрузок.
PWA может быть SPA, но не обязана. И наоборот: SPA сама по себе не становится PWA, пока не использует набор технологий, перечисленных выше.
Микросервисы
Микросервисы — это архитектурный подход, при котором программная система состоит из множества небольших автономных сервисов, каждый из которых выполняет свою конкретную, часто узкую задачу. Для e-commerce, как крайне конкурентной и быстро меняющейся отрасли, этот подход ценен тем, что позволяет оперативно реагировать на изменение бизнес-требований и быстрее внедрять новые функции.
Микросервисная архитектура облегчает ввод новых сервисов в эксплуатацию и их быстрое развертывание. Поскольку модули распределяются по разным серверным узлам и взаимодействуют между собой через независимые протоколы, становится возможным использование различных языков программирования, инструментов мониторинга и способов хранения данных. Разработку можно вести параллельно несколькими командами, используя наиболее подходящие технологии и инструменты, поскольку нет жесткой зависимости от технологического стека монолита.
Однако выделение каждого элемента логики в отдельный сервис значительно усложняет общую архитектуру, что потенциально снижает её управляемость и понятность по мере роста. Поэтому микросервисный подход требует высокой степени организации, тщательного управления и внимания.
Composable Commerce
Где-то на стыке микросервисов и SOA появилась парадигма Composable Commerce, в основе которой лежат модульные компоненты — Packaged Business Capabilities (PBC). Это отдельные элементы системы, которые можно независимо заменять, улучшать и масштабировать. Каждый компонент состоит из одного или нескольких микросервисов, объединённых общей бизнес-задачей. Главная ценность composable-подхода — возможность выбирать для каждой задачи лучшие решения на рынке и легко интегрировать их друг с другом. Например, если компания переросла возможности коробочной платформы для управления информацией о товарах, она просто добавляет к общей архитектуре отдельную PIM-систему (например, Pimcore). Если не устраивают штатные инструменты работы с контентом — интегрируется отдельная headless CMS, такая как Strapi.
Composable Commerce опирается на три ключевых принципа:
- Модульность
Каждый модуль разрабатывается независимо, автономно деплоится, легко заменяется и масштабируется. При этом базовая функциональность конкретной платформы может быть представлена всего лишь одним из модулей. - Бизнес-ориентированность
Система становится более отзывчивой к изменениям на рынке и быстрее реагирует на потребности бизнеса. Разработка становится дешевле, а для отдельных задач легко комбинировать собственные команды с внешними подрядчиками. - Открытость
Отдельные компоненты не зависят от конкретного вендора. Можно свободно выбирать лучшие решения на рынке и подбирать оптимальные инструменты под конкретные бизнес-задачи.
Рассмотрим composable-подход на конкретном примере. Существует задача автоматизации планирования доставок. Например, компания частично работала с 3pl-провайдером, а частично организовывала последнюю милю самостоятельно. Готового решения, полностью отвечающего этим задачам, на рынке просто не существовало. Поэтому команда разработала отдельный микросервис на Go.
Для магазинов с большим каталогом часто возникают проблемы с поиском. Допустим, для этого интегрировали AnyQuery, который отлично справляется с этой задачей. Сам же каталог был реализован на Elastic, что обеспечило высокую скорость и стабильность работы. Для апселла и персонализации подключили Mindbox.
Важный плюс composable-подхода в том, что каждое из этих решений в любой момент можно заменить, если на рынке появится более подходящий сервис.
Именно так выглядит Composable Commerce на практике.
MACH
Параллельно с бизнес-ориентированной философией Composable Commerce активно развивается технологический подход MACH (Microservices, API-first, Cloud-native, Headless). MACH ставит своей целью реализацию принципов composable через конкретный набор технологий и подходов. Вокруг этой концепции сформировался даже MACH-альянс, объединяющий компании, которые придерживаются единой технологической философии и развивают решения, соответствующие принципам MACH.
При этом важно понимать, что MACH — не единственный технический способ построения composable-архитектуры. На самом деле любое сочетание подходов, позволяющее уйти от монолита к гибким и автономным компонентам, можно считать composable-решением. Но MACH-альянс однозначно приносит пользу рынку, продвигая правильные практики и способствуя развитию экосистемы composable commerce.
Если вам нужен надежный партнер
для разработки IT-решения с предсказуемым по срокам и бюджету результатом — давайте обсудим ваш проект