
Миграция ConnectedDrive в облако
С ConnectedDrive у клиентов появляется:
- ConnectedDrive — это набор цифровых сервисов и приложений для улучшения опыта вождения.
- навигация с обновлениями трафика и карт в реальном времени
- дистанционное управление функциями автомобиля через мобильное приложение
- беспроводные обновления программного обеспечения
- системы помощи водителю для адаптивного круиз-контроля и удержания полосы движения
- развлекательные опции, такие как Spotify, Apple CarPlay и Android Auto.
Миграция платформы ConnectedDrive в AWS была необходима, чтобы удовлетворить быстро растущий спрос, повысить устойчивость систем и эффективность за счет автоматизации.
Перенос в облако и дальнейшая оптимизация включали постоянное совершенствование архитектуры ПО ConnectedDrive, повышение квалификации сотрудников и расширение гибких методологий разработки. BMW Group стремится развертывать свои инновации в различных регионах и на различных платформах по всему миру. Инфраструктура в том числе разработана для противостояния динамическим условиям и киберугрозам.
В основе этого опыта лежит система из более чем 1100 микросервисов, ежедневно обслуживающая 12 миллиардов запросов и обрабатывающая 165 терабайт данных.
Первый эксперимент в сфере облачных ITEE
BMW Group приняла методологии хаос-инжиниринга, используя AWS FIS для проведения облачных ITEE — организованных крупномасштабных экспериментов с хаосом в производственных средах. AWS FIS помогает моделировать и тестировать большой спект сценариев сбоев.
Команда, отвечающая за управление подключением транспортных средств и телеметрией ConnectedDrive, была выбрана в качестве пилота для первого облачного ITEE. Они проводили эксперименты с AWS FIS в предпроизводственных средах на центральном кластере Message Queuing Telemetry Transport (MQTT). MQTT — это протокол обмена сообщениями, который BMW Group использует для обработки 12 миллиардов сообщений в день из своего парка транспортных средств.
Кластер брокера MQTT развернут в трех зонах доступности (AZ) в высокодоступной конфигурации с использованием экземпляров Amazon Elastic Compute Cloud (EC2) и томов Amazon Elastic Block Store (EBS).
В первом эксперименте команда использовала AWS FIS для симуляции сценария отключения питания в зоне доступности (AZ) и проверки способности кластера автоматически восстанавливаться, запуская новые узлы в оставшихся AZ. Эксперимент помог выявить ранее неизвестные проблемы, приводящие к образованию второго кластера, что известно как сценарий split-brain.
В результате автомобили случайно подключались к любому из двух кластеров MQTT, что затрудняло доставку сообщений. Наблюдатели эксперимента помогли операционной командой быстро устранить проблему до того, как она могла повлиять на клиентов.
Масштабирование хаос-инжиниринга
Успех этих экспериментов показал, что стоит внедрить методы хаос-инжиниринга во всей организации, а также увеличить их частоту с ежегодной до ежемесячной.
Наряду с проведением хаос-экспериментов на других критически важных системах, BMW Group интегрировала возможности хаос-инжиниринга в платформу разработчиков ConnectedDrive. Теперь и разработчики смогли проводить проводить собственные эксперименты на своих приложениях.
Платформа разработки обеспечивает создание и развертывание приложений ConnectedDrive, обслуживая тысячи разработчиков и предоставляя необходимые инструменты, включая более 35,000 временных runner'ов для непрерывной интеграции и развертывания. Платформа централизованно управляет бинарными файлами с использованием Kubernetes, базируясь на Amazon Elastic Kubernetes Service (EKS).
На схеме ниже показана типичная настройка учетной записи AWS для одного приложения в рамках платформы ConnectedDrive.
- Входящий трафик через AWS PrivateLink, разработанный для безопасного и масштабируемого подключения.
- Вычислительные ресурсы, включая экземпляры Amazon EC2 и кластеры Amazon EKS, автоматически масштабируются по трем зонам для высокой доступности и отказоустойчивости.
- Уровень базы данных приложения, работающий на базе Amazon Aurora, развертывается в отдельных частных подсетях и использует функцию нескольких зон доступности для повышения надежности.

Чтобы набраться опыта в проведении сложных хаос-экспериментов, BMW Group начала эксперименты на самой платформе разработки, симулируя реальные сценарии нарушений. Команда разработчиков платформы также использовала сценарий отключения питания в зоне доступности (AZ) для моделирования полного отключения одной AZ (на диаграмме выше — AZ a) для всех компонентов платформы.
Эксперимент выявил ожидаемое ограничение, когда конфигурация приложения и тома Amazon EBS привязаны к определенным зонам доступности (AZ). Когда узлы Amazon EKS автоматически запускались в другой AZ с помощью авто-масштабирования, поды, запущенные на новых узлах, все еще были связаны с исходными томами EBS в начальной AZ.
Это вызвал проблемы с доступностью и привело к 15–20-минутному периоду снижения производительности, так как приложение работало без томов EBS, которые служат кэшем. В конечном итоге поды подключились к новым томам EBS в других AZ, и кэш начал заполняться. Этот вывод подчеркнул важность учета ограничений AZ при разработке стратегий устойчивости и восстановления.
Масштабирование практик хаос-инжиниринга по всей организации потребовало сотрудничества между различными командами и заинтересованными сторонами. В итоге BMW Group приняла хаос-инжиниринг в качестве движущей силы для создания более устойчивых и надежных приложений.
Уроки, которые BMW Group извлекла по пути
- Стимулирование межкомандного сотрудничества. Компании должны создавать среду для обмена знаниями и координации усилий между командами из разных областей.
- Создание структурированной программы и поддержка руководства. Фреймворк Cloud ITEE, одобренный руководством, обеспечил согласованное планирование и анализ экспериментов. Внедрение централизованной программы поможет координировать усилия по хаос-инжинирингу.
- Использование общих инструментов и знаний. Важно стандартизировать инструменты и обмениваться знаниями для ускорения внедрения и снижения дублирования усилий.
- Делегирование полномочий командам. Несмотря на наличие централизованной программы Cloud ITEE, отдельные команды сохраняли автономию в ходе экспериментов. Компании должны наделять команды полномочиями для проведения хаос-экспериментов.
- Начинать с малого и наращивать уверенность. Опыт BMW Group показал важность начинать с небольших экспериментов для создания уверенности и поддержки команд. Постепенное увеличение масштаба позволяет командам учиться и совершенствовать свои практики.
- Признание человеческих преимуществ хаос-инжиниринга. Хаос-инжиниринг не только выявляет проблемы с ПО, но и имеет важное значение для команды. Создание среды, где ошибки не стигматизируются, помогает командам быть смелыми и инновационными.
