Оказание услуг аудита инфраструктуры комплексного решения для российского ресторанного холдинга
Клиент
Наш заказчик — крупный ресторанный холдинг с более чем 40 заведениями по России и популярным сервисом доставки. Веб-приложение имеет сложную архитектуру и интегрировано с партнерскими системами. Клиент активно расширяет бизнес, в связи с чем столкнулся с необходимостью обеспечить работу приложения в условиях высокой нагрузки — в 10 раз больше текущей. Мы подключились, чтобы проверить используемую инфраструктуру и дать рекомендации по внедрению лучших современных IT-практик.
Задача
Провести технический аудит инфраструктуры и процессов CI/CD на предмет отказоустойчивости, безопасности и управляемости.
Решение
За две недели мы выполнили ряд задач по оценке состава узлов и утилизации ресурсов Kubernetes cluster. Также детально проанализировали отдельные приложения, развернутые в кластере.
В тесном сотрудничестве с командой заказчика мы выявили ряд используемых решений, которые не соответствуют общепринятым практикам использования инфраструктуры (анти-паттерны). После этого мы вместе с клиентом распределили найденные дефекты по степени критичности и начали разрабатывать план по их устранению.
Мы предложили два решения. Первое — попробовать исправить недостатки на существующей инфраструктуре. Второе — осуществить миграцию в более правильно выстроенную инфраструктуру, что и выбрал клиент. Внимательно изучив внутренние процессы заказчика, мы предложили перейти с self-managed на cloud-managed инфраструктуру.
При создании новой архитектуры мы стремились найти не кратковременное решение текущей задачи, а метод, который будет работать на перспективу. Мы предложили использовать подход Infrastructure-as-Code, «инфраструктура как код». Это позволит заказчику лучше управлять окружениями, а при необходимости также сменить облачного провайдера с меньшими затратами.
Был предложен ряд изменений:
- вывод некоторых баз данных за пределы кластера Kubernetes в самостоятельные, управляемые облачным провайдером базы данных;
- добавление новых элементов в инфраструктуру: bastion host и VPN-сервер для повышения безопасности, отдельный узел для задач резервного копирования;
- создание системы мониторинга и сбор лог-файлов в кластере клиента вместо существующего развертывания на площадке подрядчика, что позволит повысить наблюдаемость системы.
Результат
Аудит позволил выявить тонкие места в настройках инфраструктуры и разработать план по улучшению системы. Благодаря слаженной работе с командой клиента мы помогли заказчику достигнуть его бизнес-целей.
Технологии
PHP, Angular, Beanstalk, Kubernetes, RabbitMQ, MySQL 8, PostgreSQL 13 и 14.5, MongoDB 5, Redis, Memcached, NominatimDB, Nginx, KkmServer, GitLab, Gitlab CI, Docker