Миграция в облако и переход на микросервисную архитектуру без остановки клиентских сервисов: кейс компании eCREDIT

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

В этой статье мы поделимся опытом компании eCREDIT по построению отказоустойчивой микросервисной инфраструктуры с автоматизированным CI/CD на базе облачной инфраструктуры 1cloud.

ecredit

eCREDIT — поставщик единой платформы кредитования и страхования для дилерских сетей по продаже автомобилей. Платформа упрощает получение кредитных продуктов и заявок по кредитованию автомобилей в считанные минуты более чем с 20 банками.

Перед технической командой eCREDIT, возглавляемой DevOps-инженером Виталием Федоровым, была поставлена задача о миграции инфраструктуры в облако и переходе на микросервисную инфраструктуру без остановки клиентских сервисов.

Виталий — DevOps-инженер с более чем 7-летним опытом проектирования и построения cloud-native архитектур на управляемых сервисах для хранения и масштабирования, внешний инженер компании eCREDIT.

Был составлен план миграции, состоящий из трех основных шагов:

  1. Анализ рынка облачных услуг и выбор надежного провайдера облачных услуг.
  2. Миграция в облако с переходом на микросервисы и новый формат продакшена, и CI/CD без остановки клиентских сервисов.
  3. Тестирование новой платформы, оперативный багфиксинг, развертывание новых сервисов.

Выбор надежного облачного провайдера — первый и самый важный шаг в реализации плана по миграции проекта в облако, так как от надежности инфраструктуры провайдера зависит стабильность будущего проекта.

Критерии выбора облачного провайдера

Критерии выбора облачного провайдера

eCREDIT — это высоконагруженный проект, использующий стек разных технологий, требовательных к ресурсам. Поэтому облачный провайдер должен был отвечать следующим критериям:

  • SLA не ниже 99.9%
  • качественная и быстрая поддержка со стороны хостинга
  • оптимальная ценовая политика для минимизации расходов
  • сокращение затрат на обслуживание инфраструктуры
  • возможность подключить несколько проектов в личном кабинете с возможностью раздельного контроля расходов
  • прозрачность финансовых взаимоотношений между хостингом и компанией
  • возможность подключать дополнительные сервисы, как модули к имеющейся инфраструктуре.
1cloud смог удовлетворить все критерии, а также обеспечить индивидуальный подход и полноценное внедрение на базе собственного оборудования, за счет понятной панели управления и гибких правил тарификации.
Виталий Федоров, DevOps-инженер.

Выбор облачного провайдера для миграции — это двухсторонний процесс, тут не только клиент оценивает возможности провайдера, но и провайдер проводит экспертизу проекта, который будет размещаться на его мощностях. В случае с миграцией eCREDIT нужно было учесть специфику сразу двух проектов: существующей версии платформы клиента и будущей версии.

Как проект выглядел до перехода в облако

До миграции в облако все приложение было монолитом на стеке технологий PHP 5.6, Nginx, MySQL-5.5. CI/CD был ручным с bash-скриптингом. Это приводило к ошибкам в продакшене, так как было множество неавтоматизированных процессов деплоя, завязанных на человеческом факторе.

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

Миграция в облако

Миграция в облако

Миграция на облачную инфраструктуру 1сloud производилась постепенно без остановок клиентских сервисов и прерывания работы платформы. Разработчикам компании eCREDIT и DevOps-инженеру Виталию Федорову необходимо было решить непростую задачу — разделить монолитный проект не только на логические блоки с точки зрения архитектуры приложения, но и произвести миграцию проекта на микросервисную архитектуру.

Команде Виталия нужно было реализовать и внедрить новый и прозрачный CI/CD с автотестированием, максимально снизить влияние человеческого фактора в виде ручного деплоя и тестирования, а также убрать bash-скриптинг и другие надежные решения из проекта.

