Nixys > Журнал > Внедрение Kubernetes для интернет-магазина детских товаров Дочки & Сыночки

Внедрение Kubernetes для интернет-магазина детских товаров Дочки & Сыночки

  • 19 июня 2020
  • #

О компании Дочки & Сыночки

Дочки & Сыночки — бренд, который представляют более 200 магазинов на территории России. Это супермаркеты с широким ассортиментом наименований для детей различного возраста (от грудничков до подростков). Товары располагаются на торговой площади не менее 1200 квадратных метров и включают автокресла, коляски, детскую одежду, стулья для кормления — более пятидесяти тысяч товаров от различных поставщиков (Польша, Франция, Италия, Китай и др.).

О компании Nixys

Nixys – эксперты в DevOps и Kubernetes. Мы предоставляем DevOps как услугу и помогаем компаниям использовать лучший опыт и практики индустрии для внедрения современных, отказоустойчивых инфраструктур, Kubernetes-кластеров, процессов CI/CD, мониторинга, логирования и решения других инфраструктурных задач.

Обеспечиваем uptime production-систем 24/7. Контролируем развитие инфраструктуры, поддерживаем порядок и не даём превратиться в зоопарк. Помогаем разработчикам снять с себя всю рутину по инфраструктуре и сосредоточиться на любимом деле — разработке классных, полезных продуктов.

Задача

За годы развития интернет-магазин Дочки-Сыночки превратился в полноценный онлайн-гипермаркет с большим количеством функционала, личным кабинетом, рекомендательной системой, интеграциями с бек-офисом и внешними системами. Каталог магазина стал насчитывать более 50 000 позиций.

На момент обращения к нашей команде инфраструктура проекта насчитывала 98 серверов. Некоторые её участки были тёмными пятнами для самого заказчика. 

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

Перед нашей командой были поставлены задачи:

  • провести аудит текущей инфраструктуры
  • проработать план по её оптимизации с переходом на отказоустойчивую инфраструктуру и современные, эффективные, удобные процессы CI/CD
  • помочь команде разработки с контейнеризацией приложений
  • настроить новую инфраструктуру и осуществить бесшовный переезд проекта
  • настроить мониторинг и логирование
  • обеспечить дальнейшую поддержку 24/7 и развитие инфраструктуры, помощь команде разработки с решением возникающих задач

Результат

Работы по проекту мы начали с первичного on-boarding-а:

  • обсудили с заказчиком текущее состояние инфраструктуры, сложившиеся в компании процессы разработки и тестирования, текущие боли и проблемы, требования и ожидания от новой инфраструктуры, идею перехода на Kubernetes и автоматизированные процессы CI/CD
  • провели аудит текущей инфраструктуры (98 серверов), отрисовали актуальную схему взаимосвязей и подключили сервера к мониторингу, чтобы снять данные по потреблению ресурсов.

На основе этих данных у нас сформировалось точное понимание целей и задач проекта и как лучше подойти к их решению.

С осознанием этого мы проработали и предложили заказчику план по внедрению новой инфраструктуры на базе Kubernetes с интегрированными процессами CI/CD, которые максимально учитывали все пожелания команд разработки и тестирования. Поскольку до этого нами была проведена основательная аналитическая работа, и план был хорошо проработан, его согласование заняло всего несколько дней, после чего мы приступили к работам.

Для реализации проекта с нашей стороны была выделена команда из четырёх DevOps-инженеров, один из которых выполнял роль тех-лида и координировал работу остальных.

Работы по настройке Kubernetes, процессов CI/CD, контейнеризации и переносу основного сайта dochkisinochki.ru заняли 2.5 месяца и шли в очень интенсивном режиме. Основные задачи велись в таск-трекере, также мы создали общий Telegram-чат с командой заказчика, в котором проходило оперативное решение текущих вопросов и отладка в реальном времени. На этапе внедрения к этому добавились ежедневные стендапы для оперативного среза по оставшимся задачам и синхронизации текущих приоритетов.

Для переключения интернет-магазина dochkisinochki.ru на новую инфраструктуру нами был составлен детальный пошаговый план. Процесс проходил в два этапа:

  • сначала провели тестовый перенос, чтобы проверить работу основного функционала, выявить, отладить и устранить все недочёты, проверить работу каталога, корзины, оформление заказов, крон-задач; подключили новую инфраструктуру к мониторингу;
  • финальный перенос и бесшовное переключение работы сайта на новую инфраструктуру без простоя

Из-за особенностей проекта часть функционала (например, некоторые критичные крон-задачи) нельзя было проверить на этапе тестового переноса. Поэтому после того как работа сайта была переключена на новую инфраструктуру, мы вместе с разработчиками выполнили перенос таких элементов и отладку их работы.

Следующим шагом мы настроили логирование и бесшовные релизы (zero-downtime deploy). На этом основные работы по внедрению были завершены, проект перешёл в стадию поддержки.

На текущий момент мы продолжаем обеспечивать круглосуточную стабильную работу интернет-магазина dochkisinochki.ru, дорабатывать инфраструктуру и помогать разработчикам решать текущие задачи.