Кейс · Миграция в облако

Рефакторинг сервисов при миграции в Yandex Cloud

Клиент
Renault Россия
Решение
Миграция в облако
Сервисы
Yandex Cloud · Kubernetes · Terraform

Renault в России

Renault — одна из самых популярных и продаваемых автомобильных марок в России. В дилерской сети более 100 автосалонов от Калининграда до Владивостока.

Стандартизировать разработку и ускорить бизнес-процессы

Renault Россия работает в формате небольших и средних проектов, поэтому исторически внутри компании есть много команд разработки и стеков технологий. В течение многих лет приложения и сервисы разворачивались в нескольких разных хостингах.

Разные подходы к разработке, администрированию и обслуживанию инфраструктуры приводили к увеличению сроков решения проблем, особенно при взаимодействии сервисов из разных окружений.

Перед IT-командой встала задача стандартизировать подходы к разработке и администрированию, а также научиться повторно использовать уже разработанные решения для ускорения бизнес-процессов.

Перенос приложений «как есть»

IT-команда Renault Россия решила убедиться, что Yandex Cloud подходит для развертывания IT-приложений компании. Первым шагом стал перенос текущих приложений и сервисов «как есть» с использованием виртуальных машин в сервисе Yandex Compute Cloud. За два месяца специалисты получили среду для разработки, тестирования и продуктивную среду.

Консолидация всех ресурсов в одном месте стала главным достоинством. Однако скорость и сложность конфигурирования остались прежними — любые изменения требовали ручного администрирования через GUI Yandex Cloud.

Схема первого этапа: перенос «как есть»
Схема первого этапа: перенос «как есть»

Одной консолидации недостаточно

Для движения вперёд потребовалось вернуться к изучению стека технологий и подготовке новых требований.

  • Linux- и Windows-приложения, обширный список языков разработки
  • Разные фреймворки, библиотеки и несколько типов баз данных
  • Запуск приложений поверх VM: Ansible, Docker Compose, Docker Swarm, Nomad

При анализе были выявлены ключевые проблемы:

01

Отсутствие стандартов управления жизненным циклом приложений.

02

Большие вложения в администрирование баз данных.

03

Разные способы журналирования и сложность отслеживания изменений.

Формирование требований к архитектуре

Совместными решениями были обобщены требования к архитектуре и спрогнозированы сроки миграции — от 2 до 4 месяцев. Новая инфраструктура строилась на следующих принципах:

  • Infrastructure as CodeДля максимального упрощения администрирования и хранения истории
  • Immutable-подходДля создания стабильных приложений, менее зависимых от окружения
  • Kubernetes®Единая стандартизированная среда для управления сервисами в Docker
  • Управляемые базы данныхДля снижения времени на обслуживание
  • GitLab CIСтандартизация непрерывной поставки, контроля качества и деплоя
  • Централизованное логированиеWeb Application Firewall, VPN для изоляции окружений

Решение: гибкая архитектура

Было решено использовать сервисы Yandex Cloud для разделения окружений dev, stage и prod между разными командами. Дизайн инфраструктуры выстроен с помощью Yandex Resource Manager, Yandex Object Storage, folder и network — это позволило достичь максимальной инкапсуляции и гибкости.

Все манипуляции по созданию и настройке folder'ов производятся через Terraform в Yandex Cloud. Использование Terragrunt позволяет одной командой применять изменения в масштабе целого окружения. Команды разработки сами разворачивают проверенные ресурсы в dev-окружении по требованию — без участия инфраструктурной команды.

Схема итоговой архитектуры
Схема итоговой архитектуры

Непрерывная поставка — GitLab CI Pipeline

Одним из ключевых результатов стало внедрение стандартизированных pipeline'ов для поставки продуктов. Каждый коммит запускает последовательность проверок, которые варьируются от команды к команде.

  • Code ReviewGitLab
  • Code CoverageSonarQube с дашбордами для отслеживания метрик
  • Build & TestGitLab runner tags
  • Реестр образовYandex Container Registry
  • DeployFolder + Kubernetes namespaces

Ускорение разработки и оптимизация инфраструктуры

Создание ресурсов
несколько часов — дней
несколько минут
Управление инфраструктурой
ручное через GUI
Terraform + Git история

Сервисы Yandex Cloud позволили совместить несовместимое: стандартизацию и гибкость, повторное использование инфраструктуры и независимость окружений и команд.

Стандартизированный подход облегчил совместную работу, а соответствие облачной платформы индустриальным стандартам и законодательным требованиям позволило всегда быть готовыми к аудиту регуляторов.

Renault Россия выстроила несколько уровней инфраструктуры с использованием как управляемых сервисов Yandex Cloud, так и современных cloud-native продуктов и практик — это позволило значительно оптимизировать вложения в её развитие и поддержку.

Есть похожая задача? Обсудим решение.

Обсудить проект Все кейсы