О чем эта история
Компания «Мерседес‑Бенц РУС» перенесла сервисы Mercedes Me для российских пользователей из Microsoft Azure в Yandex Cloud. Специалисты компании произвели необходимый рефакторинг кода сервисов и, с помощью DevOps-инженеров OpsGuru и Luxoft, изменили Terraform-скрипты и развернули кластеры Yandex Managed Service for Kubernetes®, встроив их в существующий пайплайн разработки и развертывания приложений Mercedes Me на облачных площадках по всему миру.
Удалось перенести сервисы Mercedes Me без простоя. Сейчас все российские пользователи приложений Mercedes Me и Mercedes Me Remote Parking используют облако Yandex Cloud. Созданная мультиоблачная инфраструктура отвечает всем требованиям информационной безопасности компании и соответствует ФЗ-152.
Миграция сервиса из зарубежной облачной платформы в Yandex Cloud
Компания Mercedes‑Benz AG разработала для клиентов мобильные приложения Mercedes Me App Family for Mobile Applications.
- Приложение Mercedes Me предоставляет удаленный доступ к функциям салона и интегрированным с ними внешним сервисам с геолокацией.
- Mercedes Me Service, который тоже будет доступен в России, даст возможность получить высококачественное сервисное обслуживание, например, записаться к дилеру.
- Mercedes Me Store позволит покупать подписочные функции, такие как автопилот или навигатор.
Сервисы Mercedes Me в большинстве стран развернуты в облаке Microsoft Azure. За локализацию и адаптацию приложений в России отвечает дочернее предприятие компании — «Мерседес‑Бенц РУС». Так как в России отсутствуют ЦОД Microsoft Azure, то компании нужна была надежная облачная платформа, обладающая набором аналогичных сервисов и соответствующая не только российскому законодательству, в частности ФЗ-152, но и высоким стандартам безопасности компании Mercedes-Benz.
«Мерседес‑Бенц РУС» сформировала список основных требований для поставщика облачных услуг.
Для разворачивания были необходимы:
- максимальное количество managed-сервисов, аналогичных используемым компанией в Microsoft Azure;
- динамическое масштабирование площадки;
- использование стандартизированных популярных протоколов и библиотек;
- возможность использования HashiCorp Terraform;
- максимально возможное шифрование данных при хранении и передаче с использованием современных инструментов и стандартов шифрования;
- договорные обязательства по изоляции данных и сети.
Проанализировав рынок облачных платформ в России, компания выбрала Yandex Cloud. Облачная платформа Яндекса предлагала набор управляемых сервисов, аналогичных Microsoft Azure, полностью соответствовала требованиям российских регуляторов и информационной безопасности компании (использование дисков с шифрованием и SSE-шифрование в S3, поддержка TLS в микросервисах и SAML-федераций), а также предоставляла помощь и поддержку от экспертов в разработке, инфраструктуре и CI/CD при миграции сервисов.
Разворачивание кластеров Yandex Managed Service for Kubernetes® и других облачных сервисов
Приложения Mercedes Me основаны на микросервисной архитектуре: они размещаются в реестре контейнеров и доставляются на региональные облачные площадки с помощью инструмента непрерывной доставки Spinnaker. Для автоматизации развертывания используется Terraform.
На региональных площадках в Microsoft Azure сервисы Mercedes Me используют Azure Kubernetes Service, Blob Storage, Cosmos DB. Также применяются кэш Azure для Redis и брокер сообщений Apache Kafka в HDInsight.
Для развертывания площадки в России было необходимо создать мультиоблачную среду, а значит компания решала несколько непростых задач. Нужно было выстроить облачную инфраструктуру, максимально приближенную к существующим площадкам в экосистеме Microsoft Azure. Чтобы вносить минимум глобальных изменений в сами приложения, все используемые программы и их версии должны были максимально совпадать. Для собственных продуктов Microsoft Azure было необходимо подобрать и развернуть аналоги. При этом должна была обеспечиваться поддержка тех же стандартов шифрования данных. Кроме того, нужно было решить, переносить ли некоторые функциональные части инфраструктуры, например Event Hub. Также нужно было встроиться в существующий пайплайн развертывания приложений, переконфигурировав инструменты автоматизации. Поэтому для разворачивания в Yandex Cloud в разумные сроки «Мерседес‑Бенц РУС» обратилась к экспертизе внешних подрядчиков и кроме собственной команды привлекли DevOps‑инженеров OpsGuru и Luxoft.
Инфраструктура, созданная в Yandex Cloud, включает в себя два кластера управляемого Kubernetes. Код в них доставляется и разворачивается также, как и на другие площадки: посредством Spinnaker и Terraform. Чтобы это реализовать, пришлось полностью переписать скрипты автоматизации с помощью специалистов OpsGuru и Luxoft. На российской площадке настроен балансировщик, распределяющий нагрузки. Здесь же с помощью Elasticsearch обрабатываются логи приложений. За анализ этих данных, разбор нотификаций от Spinnaker и оповещение сотрудников отвечает система управления инцидентами Opsgenie. При этом управление глобальными событиями решили не менять, с ними работает центр событий Azure Event Hub.
Кроме инфраструктурных изменений, разработчикам Mercedes Me нужно было произвести рефакторинг кода приложений в тех частях, которые отвечают за взаимодействие с сервисом обработки очередей и с S3-хранилищем. Это произошло из-за существенных различий между управляемыми сервисами Apache Kafka и объектными хранилищами в Yandex Cloud и Microsoft Azure.
Для работы с данными приложений на российской площадке используется Yandex Managed Service for MongoDB. Изначально приложения Mercedes Me использовали третью версию MongoDB, но ее поддержка в рамках управляемого сервиса Yandex Cloud закончилась. Проблему удалось решить: специалисты Yandex Cloud продлили поддержку кластера, а «Мерседес‑Бенц РУС» оперативно мигрировала сервис на новую версию. За кэширование в облачной инфраструктуре отвечает Yandex Managed Service for Redis™. Из-за необходимости шифрования соединения «Мерседес-Бенц РУС» обратилась к Yandex Cloud с просьбой внедрения Redis 6 с поддержкой TLS, что удалось сделать в короткие сроки.
Создание мультиоблачной инфраструктуры без остановки работы приложений
«Мерседес‑Бенц РУС» развернула приложения Mercedes Me для российских пользователей в облаке Yandex Cloud без перерывов в работе сервисов. Полученное решение полностью встроено в глобальный пайплайн разработки, доставки и мониторинга сервисов Mercedes me и отвечает всем требованиям информационной безопасности компании Mercedes-Benz AG и российскому законодательству.
В результате реализации мультиоблачной инфраструктуры российским пользователям стали доступны приложения Mercedes Me и Mercedes Me Remote Parking. У компании в планах локализация и разворачивание в Yandex Cloud и других приложений экосистемы.
Мнение
Наша компания считает, что нам необходимо тратить больше усилий на продуктовые решения, чем на инфраструктурные. Если есть возможность отдать провайдеру специфические риски, то мы ей пользуемся, например, выбирая managed‑сервисы. У облачных провайдеров есть немаловажная особенность: они имеют больше экспертизы и ресурсов для того, чтобы поддерживать сервисы в актуальном состоянии, что важно для поддержания высокого уровня безопасности. Это позволяет использовать время наших специалистов для улучшения наших продуктов. Мы быстро наладили взаимодействие со специалистами Yandex Cloud, что позволило оперативно решать вопросы на этапе согласования контрактов и преодолевать технические сложности. Такой подход мне очень импонирует, я считаю, что он стал немаловажной причиной успеха этого проекта.