Была составлена процессная карта миграции, которая учитывала следующие задачи и этапы переноса инфраструктуры проекта в облако:

  1. Тестирование и анализ внедрения новых сервисов в 1cloud.
  2. Bugfix Managed Kubernetes, с анализом логов и постановкой задач по оптимизации процессов внедрения новых сервисов.
  3. Планирование и построение архитектуры выделенных виртуальных серверов и облака в 1cloud с CI/CD.
  4. Построение взаимодействия интеграции GitLab со всей инфраструктурой в облаке 1cloud.
  5. Построение self managed Kubernetes кластера на мощностях 1cloud.
  6. Трансформация монолитной платформы приложения в микросервисную архитектуру с параллельной контейниризацией и автоматическим деплоем.
  7. Внедрение систем мониторинга состояния инфраструктуры облака и сбора статистики по используемым ресурсам, остатка средств в личном кабинете.
  8. Внедрение системы своевременного оповещения ответственных лиц о необходимости пополнения счета проекта.
  9. Создание системы контроля истечения сроков действия сертификатов и их автоматического перевыпуска на всю инфраструктуру eCREDIT.
  10. Построение отказоустойчивого решения веб-приложений.
  11. Проектирование взаимодействия приложений.
  12. Настройка DNS и интеграция с сервисами Kubernetes — Certmanager.

Объединение усилия технических команд eCREDIT и 1cloud позволило провести миграцию в соответствии с планом. Со стороны eCREDIT процесс координировал DevOps-инженер Виталий Федоров, а со стороны 1cloud — Head of customer success manager Дмитрий Матуа.

Мы в 1cloud понимаем, что для долгих и плодотворных партнерских отношений с клиентами, мы должны погружаться в каждый из клиентских проектов и постоянно держать руку на пульсе, чтобы всегда быть рядом в случае необходимости.
Дмитрий Матуа, Head of customer success manager 1cloud.ru.

Как проект стал выглядеть после миграции в облако

Как проект стал выглядеть после миграции в облако

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

После миграции в облако скорость обработки данных обновленной платформой eCREDIT выросла в 4 раза, а запас производительности приложения возрос до 15-20 тыс. запросов в секунду. Сетевая пропускная способность также значительно выросла и появилась возможность быстрого масштабирования по ресурсам (CPU, RAM, SSD). Отказоустойчивость всей платформы приложения теперь обеспечивалась Kubernetes.

Итоговый стек технологий стал выглядеть так:

  • API приложения: PHP-7.4, Redis, Rabbitmq, MySQL-8.
  • API proxy: PHP-7.4, Redis, Varnish, Mercure, MySQL-8.
  • Frontend: ReactJS.
  • Подсистема отчетности: PHP-7.4, Rabbitmq, Logstash, Elasticsearch.
  • Подсистема хранения данных: GridFS (symfony/MongoDB) с дальнейшим переходом на Swift/S3/CDN.
  • Подсистема отправки и контроля писем и сообщений: Symfony, MySQL-8.
  • Подсистема воркеров: Golang.

В итоге на базе облачной инфраструктуры 1cloud была построена отказоустойчивая микросервисная платформа с балансировкой трафика и возможностью горизонтального и вертикального масштабирования.

Для компании eCREDIT переход к микросервисной архитектуре и использованию сервисов 1cloud стал основой стабильного развития ИТ-инфраструктуры проекта. Поддержка со стороны команды сопровождения клиентов и слаженная работа наших ИТ-команд позволила совершить этот переход максимально качественно. Выявленные в рамках трансформации проекта слабые места были устранены. Сейчас мы с уверенностью можем сказать, что предоставляем своим клиентам максимально надежное и профессиональное решение.
Денис Воробьев, CTO eCREDIT.

История успешной миграции инфраструктуры компании eCREDIT в облако 1cloud — это результат огромной и технически сложной работы двух команд. Такая схема работы давно уже себя зарекомендовала с лучшей стороны, подтверждение тому кейсы других наших клиентов: