ITSumma перевезла в новый дата-центр и доработала инфраструктуру Тануки

«Тануки» — сеть ресторанов японской кухни с круглосуточной доставкой роллов и трафиком на сайте в 500 тыс. пользователей в месяц. Всего в сети более восьмидесяти заведений, которые работают в Москве, Воронеже, Екатеринбурге, Краснодаре, Нижнем Новгороде, Перми, Самаре и Уфе.

Во время сезонного наплыва покупателей инфраструктура клиента не справлялась с большой нагрузкой. Проблемы наблюдались на десктопе и в мобильных приложениях для IOS и Android. Кроме этого компания создавала новый сайт и собиралась мигрировать в другой дата-центр.


Какие были задачи

  1. Безболезненный переезд в новый дата-центр
  2. Организация комфортной среды разработки для нового API и сайта
  3. Стабилизация работы приложений
  4. Доработка инфраструктуры: внедрение системы кэширования, логирования и мониторинга

Проблемы проекта

  • Недостаточно надежный механизм балансировки в конфигурации БД. Мастер-мастер репликации приводили к частым сбоям;
  • Слейвы на каждом бэкенде требовали большой объем дискового пространства. Любые манипуляции или добавление новых бэкенд-серверов требовали больших затрат;
  • Не было общей системы деплоя приложений — была самописная система деплоя через веб;
  • Не было системы сбора логов, вследствие чего достаточно сложно расследовать инциденты. В первую очередь, в работе с системой заказов, поскольку нет возможности определить, как был принят тот или иной заказ;
  • Отсутствовал мониторинг бизнес-показателей — не было возможности своевременно фиксировать снижение или полное отсутствие заказов.

Проведенные работы

  1. Стабилизация работы и настройка кластера БД
  2. Обновление версий PHP
  3. Внедрение системы кеширования
  4. Формирование метрик и системы мониторинга
  5. Разработка и внедрение пайплайнов и конвейера CI/CD
  6. Перенос инфраструктуры проекта в новый дата-центр
  7. Разработка решения для управления настройками приложений
  8. Доработка инфраструктуры для улучшения связности и стабильности

Предложенные решения

  1. Отказаться от плавающего IP в пользу прокси-сервера, где между мастерами будет контролируемо переключаться апстрим.
  2. Выделить два отдельных сервера под слейвы.
  3. Настроить мониторинг заказов на уровне запросов в БД.
  4. Первоначально внедрить пайплайны на dev-контурах для ускорения разработки, а потом скопировать на stage.
  5. Сформировать и настроить все необходимое для стабильной работы сайта: логи, бэкапы, кэширование, мониторинг, балансировку нагрузки, CDN, брокер очередей.
  6. Разработать решение, которое позволит управлять настройками приложения через веб-интерфейс.

Как проходила миграция

Первый этап

На первом этапе были созданы реверс-прокси серверы в новом ДЦ.

Второй этап

Запустили все инфраструктурные сервисы — логирование и CI/CD.

Третий этап

Мигрировали БД, Redis и брокер очередей — RabbitMQ.

Четвёртый этап

На подготовительном этапе репликация БД между дата-центрами не поднималась, поэтому мы просто перенесли бэкапы.

Пятый этап

Переключение сервисов на новый ДЦ. Предварительно были организованы необходимые реплики из старого ДЦ в новый. И в согласованное окно работ мы переключили трафик на новую инфраструктуру.

Стек

  • React
  • PHP
  • Nginx
  • MySQL
  • Redis
  • Bitbucket
  • Jenkins
  • ELK
  • RabbitMQ
  • Haproxy
  • Consul
  • Hashicorp vault
  • Qrator

Результат

Так инфраструктура выглядела после доработок

  • Весь трафик поступает на балансеры. Трафик до API идет с приложения Тануки (на Android/iOS) не напрямую, а через Qrator.
  • На static сервере находится основной сайт проекта tanuki.ru, сервер с лендингами.
  • Кластер бэкенда состоял из серверов: фронтенд, статика, серверов под приложения.

Что изменилось для заказчика

Надежность системы

Переезд и оптимизация инфраструктуры исправили проблему с оформлением заказов, сайт и приложения стали работать стабильнее.

Процесс разработки

У команды появилась полностью автоматизированная среда разработки CD/CD.

Отказоустойчивость

Инфраструктура сейчас выдерживает большой трафик. Например, в праздничные дни RPS достигает пика в 550 единиц.

Сколько заняли работы

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

57
дней у нас ушло на стабилизацию инфраструктуры
160
дней длился переезд в новый дата-центр
Остались вопросы или хотите что-то уточнить?

Ответим на заявку в ближайшие 24 часа. А еще мы можем проконсультировать вас по телефону +7 800 555-91-99, электронной почте info@itsumma.ru или в Telegram-чате.

Свяжитесь со мной здесь
Свяжитесь со мной здесь
❗️Имя не может быть пустым
❗️Телефон не может быть пустым
❗️Email не может быть пустым