Опыт BMW Group в области хаос-инжиниринга и полученные инсайты

Когда BMW Group перенесла свою платформу ConnectedDrive для автомобилей следующего поколения в облако, она поняла — нужен системный подход для проверки и укрепления устойчивости своей инфраструктуры. В этом им помогает хаос-инжиниринг.

Миграция 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 показал важность начинать с небольших экспериментов для создания уверенности и поддержки команд. Постепенное увеличение масштаба позволяет командам учиться и совершенствовать свои практики.
  • Признание человеческих преимуществ хаос-инжиниринга. Хаос-инжиниринг не только выявляет проблемы с ПО, но и имеет важное значение для команды. Создание среды, где ошибки не стигматизируются, помогает командам быть смелыми и инновационными.
cloud

Получите бесплатную консультацию по миграции в облако

Узнайте подробнее, и наш менеджер предложит варианты под ваши задачи

Узнать больше