Миграция инфраструктуры приложения крупного ресторанного холдинга в облако
Кто наш клиент
Наш заказчик — крупный ресторанный холдинг с более чем 40 заведениями по России и популярным сервисом доставки. Веб-приложение клиента имеет сложную архитектуру и интегрировано с партнерскими системами. В связи с активным расширением бизнеса возникла необходимость обеспечить работу приложения в условиях высокой нагрузки — в 10 раз больше текущей.
Весной 2023 года для данного клиента мы провели технический аудит инфраструктуры и процессов CI/CD на предмет отказоустойчивости, безопасности и управляемости. По итогам совместных обсуждений с заказчиком решили упорядочить и перевести инфраструктуру на облачные сервисы, которой будет проще управлять. Осенью 2023 года клиент пришел за реализацией.
Какая задача стояла и как ее решали
Задача – создать стабильную, безопасную и простую в обслуживании инфраструктуру.
Для описания инфраструктуры мы использовали инструменты Ansible и Terraform, приложение развернули в кластере Managed Kubernetes. Код хранился в Gitlab, а деплоился через Gitlab CI. В качестве СУБД выбрали PostgreSQL 14, MySQL 8 и MongoDB 5. Инфраструктуру приложения планировали перенести в Яндекс.Облако. Для этого также создали Managed Kubernetes кластеры и Managed кластеры баз данных. Такие решения помогут клиенту упростить дальнейшее обслуживание новой инфраструктуры.
Использование методики Infrastructure as Code позволяет автоматизировать операции по созданию инфраструктуры, легче отслеживать и быстрее вносить изменения, а также сокращает время на восстановление после нештатной ситуации или аварии.
После согласования переноса инфраструктуры в облако сначала мы реализовали тестовое окружение в нашем локальном репозитории, перенесли данные, установили сервисы в кластер Kubernetes (K8s), настроили мониторинг и сбор логов из кластера.
Далее повторили все работы с продуктивным окружением, установив его в Яндекс.Облако. Мониторинг и сбор логов настроены в каждом окружении. После завершения подготовили описание инфраструктуры в виде схемы общей структуры системы и схемы развертывания. При передаче результата заказчику провели многочисленные консультации и активно участвовали в отладке обновленной системы.
Итоги
В ходе реализации проекта мы успешно создали новую инфраструктуру проекта и перенесли существующее приложение клиента в Яндекс.Облако.
Результаты:
- стало проще управлять приложением
- повышена отказоустойчивость инфраструктуры
- у заказчика появилась возможность обратиться в выделенную поддержку для решения возникающих проблем
Технологии
Ansible, Terraform, PostgreSQL 14, MySQL 8, MongoDB 5, kubernetes, Gitlab, Gitlab CI, Yandex.Cloud