Внедрение Kubernetes для интернет-магазина детских товаров Дочки & Сыночки
О компании Дочки & Сыночки
Дочки & Сыночки — бренд, который представляют более 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, дорабатывать инфраструктуру и помогать разработчикам решать текущие задачи.