Хабрахабр

OZON изнутри: feels like a startup

Ozon.ru — почти ровесник Рунета, в свои 20 лет мы старше многих наших клиентов. Из книжного интернет-магазина компания выросла в e-commerce платформу, которая объединяет инфраструктуру fulfillment-центров и логистики, веб и мобильные приложения, выдерживает и набеги десятков миллионов пользователей во время распродаж, и атаки интернет-мошенников.

А заодно покажем офис, где трудится IT-лаборатория OZON, ну и пару шикарных видов из его окон.
В этом посте мы немного расскажем про себя: о том, как перестраиваем и развиваем платформу, одновременно обслуживая 1,2 млн пользователей ежедневно.

В июле OZON переехал в новую штаб-квартиру — она располагается в одной из башен Москва-сити. За последний год технологическое подразделение компании выросло в восемь раз — сейчас у нас больше 600 человек. Мы заняли восемь этажей (и пока вы это читаете, захватываем девятый).

Замена стека

Чем дольше существует компания и чем больше у нее клиентов, тем многообразнее зоопарк IT-систем и сложнее их поддерживать и развивать. За годы работы OZON выстроил одну из лучших систем логистики и управления fulfillment-фабриками, в то же время платформа e-commerce оставалась массивным MS SQL с хранимыми процедурами и логикой в базе.

Жить с закрытым стеком Microsoft — Windows, IIS тяжко — эти технологии относительно дешевы на входе, но в какой-то момент становятся невыносимо дорогими в поддержке.

Помимо MS стека, в наследство команде IT досталось множество систем, написанных почти 20 лет назад на Delphi— их переписывать нужно просто потому, что они не отвечают требованиям современных реалий.

Мы начали активно нанимать разработчиков, переходить на опенсорс и микросервисы. В итоге около года назад в OZON началась глобальная перестройка IT.

Часть этой работы уже проделана — и в том числе благодаря этому OZON может расти на 80-90% в год. Первоочередная задача — распил логики, которая находится в базах, чтобы сделать ее масштабируемой.

Язык достаточно низкоуровневый, чтобы писать производительные сервисы, и в то же время достаточно простой — ему можно быстро научить php-разработчика. Сейчас многие системы пишутся на GO — это разумный компромисс между производительностью, сложностью освоения и скоростью разработки. Подход работает как win-win — специалисты приобретают знания, а мы можем наконец отказаться от проприетарных решений, заменив их собственными. В Москве (да и в России) нет такого количества GO-шников, которое нам нужно, поэтому мы нанимаем специалистов, готовых осваивать новый стек, и учим. Причем для своих задач команда, вероятнее всего, напишет решение более оптимальное, чем имеющиеся на рынке.

Обживаемся

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

Ему можно написать на емейл — и получить ответ в тот же день, или в Slack — там он доступен практически постоянно. У нас нет сложной иерархии и субординации — а у генерального директора нет кабинета.

Ключевые показатели проектов отображаются в реал-тайм на экранах с Grafana, которые стоят у каждой из команд. Такой подход позволяет решать проблемы быстро и небольшими командами.

Например, видно, что на складе сейчас несколько десятков тысяч еще не собранных посылок. На экране в кабинете CTO anatolix таких графиков десяток. Но если бэклог больше, чем на день — это уже проблема. Это нормально — в день мы развозим больше 100 000 заказов, и несколько десятков тысяч посылок — это бэклог меньше, чем на смену. Благодаря графикам сразу видно, «копится» ли какая-то проблема и в какой из систем что-то пошло не так.

Так, в этом ноябре в «Черную пятницу» число заказов увеличилось в 2,5 раза — на тот момент это был рекорд за все время существования сервиса, но декабрьские распродажи этот рекорд побили. Тест на устойчивость OZON проходит несколько раз в год в период распродаж.

И оно тоже могло захлебнуться в моменты пиковых нагрузок. В системе fulfillment и логистики, где товары сортируются и собираются в посылки — свои сложные IT,  которые пользователю не видны, и серьезные нагрузки.

За последние полгода мы почти полностью переписали сайт (с Win Forms на node. Параллельно растет количество товаров, меняется алгоритм поиска (недавно мы переехали на Elasticsearch) и рекомендаций (теперь на основе Machine Learning), появляются новые фичи. JS), обновили мобильные приложения и сейчас работаем над сокращением технического долга.

Мы многое пробуем, и если что-то не полетело — отказываемся и берем другое решение. IT сейчас переживают взрывной рост — у нас есть люди и технологии, которых OZON ранее никогда не видел. Но с ним были постоянные проблемы: он то падал, то выжирал все ЦПУ, то вел себя неадекватно. Так, мы строили кластер Kubernetes, и как в любом кубер кластере, там стоит роутинг трафика — мы решили использовать модный Linkerd, которым пользуется, например, Twitter. Мы потратили уйму времени на ресерч, пытались что-то запатчить — а потом выкинули и сделали проще на Ingress и nginx.

Пробуем разные хранилища данных, алгоритмы и вообще все технологии, которые есть в machine learning. Мы активно развиваем data engineering — там список технологий огромный.

У команд нет полугода на обдумывание лучших решений, ведь чтобы оставаться на месте, нужно бежать очень-очень быстро. Мы постоянно находимся между желанием сделать максимально правильно и темпами роста бизнеса. Мы работаем в режиме: фичи-фичи-фичи — обеспечение устойчивости.

Но сегодня мы и его переросли. В новом году OZON планирует увеличить продажи в некоторых категориях в 10 раз, и площадь fulfillment-фабрик — в 2,5 раза, запустить новые направления и развивать недавно созданные.
В 1998 году мы были интернет-магазином книг, потом добавляли-добавляли-добавляли категории и стали онлайн-гипермаркетом. OZON стал e-commerce платформой, в рамках которой развиваются не только товарные категории и поддерживающая их инфраструктура логистики, но и финансовые услуги и еще около 20 новых проектов.

В 2018 году, например, мы в бета-режиме запустили маркетплейс — несмотря на то, что мы пока его тестируем, на нем уже сотни селлеров.

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

Хотя отдыхать мы тоже любим. В общем, нашему IT-департаменту предстоит много работы. Кстати, приходите в гости — по пятницам у нас вечеринки.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть