Как устроен еком? Разбираем базовые принципы еком-системы

Привет, VC! На связи Антон, техдир Metalcode. У нашей команды 10-летний опыт разработки еком-проектов на php, битрикс. От типовых решений Аспро до сложной кастомной разработки с десятками интеграций.

Хочу написать цикл статей про разработку еком-проектов, отрефлексировать опыт и превратить в полезные кейсы.

Интернет-магазин или еком-система? Какие еще стенды и контуры? Доступным языком про устройство и разработку еком-проектов.

Как устроен еком? Разбираем базовые принципы еком-системы

Понятие еком-системы:

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

Большие энтерпрайз системы могут состоять из десятков сервисов.

Поэтому под проектом в екоме мы всегда подразумеваем именно еком-систему, а не отдельно взятый интернет-магазин.

E-commerce платформы

Еком-система может быть построена на базе платформы – готовый набор компонентов, автоматизирующих основные процессы, связанные с товарами, клиентами и заказами. Такие комплексные решения могут одновременно содержать функциональность целых классов систем: PIM, CRM, OMS, CMS и других. Сравнение платформ электронной коммерции. В наш фокус больше всего попадает российская система Ensi. Платформа подходит для крупного проекта.

Альтернативой являются системы построенные вручную. Нередко это учет в 1С, магазин на Битрикс/ Laravel, облачные или коробочные CRM и тд. Их объединяют интеграции. Иногда этот обмен данными работает "из коробки", но чаще требуется дорабатывать под бизнес требования. Мы много работаем с этим стеком и понимаем его устройство. Такой формат подходит для небольшого и среднего проекта.

Витрины

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

Нужно отметить нарастающий интерес вокруг headless-подхода, он не новый, но все еще полноценно не прижился на нашем рынке.

Данный подход позволяет выстраивать архитектуру системы так, чтобы использовать несколько витрин и быстрее менять их интерфейсы.

Маркетплейсы с технической точки зрения также встраиваются в еком-систему. Например, интегрируем их в складской учет 1С: отдаем в маркеты остатки по товарам, обрабатываем заказы, формируем отчеты комиссионера, передаем в бухгалтерию и так далее.

Тестовый стенд

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

Зачем? Чтобы сократить риски бизнеса, изменения и доработки тестируется отдельно от основного проекта, с которым взаимодействуют покупатели и бизнес.

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

Прод и стейдж

На проекте должно быть минимум два стенда: продовый (prod) и тестовый (stage). Плюс несколько копий для разработки и тестирования.

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

Для разработчиков разворачиваются только те сервисы, с которыми они взаимодействуют, а не вся еком-система.

Может ли разработчик ограничиться только локальной копией интернет-магазина? Сильно зависит от задач. Если задачи не касаются других сервисов и интеграций — можно, но учитывать зависимости все равно придется.

В этом кроется несколько нюансов:

  • тестовые стенды "протухают" – устаревают. Нужно следить за актуальностью;
  • зачастую тестовый стенд невозможно развернуть в полном объеме (часть облачных сервисов все равно приходится либо исключать, либо очень бережно и временно внедрять боевой сервис в тестовый стенд);
  • запрещено уносить персональные данные пользователей дальше продового стенда – для решения этой задачи применяются отдельные практики (обфускации, расскажу отдельно).

Доставка кода

И самое главное, что стенды должны быть связаны между собой системами доставки кода. В маленьких проектах этого можно достичь небольшими ресурсами (контроль версий + миграции баз данных). Для крупных есть целый набор практик CI / CD.

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

Тестовый стенд выступает в роли того места, куда сливаются изменения от всех разработчиков и команд, там происходят финальные тесты.

Команды в еком-системе:

Также в рамках понятия еком-системы важно отметить, что ее обслуживает несколько команд. Редко одна команда автоматизирует склады в 1С и они же развивают CRM.

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

Резюме:

  • еком-система – это набор сервисов, связанных между собой;
  • архитектуру еком-системы должен строить техдир / CTO;
  • каждую подсистему может обслуживать отдельная команда, но они должны быть погружены в общий контекст, знать взаимосвязи и интеграции.
  • для разработки требуется несколько копий проекта, связанных между собой системами доставки кода;
  • разработчики не имеют доступа к продовому стенду, делают все на своих копиях;
  • тестовый стенд приходится периодически актуализировать;
  • чем лучше построена система доставки кода – тем меньше разработчики тратят времени на лишние действия и быстрее бизнес получает результаты.

Расскажу в ближайших публикациях:

— Как достигаем общего знания между командами на проекте? Спойлер: рисуем целевую архитектуру, готовим документацию, описываем бизнес-процессы.

— Как устроен цикл разработки применительно к описанной архитектуре нескольких стендов еком-системы.

Больше полезной информации про разработку еком-проектов в нашем телеграм-канале Metalcode.

44
1 комментарий

Комментарий удалён модератором

Еком-система) Не раздутая, а четко составленная под потребности бизнеса.