Ведя в будущее: Как APISIX Ingress Controller усиливает Horizon Robotics

Jing Yan

Jing Yan

October 10, 2022

Case Study

Обзор

О компании Horizon Robotics

Horizon Robotics — ведущий поставщик энергоэффективных вычислительных решений для систем помощи водителю (ADAS) и автоматизированного вождения (AD) в обычных автомобилях. Компания сосредоточена на улучшении опыта вождения для следующего поколения, объединяя передовое аппаратное и программное обеспечение, включая низкопотребляющие аппаратные вычислительные решения и открытые инструменты разработки программного обеспечения.

Проблемы

  • Предыдущий контроллер входящего трафика Horizon Robotics, Traefik 1.x, не поддерживал детальную конфигурацию.

  • Traefik 1.x не имел конкретных правил для визуальной конфигурации, что не позволяло точно определять конкретные сервисы.

  • Оригинальные конфигурационные файлы Horizon Robotics были ограничены, что требовало трудоемкого поиска документации и обслуживания.

Результаты

  • Путем корректной настройки параметров Horizon Robotics повысила стабильность передачи данных и снизила частоту возникновения проблем, таких как нехватка памяти (OOM).

  • Horizon Robotics улучшила использование ресурсов и способствовала сотрудничеству между несколькими облачными платформами.

  • Используя плагин APISIX forward-auth для внешней аутентификации, Horizon Robotics упростила вызовы gRPC и повысила эффективность мониторинга.

  • Horizon Robotics улучшила мониторинг и операционную эффективность, активировав плагин prometheus и адаптировав его под конкретные бизнес-требования.

Предыстория

В эпоху автономного вождения и новых энергетических технологий такие компании, как Horizon Robotics, активно инвестируют в разработку и обучение моделей автономного вождения. Обладая экспертизой в области алгоритмов глубокого обучения и проектирования чипов, Horizon Robotics сосредоточена на инновационных автомобильных вычислительных платформах. Они выпустили аппаратное обеспечение, такое как серия Horizon Journey для интеллектуального вождения, серия Sunrise для универсальной робототехники и кросс-платформенный инструмент разработки ИИ. "Этот рост повысил важность нашего шлюза", — отметил Синь Чжан, инженер по облачным технологиям в Horizon Robotics.

Почему APISIX Ingress Controller

До внедрения APISIX Ingress Controller бизнес-система Horizon Robotics использовала Traefik 1.x в качестве контроллера входящего трафика, что создавало несколько проблем.

  • Traefik 1.x ограничивал компанию использованием плагинов для всех правил внутри контроллера входящего трафика без возможности более детальной конфигурации.

  • Traefik 1.x не мог напрямую идентифицировать сервисы на основе URL-адресов запросов в веб-браузерах.

  • Конфигурационный файл по умолчанию (ConfigMap) Traefik 1.x имел ограниченный набор атрибутов, что требовало частого обращения к официальной документации для получения настроек по умолчанию. Эта проблема усугублялась различиями в параметрах с конфигурацией по умолчанию NGINX, что усложняло обслуживание.

"Столкнувшись с этими проблемами, наша техническая команда решила, что пришло время заменить наш контроллер входящего трафика", — говорит Чжан. "Изначально мы думали об обновлении Traefik до версии 2.0, чтобы решить эти проблемы, но это обновление означало принятие нового CRD и значительные затраты на миграцию. Поэтому мы также попытались изучить другие варианты контроллеров входящего трафика."

Horizon Robotics в основном оценивала Apache APISIX, Kong и Envoy на начальном этапе выбора. Однако, в разной степени, за исключением APISIX Ingress Controller, эти альтернативные решения не могли полностью удовлетворить конкретные требования по функциональности или производительности. В результате Horizon Robotics в конечном итоге выбрала APISIX Ingress Controller. Помимо некоторых стандартных функций шлюзов, Horizon Robotics особенно интересовали следующие аспекты:

  • Широкая поддержка плагинов: APISIX обладает мощной экосистемой плагинов, которые можно удобно настраивать с помощью apisix-ingress-controller. Эти плагины также могут быть адаптированы для конкретных бэкендов под ApisixRoute.

  • Удобная визуальная конфигурация: APISIX Dashboard предоставляет четкий обзор каждого route в apisix. В случаях, когда один и тот же домен настроен в нескольких namespaces или YAML-файлах, интегрированный APISIX Dashboard позволяет Horizon Robotics быстро выявить потенциальные конфликты, выполнив поиск по префиксам путей.

  • Детальная валидация: APISIX Ingress Controller строго проверяет ресурсы, объявленные в CRD, которыми он управляет. Если в CRD указан недействительный сервис, сообщение об ошибке записывается в event ApisixRoute, предотвращая вступление изменений в силу. Эта валидация помогает смягчить проблемы, возникающие из-за неправильной конфигурации.

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

  • Активное участие сообщества: В отличие от других открытых сообществ, APISIX пользуется активным сообществом поддерживающих и участников, активно участвующих в Slack, GitHub и рассылке.

  • Впечатляющая производительность: На графике ниже четко видно, что APISIX превосходит Envoy примерно на 20% в стресс-тесте. Эта разница в производительности становится более заметной с увеличением количества ядер процессора.

