О чём эта история

Компания Napoleon IT специализируется на разработке решений в области data science, на машинном обучении, компьютерном зрении, высоконагруженных системах и мобильной разработке. Чтобы оптимизировать временные затраты на развёртывание инфраструктуры и её стоимость владения, компания перенесла в Yandex Cloud несколько продуктов. Среди них интеллектуальная система динамического ценообразования PowerPrice и мобильные приложения для ритейлеров и аптечных сетей с аудиторией более 20 миллионов пользователей. Также компания перенесла в Yandex Object Storage 40 ТБ данных.

В результате миграции в облако удалось сократить развёртывание новых вычислительных мощностей с трёх дней до 15 минут.

Кроме того, использование Yandex Object Storage позволило Napoleon IT динамически регулировать объём хранимых данных, который на пике достигает 100 ТБ. Сотрудники Napoleon IT, поддерживающие инфраструктуру, смогли освободить до 20% своего времени и развили новые компетенции благодаря работе с облачными технологиями.

Выбор инфраструктуры для высоконагруженных приложений

Компания Napoleon IT основана в 2011 году и работает в трёх направлениях: образование в сфере IT, разработка программного обеспечения на заказ и развитие собственных B2B-продуктов. Napoleon IT специализируется на разработке высоконагруженных веб- и мобильных приложений, на машинном обучении, компьютерном зрении.

Один из флагманских продуктов компании — интеллектуальная динамическая система ценообразования PowerPrice. Клиенты сервиса — крупнейшие ритейл-сети. В одной из них приложение автоматически проводит переоценку более чем в 16 600 торговых точках и отслеживает цену в 100 тысячах конкурирующих магазинов. Сервис использует систему компьютерного зрения Computer Vision, разработанную Napoleon IT. Она ежедневно обрабатывает более 8 миллионов изображений с точностью до 98%. Алгоритмы машинного обучения анализируют полученные данные и предлагают оптимальное значение стоимости товара. В день PowerPrice выдаёт около 800 тысяч рекомендаций.

Изначально Napoleon IT использовала собственные физические серверы. Ежедневно сервисом PowerPrice пользуется более 22 тысяч человек, и он должен работать бесперебойно. Чтобы справляться с пиковыми нагрузками, требовалось держать и обслуживать большой объём инфраструктуры. Кроме того, физические серверы не всегда справлялись с внезапным ростом нагрузки, из-за чего работа системы часто останавливалась. Требовалось решение, которое обеспечит высокую надёжность, бесперебойный доступ клиентов к сервису компании 24 × 7 и быстрое масштабирование мощностей, а также позволит хранить большой объём данных.

Для решения проблем доступности и масштабируемости сервисов Napoleon IT рассматривала только облачные платформы. Компания на практике убедилась, что физическая инфраструктура медленно масштабируется, требует больших временных затрат на обслуживание, а серверы не всегда утилизируются оптимально.

Компания тестировала трёх провайдеров облачной инфраструктуры. Максимально стабильные результаты и оптимальные условия использования оказались у платформы Yandex Cloud, в пользу которой и было принято решение.

Управляемые сервисы — ключ к отказоустойчивости и масштабированию

Для переноса сервисов в облако компания сформировала команду специалистов с широким набором компетенций в Data Science, Data Analytics, QA и других областях. Миграция была разбита на несколько этапов: подготовка, перенос данных, тестовый запуск, отладка и промышленная эксплуатация. Весь процесс занял три месяца.

Сначала команда провела реинжиниринг собственных сервисов: контейнеризировали бэкенд приложений и реализовали деплой в Kubernetes®. Для размещения приложений компания использует Yandex Managed Service for Kubernetes®, что позволяет сократить затраты времени на администрирование инфраструктуры и благодаря гибкому масштабированию избежать простоя вычислительных ресурсов.

Затем команда наладила маршрутизацию и загрузила данные со сторонних серверов в облако. Для хранения больших объёмов файлов, например изображений, команда создала холодное и горячее хранилища в Object Storage. Для размещения данных и работы с ними Napoleon IT выбрала управляемые СУБД — Yandex Managed Service for MongoDB и Yandex Managed Service for PostgreSQL. Эти отказоустойчивые решения легко масштабируются и позволяют оптимально использовать вычислительные мощности.

После предварительной подготовки команда Napoleon IT произвела тестовый запуск с нагрузочным тестированием инфраструктуры. Для этого сгенерировали синтетические данные и имитировали повышенный трафик с большим количеством запросов к БД. Компания отслеживала сетевые задержки, время обработки фото от момента загрузки до отдачи результата распознавания, RPS, скорость масштабирования и утилизацию воркеров Computer Vision.

Сложности, которые возникали при тестировании, решали совместно с поддержкой Yandex Cloud, одновременно наращивая компетенции команды.

После настройки и отладки решение перевели в промышленную эксплуатацию.

Результаты

Переход в Yandex Cloud позволил повысить uptime сервисов Napoleon IT до 99,9% и сократить время развёртывания новых вычислительных мощностей с трёх дней до 15 минут.

Кроме того, удалось освободить до 20% времени сотрудников, поддерживающих инфраструктуру, и сформировать отдел DevOps-специалистов с широким кругом компетенций. Теперь этот отдел может консультировать заказчиков компании.

В дальнейшем компания продолжит использовать облачные технологии и планирует переместить данные текущих клиентов со старых серверов в Yandex Cloud. Также готовится перенос системы аналитики в Yandex DataLens и ClickHouse. Кроме того, сотрудники Napoleon IT изучают возможности применения Yandex Database.

Мнение

Сергей Белоклоков,
исполнительный директор и партнёр Napoleon IT
Сергей Белоклоков,
исполнительный директор и партнёр Napoleon IT

В отличие от других провайдеров облачной инфраструктуры, коллеги из Yandex Cloud оказались очень гибкими как в предоставлении мощностей, так и в коммуникации и дальнейшем взаимодействии по другим совместным проектам. Стабильная работа мощностей положительно сказывается не только на рабочем процессе, но и на эмоциональном состоянии сотрудников. Ранее мы сталкивались с перебоями, что заставляло переживать и быть готовыми к непредвиденным ситуациям. Теперь все высоконагруженные проекты работают стабильно, без перебоев, и мы можем сконцентрироваться на масштабировании системы, не отвлекаясь на неисправности.