18 April 2018

Проблемы и задачи в Enterprise E-Commerce. Как возник проект Virto Commerce?

Virto Commerce corporate blogDevelopment for e-commerce
В современном мире существует огромное количество E-Commerce решений: от систем для создания небольших интернет-магазинов до платформ корпоративного уровня (enterprise). Однако далеко не все они обеспечивают технологическое преимущество перед конкурентами, которое позволяет E-Commerce проекту развиваться и вводить новый функционал быстрее, тем самым постоянно наращивая объемы продаж и снижая издержки.


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

Наш более чем десятилетний опыт реализации международных E-Commerce проектов с посещаемостью в десятки тысяч человек в сутки для компаний списка Fortune 500, показал, что основными причинами смены платформы для E-Commerce является:

  • Смена стека технологий;
  • Потеря компетенций (уход команды разработчиков) – особенно характерно для самописных, inhouse систем;
  • Сложность внесения изменений;
  • Сложность или невозможность масштабирования;
  • Современные тенденции по переходу в облака.

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

О чем будет наш блог?


Этот блог представляет наш опыт в E-Commerce, который перерос со временем в проект VirtoCommerce — платформу c открытым кодом на базе .Net и MS Azure, которая включает архитектуру и базовые блоки для создания B2B или B2C Enterprise E-Commerce решений.

Создавая проекты для крупного ecommerce, а также саму платформу, мы приобрели свой собственный взгляд на:

  • Agile процессы разработки;
  • Контроль качества выпускаемого продукта;
  • Автоматизацию DevOps процессов (как при разработке самой платформы, так и в клиентских проектах);
  • Построение современной облачной IT инфраструктуры, которая необходима для корпоративных высоконагруженных E-Commerce решений.

В нашем блоге Вы сможете найти информацию по следующим темам:

  • Нашем видение Agile-процессов разработки;
  • Структура команды и процессы, которые мы используем при разработке;
  • Шаги и наработки по запуску Pipeline в Jenkins для автоматизации сборки более, чем 60 модулей;
  • Использование автоматических E2E тестов для контроля качества;
  • Результаты, полученных в клиентских проектах и кейсы крупных внедрений;
  • Опыт использования сервисов Azure для различных задач;
  • Процесс миграции e-commerce проекта на платформу .NET Core.

Чтобы эти публикации читались с пониманием того, о чем идет речь, позвольте рассказать немного о том, с кем и мы работаем и как используем платформу Virto Commerce.

Кто такие enterprise e-commerce клиенты?


Enterprise E-Commerce сильно отличается от небольших и средних интернет-магазинов. Бизнес-процессы, работающие при 10 или 100 заказах в сутки, точно не будут работать при 1 000 заказов в сутки и более. Бывают и отличия, которые обусловлены не только объемом заказов, но и другими сложностями:

  • B2B-продажи онлайн, которые требуют поддержки десятков каталогов разных производителей и моделей ценообразования для них;
  • B2C-магазины, работающие на несколько стран со всеми вытекающими особенностями оформления заказов, приемов платежей и доставки в разные страницы через разные компании.
  • Магазины с уникальными бизнес-процессами, например с согласованием стоимости продаваемого товара в зависимости от объема в режиме онлайн.
  • B2B-проекты с развитой системы дистрибьюции, франчайзинга и т.д.

С такими клиентами мы сталкиваемся регулярно и именно под них изначально писался основный функционал нашей платформы. Конечно же, enteprise – это не только особый функционал, но и особенные нагрузки. Среди наших клиентов много больших интернет-магазинов из США, где проводится акция Black Friday, когда посещаемость может вырастать в 10 и более раз за сутки. Это накладывает повышенные требования к отказоустойчивости платформы для таких проектов, которую мы также обеспечиваем для наших клиентов.

Немного о платформе


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

Результаты оценки качества кода, так же доступны в открытом виде в SonarQube.

Платформа построена на современном стеке технологий от Microsoft: .NET Framework, .NET Core, Entity Framework, ASP.NET.



Мы уделяем особое внимание производительности для enterprise e-commerce и подбираем технологии исходя из этого. Для интерактивных взаимодействий с пользователями используется Angular, который также открыт, хорошо известен и имеет большое коммьюнити. Его модульность, наличие огромного количества готовых решенийи использование MVC-архитектуры, на наш взгляд, при правильном подходе повышает скорость разработки. Для быстрого полнотекстового поиска по каталогу используется ElasticSearch, который масштабируется до петабайт данных, использует денормализацию для повышения качества поиска, открыт и используется в крупных проектах, например Wikipedia, GitHub, StackOverflow и др…

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

Для работы с B2B-коммерцией, часто встречающейся в enterprise, поддерживается работа с физическими и виртуальными каталогами, которые позволяют в автоматическом режиме составлять главный каталог из каталогов производителей или поставщиков, а также вводить при этом особые механизмы ценообразования.



Одним из основных преимуществ платформы, на наш взгляд, является ее модульность, что дает высокую скорость разработки, простоту масштабирования и повышенную отказоустойчивость. «Из коробки» есть разделение между клиентскими приложениями (Web Apps, Mobile apps и т.д.) и серверной частью. Все элементы системы представлены в виде отдельных, независимых модулей, например каталог, ценообразование, корзина, заказ и др… При построении решения Вы можете решать какие модули использовать, а какие нет. И, конечно, для реализации отсутствующих функций Вы можете создать свой собственный модуль.



Несмотря на то, что платформа может быть развернута в разных конфигурациях, максимальное преимущество достигается при работе в облаке. Мы в свое время выбрали Microsoft Azure. В этом случае появляется возможность использовать сервисы Azure для повышения эффективности всего решения:

  • Автоматическое масштабирование
  • App Insights как инструмент мониторинга
  • Logic Apps (облачная версия BizTalk) для интеграций
  • Blob Storage + CDN для хранения ресурсов

Возможности Azure уже решают множество возможных проблем с надежностью и масштабируемостью, что исключает ре-инжиниринг. Даже в сравнении с собственным collocation производительность системы эквивалентна, а размещение точек доступа к серверу ближе к клиенту улучшает latency.

В нашем блоге Вы найдете информацию о том, как с помощью облачного размещения мы смогли выдержать такие серьезные нагрузки, как рост посещаемости в 10 раз за сутки при проведении Black Friday / Cyber Monday в США.

Заключение


Enterprise E-Commerce проекты накладывают особые условия и требования для платформы разработки. Способность быстро разрабатывать, недорого поддерживать, просто изменять и иметь высокую отказоустойчивость особо ценится клиентами. В наших будущих статьях мы расскажем о том, как мы реализуем enterprise e-Commerce проекты с помощью платформы Virto Commerce, с какими вызовами мы сталкиваемся и как их преодолеваем.

Вот небольшой перечень тем которые вскоре мы планируем осветить в нашем блоге:

  • Наше видение Agile-процессов разработки на практике
  • Структура команды и процессы, которые мы практикуем при разработке;
  • Описание собственных CI, CD процессов в условиях хранения кода на GitHub большого количества модулей, а также облачных сред развертывания.
  • Использование автоматических E2E тестов для контроля качества;
  • Результаты, полученных в клиентских проектах и кейсы крупных внедрений;
  • Опыт использования сервисов Azure для различных задач;
  • Процесс миграции e-commerce проекта на платформу .NET Core.
Tags:virtocommerceazurenetecommercee-commerceagile
Hubs: Virto Commerce corporate blog Development for e-commerce
+8
3.4k 15
Leave a comment
Ads
Top of the last 24 hours