Ozon.ru — почти ровесник Рунета, в свои 20 лет мы старше многих наших клиентов. Из книжного интернет-магазина компания выросла в e-commerce платформу, которая объединяет инфраструктуру fulfillment-центров и логистики, веб и мобильные приложения, выдерживает и набеги десятков миллионов пользователей во время распродаж, и атаки интернет-мошенников.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/818/c67/2fb/818c672fb13195aa1ed8d6c38cec889e.jpg)
В этом посте мы немного расскажем про себя: о том, как перестраиваем и развиваем платформу, одновременно обслуживая 1,2 млн пользователей ежедневно. А заодно покажем офис, где трудится IT-лаборатория OZON, ну и пару шикарных видов из его окон.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/d41/53a/8a6/d4153a8a642cab7bfae0673959440d0f.jpg)
За последний год технологическое подразделение компании выросло в восемь раз — сейчас у нас больше 600 человек. В июле OZON переехал в новую штаб-квартиру — она располагается в одной из башен Москва-сити. Мы заняли восемь этажей (и пока вы это читаете, захватываем девятый).
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/9dc/6e6/60f/9dc6e660f9cd96b8b36925ee52ddc7f3.jpg)
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/9cd/1a1/d4e/9cd1a1d4e5f2fac3a0f710e6cf7c1fb4.jpg)
Чем дольше существует компания и чем больше у нее клиентов, тем многообразнее зоопарк IT-систем и сложнее их поддерживать и развивать. За годы работы OZON выстроил одну из лучших систем логистики и управления fulfillment-фабриками, в то же время платформа e-commerce оставалась массивным MS SQL с хранимыми процедурами и логикой в базе.
Жить с закрытым стеком Microsoft Windows, IIS тяжко — эти технологии относительно дешевы на входе, но в какой-то момент становятся невыносимо дорогими в поддержке.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/3b9/504/d25/3b9504d25404f8efe19c79c343fe7875.jpg)
Помимо MS стека, в наследство команде IT досталось множество систем, написанных почти 20 лет назад на Delphi— их переписывать нужно просто потому, что они не отвечают требованиям современных реалий.
В итоге около года назад в OZON началась глобальная перестройка IT. Мы начали активно нанимать разработчиков, переходить на опенсорс и микросервисы.
Первоочередная задача — распил логики, которая находится в базах, чтобы сделать ее масштабируемой. Часть этой работы уже проделана — и в том числе благодаря этому OZON может расти на 80-90% в год.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/09d/758/f56/09d758f564bc0fdc770c31c42e7d0d1d.jpg)
Сейчас многие системы пишутся на GO — это разумный компромисс между производительностью, сложностью освоения и скоростью разработки. Язык достаточно низкоуровневый, чтобы писать производительные сервисы, и в то же время достаточно простой — ему можно быстро научить. В Москве (да и в России) нет такого количества GO-шников, которое нам нужно, поэтому мы нанимаем специалистов, готовых осваивать новый стек, и учим. Подход работает как win-win — специалисты приобретают знания, а мы можем наконец отказаться от проприетарных решений, заменив их собственными. Причем для своих задач команда, вероятнее всего, напишет решение более оптимальное, чем имеющиеся на рынке.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/6f5/0aa/65d/6f50aa65d09b7943b759f7b4a5ab7112.jpg)
Про новый офис мы уже упомянули выше, и сейчас постепенно обживаемся в нем: дизайнеры разрисовывают стены, разработчики разбирают устаревшие харды на магнитики и приносят на работу самокаты и коллекции банок из-под Pepsi.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/4b3/4b1/5f6/4b34b15f669d89efe1b2bcf1796efbf9.jpg)
У нас нет сложной иерархии и субординации — а у генерального директора нет кабинета. Ему можно написать на емейл — и получить ответ в тот же день, или в Slack — там он доступен практически постоянно.
Такой подход позволяет решать проблемы быстро и небольшими командами. Ключевые показатели проектов отображаются в реал-тайм на экранах с Grafana, которые стоят у каждой из команд.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/3fe/d59/d5f/3fed59d5fc1654971f8a82b72d583a6d.jpg)
На экране в кабинете CTO anatolix таких графиков десяток. Например, видно, что на складе сейчас несколько десятков тысяч еще не собранных посылок. Это нормально — в день мы развозим больше 100 000 заказов, и несколько десятков тысяч посылок — это бэклог меньше, чем на смену. Но если бэклог больше, чем на день — это уже проблема. Благодаря графикам сразу видно, «копится» ли какая-то проблема и в какой из систем что-то пошло не так.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/280/7df/fb8/2807dffb826c34fc6ccc7707f6353be3.jpg)
Тест на устойчивость OZON проходит несколько раз в год в период распродаж. Так, в этом ноябре в «Черную пятницу» число заказов увеличилось в 2,5 раза — на тот момент это был рекорд за все время существования сервиса, но декабрьские распродажи этот рекорд побили.
В системе fulfillment и логистики, где товары сортируются и собираются в посылки — свои сложные IT, которые пользователю не видны, и серьезные нагрузки. И оно тоже могло захлебнуться в моменты пиковых нагрузок.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/3cc/4a3/37f/3cc4a337feba40e789ec61cc5c5658ad.jpg)
Параллельно растет количество товаров, меняется алгоритм поиска (недавно мы переехали на Elasticsearch) и рекомендаций (теперь на основе Machine Learning), появляются новые фичи. За последние полгода мы почти полностью переписали сайт (с ASP.NET Web Forms на node.JS), обновили мобильные приложения и сейчас работаем над сокращением технического долга.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/ad5/b8d/fd3/ad5b8dfd358aaf1e9439e572eab3bd8f.jpg)
IT сейчас переживают взрывной рост — у нас есть люди и технологии, которых OZON ранее никогда не видел. Мы многое пробуем, и если что-то не полетело — отказываемся и берем другое решение. Так, мы строили кластер Kubernetes, и как в любом кубер кластере, там стоит роутинг трафика — мы решили использовать модный Linkerd, которым пользуется, например, Twitter. Но с ним были постоянные проблемы: он то падал, то выжирал все ЦПУ, то вел себя неадекватно. Мы потратили уйму времени на ресерч, пытались что-то запатчить — а потом выкинули и сделали проще на Ingress и nginx.
Мы активно развиваем data engineering — там список технологий огромный. Пробуем разные хранилища данных, алгоритмы и вообще все технологии, которые есть в machine learning.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/552/3d4/f38/5523d4f38858548f5f6187df8ca281dd.jpg)
Мы постоянно находимся между желанием сделать максимально правильно и темпами роста бизнеса. У команд нет полугода на обдумывание лучших решений, ведь чтобы оставаться на месте, нужно бежать очень-очень быстро. Мы работаем в режиме: фичи-фичи-фичи — обеспечение устойчивости.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/03e/598/e79/03e598e7974009e2f1506eebb797d27f.jpg)
В новом году OZON планирует увеличить продажи в некоторых категориях в 10 раз, и площадь fulfillment-фабрик — в 2,5 раза, запустить новые направления и развивать недавно созданные.
В 1998 году мы были интернет-магазином книг, потом добавляли-добавляли-добавляли категории и стали онлайн-гипермаркетом. Но сегодня мы и его переросли. OZON стал e-commerce платформой, в рамках которой развиваются не только товарные категории и поддерживающая их инфраструктура логистики, но и финансовые услуги и еще около 20 новых проектов.
В 2018 году, например, мы в бета-режиме запустили маркетплейс — несмотря на то, что мы пока его тестируем, на нем уже сотни селлеров.
Следующая задача в рамках этого конкретного проекта — создать экосистему, предоставив витрину, fulfilment и логистику, инструменты аналитики и мониторинга supply chain для селлеров. В идеале, на маркетплейсе партнерам будут доступны все инструменты, которые есть у команды коммерции в OZON, и даже больше.
В общем, нашему IT-департаменту предстоит много работы. Хотя отдыхать мы тоже любим. Кстати, приходите в гости — по пятницам у нас вечеринки.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/3e2/5da/769/3e25da7692217b8ae242aa6c8896834d.jpg)
![](https://habrastorage.org/getpro/habr/post_images/818/c67/2fb/818c672fb13195aa1ed8d6c38cec889e.jpg)
В этом посте мы немного расскажем про себя: о том, как перестраиваем и развиваем платформу, одновременно обслуживая 1,2 млн пользователей ежедневно. А заодно покажем офис, где трудится IT-лаборатория OZON, ну и пару шикарных видов из его окон.
![](https://habrastorage.org/getpro/habr/post_images/d41/53a/8a6/d4153a8a642cab7bfae0673959440d0f.jpg)
За последний год технологическое подразделение компании выросло в восемь раз — сейчас у нас больше 600 человек. В июле OZON переехал в новую штаб-квартиру — она располагается в одной из башен Москва-сити. Мы заняли восемь этажей (и пока вы это читаете, захватываем девятый).
![](https://habrastorage.org/getpro/habr/post_images/9dc/6e6/60f/9dc6e660f9cd96b8b36925ee52ddc7f3.jpg)
![](https://habrastorage.org/getpro/habr/post_images/9cd/1a1/d4e/9cd1a1d4e5f2fac3a0f710e6cf7c1fb4.jpg)
Замена стека
Чем дольше существует компания и чем больше у нее клиентов, тем многообразнее зоопарк IT-систем и сложнее их поддерживать и развивать. За годы работы OZON выстроил одну из лучших систем логистики и управления fulfillment-фабриками, в то же время платформа e-commerce оставалась массивным MS SQL с хранимыми процедурами и логикой в базе.
Жить с закрытым стеком Microsoft Windows, IIS тяжко — эти технологии относительно дешевы на входе, но в какой-то момент становятся невыносимо дорогими в поддержке.
![](https://habrastorage.org/getpro/habr/post_images/3b9/504/d25/3b9504d25404f8efe19c79c343fe7875.jpg)
Помимо MS стека, в наследство команде IT досталось множество систем, написанных почти 20 лет назад на Delphi— их переписывать нужно просто потому, что они не отвечают требованиям современных реалий.
В итоге около года назад в OZON началась глобальная перестройка IT. Мы начали активно нанимать разработчиков, переходить на опенсорс и микросервисы.
Первоочередная задача — распил логики, которая находится в базах, чтобы сделать ее масштабируемой. Часть этой работы уже проделана — и в том числе благодаря этому OZON может расти на 80-90% в год.
![](https://habrastorage.org/getpro/habr/post_images/09d/758/f56/09d758f564bc0fdc770c31c42e7d0d1d.jpg)
Сейчас многие системы пишутся на GO — это разумный компромисс между производительностью, сложностью освоения и скоростью разработки. Язык достаточно низкоуровневый, чтобы писать производительные сервисы, и в то же время достаточно простой — ему можно быстро научить. В Москве (да и в России) нет такого количества GO-шников, которое нам нужно, поэтому мы нанимаем специалистов, готовых осваивать новый стек, и учим. Подход работает как win-win — специалисты приобретают знания, а мы можем наконец отказаться от проприетарных решений, заменив их собственными. Причем для своих задач команда, вероятнее всего, напишет решение более оптимальное, чем имеющиеся на рынке.
Обживаемся
![](https://habrastorage.org/getpro/habr/post_images/6f5/0aa/65d/6f50aa65d09b7943b759f7b4a5ab7112.jpg)
Про новый офис мы уже упомянули выше, и сейчас постепенно обживаемся в нем: дизайнеры разрисовывают стены, разработчики разбирают устаревшие харды на магнитики и приносят на работу самокаты и коллекции банок из-под Pepsi.
![](https://habrastorage.org/getpro/habr/post_images/4b3/4b1/5f6/4b34b15f669d89efe1b2bcf1796efbf9.jpg)
У нас нет сложной иерархии и субординации — а у генерального директора нет кабинета. Ему можно написать на емейл — и получить ответ в тот же день, или в Slack — там он доступен практически постоянно.
Такой подход позволяет решать проблемы быстро и небольшими командами. Ключевые показатели проектов отображаются в реал-тайм на экранах с Grafana, которые стоят у каждой из команд.
![](https://habrastorage.org/getpro/habr/post_images/3fe/d59/d5f/3fed59d5fc1654971f8a82b72d583a6d.jpg)
На экране в кабинете CTO anatolix таких графиков десяток. Например, видно, что на складе сейчас несколько десятков тысяч еще не собранных посылок. Это нормально — в день мы развозим больше 100 000 заказов, и несколько десятков тысяч посылок — это бэклог меньше, чем на смену. Но если бэклог больше, чем на день — это уже проблема. Благодаря графикам сразу видно, «копится» ли какая-то проблема и в какой из систем что-то пошло не так.
![](https://habrastorage.org/getpro/habr/post_images/280/7df/fb8/2807dffb826c34fc6ccc7707f6353be3.jpg)
Тест на устойчивость OZON проходит несколько раз в год в период распродаж. Так, в этом ноябре в «Черную пятницу» число заказов увеличилось в 2,5 раза — на тот момент это был рекорд за все время существования сервиса, но декабрьские распродажи этот рекорд побили.
В системе fulfillment и логистики, где товары сортируются и собираются в посылки — свои сложные IT, которые пользователю не видны, и серьезные нагрузки. И оно тоже могло захлебнуться в моменты пиковых нагрузок.
![](https://habrastorage.org/getpro/habr/post_images/3cc/4a3/37f/3cc4a337feba40e789ec61cc5c5658ad.jpg)
Параллельно растет количество товаров, меняется алгоритм поиска (недавно мы переехали на Elasticsearch) и рекомендаций (теперь на основе Machine Learning), появляются новые фичи. За последние полгода мы почти полностью переписали сайт (с ASP.NET Web Forms на node.JS), обновили мобильные приложения и сейчас работаем над сокращением технического долга.
![](https://habrastorage.org/getpro/habr/post_images/ad5/b8d/fd3/ad5b8dfd358aaf1e9439e572eab3bd8f.jpg)
IT сейчас переживают взрывной рост — у нас есть люди и технологии, которых OZON ранее никогда не видел. Мы многое пробуем, и если что-то не полетело — отказываемся и берем другое решение. Так, мы строили кластер Kubernetes, и как в любом кубер кластере, там стоит роутинг трафика — мы решили использовать модный Linkerd, которым пользуется, например, Twitter. Но с ним были постоянные проблемы: он то падал, то выжирал все ЦПУ, то вел себя неадекватно. Мы потратили уйму времени на ресерч, пытались что-то запатчить — а потом выкинули и сделали проще на Ingress и nginx.
Мы активно развиваем data engineering — там список технологий огромный. Пробуем разные хранилища данных, алгоритмы и вообще все технологии, которые есть в machine learning.
![](https://habrastorage.org/getpro/habr/post_images/552/3d4/f38/5523d4f38858548f5f6187df8ca281dd.jpg)
Мы постоянно находимся между желанием сделать максимально правильно и темпами роста бизнеса. У команд нет полугода на обдумывание лучших решений, ведь чтобы оставаться на месте, нужно бежать очень-очень быстро. Мы работаем в режиме: фичи-фичи-фичи — обеспечение устойчивости.
![](https://habrastorage.org/getpro/habr/post_images/03e/598/e79/03e598e7974009e2f1506eebb797d27f.jpg)
В новом году OZON планирует увеличить продажи в некоторых категориях в 10 раз, и площадь fulfillment-фабрик — в 2,5 раза, запустить новые направления и развивать недавно созданные.
В 1998 году мы были интернет-магазином книг, потом добавляли-добавляли-добавляли категории и стали онлайн-гипермаркетом. Но сегодня мы и его переросли. OZON стал e-commerce платформой, в рамках которой развиваются не только товарные категории и поддерживающая их инфраструктура логистики, но и финансовые услуги и еще около 20 новых проектов.
В 2018 году, например, мы в бета-режиме запустили маркетплейс — несмотря на то, что мы пока его тестируем, на нем уже сотни селлеров.
Следующая задача в рамках этого конкретного проекта — создать экосистему, предоставив витрину, fulfilment и логистику, инструменты аналитики и мониторинга supply chain для селлеров. В идеале, на маркетплейсе партнерам будут доступны все инструменты, которые есть у команды коммерции в OZON, и даже больше.
В общем, нашему IT-департаменту предстоит много работы. Хотя отдыхать мы тоже любим. Кстати, приходите в гости — по пятницам у нас вечеринки.
![](https://habrastorage.org/getpro/habr/post_images/3e2/5da/769/3e25da7692217b8ae242aa6c8896834d.jpg)