В EFSOL обратились разработчики приложения в сфере розничных продаж с просьбой автоматизировать процесс доставки кода на среды dev, test и prod. Стек разработки компании - php, go, PostgresSQL, Kafka, Redis.
Задачи клиента
При изучении текущей ИТ-инфраструктуры компании клиента, были выявлены следующие проблемы:
- доставка кода в среду dev и prod происходит с Gitlab CI и ряда скриптов
- количество сред разработки ограничено, используется docker compose без оркестрации
- prod-среды нет, поскольку идет процесс разбиения монолита на микросервисы
- отсутствие мониторинга ИТ-структуры
- отсутствие единой системы сбора логов
- отсутствие полного цикла CI\CD
- ограниченность локальных ресурсов, где размещалась dev-среда
Как мы решили задачи клиента
Для создание новой ИТ-структуры для клиента, мы выбрали концепцию Infrastructure as a Code, которая позволила декларативно описать систему. За основу был выбран terraform. В качестве облачного провайдера - SberCloud.
Ключевыми технологиями в системе были выбраны:
- Cloud Container Engine (CCE, Managed Kubernetes)
- Gitlab CI - для автоматизации CI\CD
- RDS PostgreSQL
- SberCloud loadbalacing
- Distributed Message Service for Kafka
- Distributed Cache Service (redis)
На рисунке ниже представлена схема унифицированного окружения, которое создается по нажатию кнопки в GitlabCi с помощью terraform. Мониторинг осуществляется встроенными средствами SberCloud, а также Zabbix, за хранение логов отвечает ElasticSerach в связке с Kafka.
Результат проекта
Внедрение указанной схемы для клиента позволило:
- автоматизировать сборку кода и в дальнейшем его тестирование
- автоматизировать доставку кода в различные среды, в том числе продуктовые
- автоматизировать развертывание среды разработки
- контролировать продуктовую среду и метрики функционирования приложения
- получить доступ в удобном интерфейсе ко всем событиями и ошибкам системы
- автоматически масштабировать систему вверх и вниз, согласно метрикам приложения
В результате проекта, клиент получил готовую систему для работы, с возможностью самостоятельного управления средами. В процессе дальнейшего DevOps-обслуживания будут обновляться используемые технологии и совершенствоваться процесс доставки деплоя кода.
#devops #автоматизация #автоматизация бизнеса #автоматизация процессов #ит #услуги ит #услуги для бизнеса #сервис для бизнеса #Sber #автоматизация доставки