Как конкурировать с гигантами мирового рынка молодой компании? Ответ на этот вопрос знают в Jet.com — эта онлайн-площадка электронной торговли, на которой можно купить практически все — от продуктов питания и бытовой химии до детских игрушек и ювелирных украшений. Компания выстроила уникальную инфраструктуру, в основе которой лежит облачная платформа Microsoft Azure, а также разработки с открытым кодом. В итоге ресурс добился удивительных показателей масштабируемости и смог привлечь новых клиентов более удобным и быстрым сервисом даже в часы пиковых нагрузок.
Выйти в лидеры за три года
Когда несколько лет назад один из самых популярных онлайн-магазинов мира Diapers.com был продан компании Amazon более чем за полмиллиарда долларов, никто и представить не мог, что спустя 4 года лидер рынка электронной торговли получит нового конкурента в лице еще одного детища Марка Лора (Marc Lore). Сегодня гегемонии Amazon угрожает маркетплэйс Jet.com. Там можно приобрести самый широкий спектр товаров: это и продукты питания, и косметика, и игрушки для детей, и даже мебель или часы элитных марок. В своей работе Jet.com использует самые инновационные идеи. И в этой конкуренции многие ставят на отнюдь не на гиганта рынка.
«Наша ценовая политика формируется благодаря эффективной модели доставки, которая подразумевает наиболее экономически выгодный способ ее осуществления из ближайшей к покупателю точки, — объясняет основы своего бизнеса соучредитель и CEO компании Jet Марк Лор. — Таким образом, мы можем экономить до 10% от величины типовой транзакции на нашей платформе, что позволяет нам выигрывать, просто будучи умнее в выполнении заказов».
Такая бизнес-модель находится в прямой зависимости от того, насколько ее качественно могут поддержать технологии, ведь речь идет о больших объемах данных о покупателях и складах, которые нужно не только собрать и проанализировать, но еще и постоянно где-то хранить. С учетом стоявшей перед бизнесом задачи стать одной из ведущих e-commerce платформ США в течение 18-36 месяцев, создание надежного ИТ-ландшафта стало ключевой бизнес-задачей.
«Мы поняли, что просто не располагаем достаточными ресурсами для создания и управления дата-центрами, а также развития такой инфраструктуры, которая отвечала бы нашей стратегии роста. И тогда мы оперативно приняли решение о переходе к облачной модели», — рассказывает CTO компании Jet Майк Ханрахан (Mike Hanrahan).
В создании платформы помогли решения с открытым кодом
Амбициозные планы развития предполагали, что ИТ-инфраструктура должна будет соответствовать ключевым требованиям. Во-первых, необходимо было обеспечить максимально быстрый переход от разработки потребительских приложений к их внедрению. Во-вторых, система должна была стать более гибкой и быстро масштабируемой, чтобы справляться с пиковыми нагрузками и отвечать всем ожиданиям пользователей по скорости обслуживания. И наконец, она должна обеспечить надежные способы хранения массивов данных и управления ими.
«Чтобы стать одной из лучших площадок онлайн-торговли, необходимо обслуживать миллионы клиентов. Это требует создания площадки высшего уровня, построенной на гибкой и открытой облачной платформе. И именно это дал нам Azure», — рассказывает о причинах выбора решения от Microsoft Майк Ханрахан.
Выбор этот был продиктован еще и тем, что Azure может одновременно использовать и технологии .NET, и Open Source. Платформа также хорошо сочетается с микросервисной архитектурой, которая лежит в основе Jet.com, благодаря языку программирования F#, который интегрирован в Visual Studio.
«Используемая нами концепция микросервисов исключает множество дополнительных расходов, которые характерны для сервисно-ориентированной архитектуры, вроде той, что использует Amazon. Это подразумевает параллельную работу пользователей и их взаимодействие с шиной событий. Более того, F# хорошо сочетается с выбранной нами парадигмой, особенно с постоянными потоками данных, которые являются ключевой частью нашей микросервисной архитектуры», — делится деталями Майк Ханрахан.
Платформа Microsoft Visual Studio вообще стала основной интегрированной средой разработки для серверной инфраструктуры компании. Впрочем, не сама по себе, а с добавлением элементов технологического стека Node. Для максимально быстрого создания и использования итогового кода применяются сочетание служб Azure App Service, Azure Web Roles и решения для непрерывной интеграции с открытым исходным кодом Jenkins.
Весь бизнес — в облаке
В обновленной инфраструктуре нашлось место для различных промежуточных решений с открытым кодом, которые запущены на виртуальных серверах Azure. Среди них Elasticsearch, RedisLabs, Hadoop, и хранилище данных Event Store. Для оптимизации процесса разработки используются еще несколько служб Azure, например, Azure API Management, благодаря которому удалось фактически интегрировать платформу с торговыми партнерами. За хранение ключей шифрования отвечает технология Azure Key Vault, а за оповещения разработчиков в режиме реального времени — Azure Application Insights, которая также позволяет изучать то, каким образом приложение Jet.com используют потребители.
«Внедрение такого числа сервисов и инструментов Azure позволило нам перейти с нуля до полноценной онлайн-площадки всего за 12 месяцев. Построение другой подобной системы отняло бы у нас в два раза больше времени и потребовало бы дополнительных капиталовложений», — считает Майк Ханрахан.
Jet.com использует в повседневной работе и другие облачные сервисы Microsoft, в частности, Office 365 и Azure Active Directory. В компании говорят, что абсолютно весь бизнес теперь сосредоточен в облаке.
Внедрением Azure компания добилась всех заявленных целей. Процесс разработки упрощен настолько, что создание, развертывание и масштабирование приложений потребительского класса занимает удивительно малое время. Масштабирование самой платформы также происходит оперативно и в автоматическом режиме, в зависимости от клиентской нагрузки или в соответствии с заданным для PaaS-серверов расписанием. И, конечно, платформа отвечает всем необходимым требованиям по хранению данных, благо Azure HDInsight предназначен для обработки любых объемов, и увеличение от терабайт до петабайт происходит по требованию. Таким образом, с помощью Azure Jet удалось создать именно ту облачную инфраструктуру, которая необходима быстро развивающейся компании с лидерскими амбициями.