В современном мире существует огромное количество E-Commerce решений: от систем для создания небольших интернет-магазинов до платформ корпоративного уровня (enterprise). Однако далеко не все они обеспечивают технологическое преимущество перед конкурентами, которое позволяет E-Commerce проекту развиваться и вводить новый функционал быстрее, тем самым постоянно наращивая объемы продаж и снижая издержки.
Технологическая платформа, которая тормозит быстрое внесение изменений и не масштабируется, может привести E-Commerce к краху в условиях жестокой конкуренции, когда важна каждая небольшая мелочь, которая может повысить конверсию в продажи на десятые доли процента или же хотя бы немного снизить затраты на рекламу или обслуживание.
Наш более чем десятилетний опыт реализации международных E-Commerce проектов с посещаемостью в десятки тысяч человек в сутки для компаний списка Fortune 500, показал, что основными причинами смены платформы для E-Commerce является:
И, как результат – появление технологического отставания по сравнению с конкурентами, которое ведет к вышеуказанным проблемам бизнеса.
Этот блог представляет наш опыт в E-Commerce, который перерос со временем в проект VirtoCommerce — платформу c открытым кодом на базе .Net и MS Azure, которая включает архитектуру и базовые блоки для создания B2B или B2C Enterprise E-Commerce решений.
Создавая проекты для крупного ecommerce, а также саму платформу, мы приобрели свой собственный взгляд на:
В нашем блоге Вы сможете найти информацию по следующим темам:
Чтобы эти публикации читались с пониманием того, о чем идет речь, позвольте рассказать немного о том, с кем и мы работаем и как используем платформу Virto Commerce.
Enterprise E-Commerce сильно отличается от небольших и средних интернет-магазинов. Бизнес-процессы, работающие при 10 или 100 заказах в сутки, точно не будут работать при 1 000 заказов в сутки и более. Бывают и отличия, которые обусловлены не только объемом заказов, но и другими сложностями:
С такими клиентами мы сталкиваемся регулярно и именно под них изначально писался основный функционал нашей платформы. Конечно же, 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 для повышения эффективности всего решения:
Возможности Azure уже решают множество возможных проблем с надежностью и масштабируемостью, что исключает ре-инжиниринг. Даже в сравнении с собственным collocation производительность системы эквивалентна, а размещение точек доступа к серверу ближе к клиенту улучшает latency.
В нашем блоге Вы найдете информацию о том, как с помощью облачного размещения мы смогли выдержать такие серьезные нагрузки, как рост посещаемости в 10 раз за сутки при проведении Black Friday / Cyber Monday в США.
Enterprise E-Commerce проекты накладывают особые условия и требования для платформы разработки. Способность быстро разрабатывать, недорого поддерживать, просто изменять и иметь высокую отказоустойчивость особо ценится клиентами. В наших будущих статьях мы расскажем о том, как мы реализуем enterprise e-Commerce проекты с помощью платформы Virto 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.