В начале года специалистами DevOps EFSOL была спроектирована инфраструктура для социального проекта федерального масштаба на базе Yandex Cloud, но запуск в эксплуатацию был отложен после проведения необходимых тестовых испытаний и проект был заморожен. Команда разработчиков проекта обратилась к нам снова, на этот раз требовалось подготовить проект к выходу в эксплуатацию.
Задачи клиента
Поскольку процесс разработки был автоматизирован ранее, команде EFSOL требовалось развернуть вновь все элементы инфраструктуры, которые были опробованы в момент тестовых испытаний весной. Однако, появились новые вводные.
Например, кластер Kubernetes требовалось теперь разделить на три отдельных кластера по одному на каждую зону доступности (ru-central1-a; ru-central1-b; ru-central1-c).
Также было необходимо повторить тестовые испытания согласно заготовленным сценариям, чтобы убедиться в том, что инфраструктура обеспечивает работоспособность проекта при прогнозируемом RPS.
После выполнения поставленных задач, нужно было произвести сопровождение запуска проекта в продакшн.
Как мы решили задачи клиента
- С учетом новых данных были пересобраны контейнеры и написаны новые YAML-файлы для трех кластеров Kubernetes.
- Вновь развернуты/масштабированы компоненты инфраструктуры: Managed Service for Kubernetes, Managed Service for MySQL, Managed Service for Redis, Object Storage, Application Load Balancer, Cloud CDN, Managed Service for GitLab, Container Registry, DDoS Protection, Web Application Firewall и обычные технические сервисы облака вроде VPC, Cloud DNS, Cloud Logging, Certificate Manager, Cloud Backup, KMS. По-прежнему используются три зоны доступности для каждого сервиса, кроме k8s, который представляет собой теперь три зональных кластера, вместо одного регионального.
- Для мониторинга используется Yandex Monitoring, а также внешний сервер Zabbix для дополнительного контроля виртуальных машин и сертификатов.
- Кроме базовых средств резервного копирования также настроено резервное копирование скриптами на дополнительные виртуальные машины, которые могут быть задействованы в качестве резерва на случай отказа Managed-сервисов.
- Внесены необходимые дополнения в CI/CD.
- Финальным этапом была отработка сценариев DRP.
На рисунке ниже представлена схема решения:
Результат проекта
По итогу выполненных работ, DevOps-специалисты EFSOL провели финальное развертывание инфраструктуры проекта с последующим выпуском в эксплуатацию, а клиент остался полностью доволен предоставленным решением:Реализована отказоустойчивая инфраструктура с использованием трех зональных кластеров k8s, региональных Redis и MySQL, выдерживающая целевое значение RPS с запасом.
Доработан CI/CD, что позволило повысить скорость выпуска обновлений, улучшить качество выпускаемого кода, быстрее отлавливать ошибки и оперативнее вносить исправления.
Проект успешно вышел в продакшн и принял уже десятки тысяч пользователей.
Непрерывный контроль за работой инфраструктуры осуществляется командой мониторинга EFSOL, включая выполнение регламентных операций.