Ingress Controller

Успехи Apache APISIX Ingress Controller

Улучшение централизованного управления трафиком

Horizon Robotics достигла значительного успеха, используя APISIX Ingress Controller в качестве центрального шлюза для входящего трафика из различных источников, таких как инструменты командной строки, веб-приложения, SaaS-платформы и OpenAPI. Компания также обеспечила безопасный доступ к своим сервисам, используя плагин forward-auth для внешней аутентификации.

Architecture1

Эта инновационная архитектура эффективно направляет входящий трафик через доменное имя на уровне шлюза. Первоначальная маршрутизация через Linux Virtual Server (LVS) упрощает процесс переадресации, направляя трафик на бэкендный узел APISIX. Впоследствии APISIX эффективно распределяет трафик на соответствующие поды, следуя предопределенным правилам маршрутизации. Примечательно, что изменение порта по умолчанию APISIX Ingress Controller с 9180 на 80 дополнительно упрощает маршрутизацию трафика, повышая общую эффективность управления трафиком в системе.

Architecture2

Значительное улучшение эффективности

Компании, занимающиеся обучением моделей ИИ, часто сталкиваются с ситуациями, требующими загрузки файлов большого размера. "В нашей системе обучения моделей Horizon Robotics команда разработчиков загружает собранные данные в систему через сеть, и размер данных обычно составляет несколько сотен ГБ или более", — говорит Чжан. Чтобы справиться с этой задачей, Horizon Robotics внедрила APISIX 2.13 с настроенными параметрами и включила потоковую загрузку файлов в APISIX. Этот шаг обеспечил бесперебойную загрузку больших файлов и устранил проблемы, связанные с памятью. В результате проекты обучения моделей ИИ Horizon Robotics увидели заметное улучшение эффективности, что позволило более плавно продвигаться в технологическом прогрессе.

Oversized

Стратегическая оптимизация мультиоблачной среды

Во взаимодействии мультиоблачных сервисов часть бизнес-трафика изначально попадает в локальный IDC Horizon Robotics. Оттуда он проходит через APISIX Ingress Controller, прежде чем достичь Pod. Внутри Pod некоторые сервисы должны получать доступ к сервисам Acloud с использованием доменных имен. Этот шаг позволил этим сервисам беспрепятственно перемещаться между различными облачными провайдерами, используемыми Horizon Robotics, предоставляя доступ к необходимым ресурсам, одновременно оптимизируя использование ресурсов. Кроме того, существуют сценарии, в которых сервисы вызывают другие сервисы, в основном для мультиоблачного обучения, что позволяет различным сервисам сотрудничать в выполнении более сложных задач. Также Horizon Robotics может выбирать подходящий кластер и отправлять задачи в соответствующие облачные кластеры через точку входа в локальный IDC. Эта возможность позволила им эффективно управлять и распределять задачи, полностью используя вычислительные ресурсы в их мультиоблачной среде.

Multi-cloud

Упрощенная интеграция плагинов

После того как APISIX тщательно интегрировала поддержку плагина forward-auth, Horizon Robotics приняла стратегическое решение перейти с собственного плагина на официальный плагин APISIX. Этот переход устранил необходимость в дополнительном слое вызовов gRPC и значительно упростил процессы мониторинга компании. В результате это улучшение значительно повысило гибкость интеграции и усилило меры безопасности, что в конечном итоге укрепило позиции Horizon Robotics в области робототехники.

forward-auth

Расширенный мониторинг приложений

Чтобы максимально использовать мощные функции APISIX, Horizon Robotics активировала плагин prometheus для мониторинга приложений. Horizon Robotics провела индивидуальные настройки и оптимизации, чтобы соответствовать своим бизнес-требованиям, включая повышение реальной конкуренции, QPS, реальной скорости успешного выполнения API APISIX и реальной пропускной способности APISIX. Эти изменения предоставили Horizon Robotics более детальный мониторинг APISIX.

Application Monitoring

Итог

Horizon Robotics эффективно использовала Apache APISIX Ingress Controller в критически важных бизнес-сценариях, повысив эффективность и адаптивность. Они упростили загрузку файлов большого размера для обучения моделей ИИ, оптимизировали взаимодействие мультиоблачных сервисов, упростили внешнюю аутентификацию и внедрили индивидуальный мониторинг приложений. Эти улучшения значительно продвинули технологии и операции Horizon Robotics.

Поскольку все больше пользователей внедряют Apache APISIX Ingress Controller в свои производственные среды, мы призываем тех, кто использует Apache APISIX Ingress Controller, делиться своими примерами использования в сообществе.

Tags: