驱动未来:APISIX Ingress Controller 如何赋能 Horizon Robotics

Jing Yan

Jing Yan

October 10, 2022

Case Study

概要

Horizon Roboticsについて

Horizon Roboticsは、一般車両向けの先進運転支援システム(ADAS)および自動運転(AD)のための高効率なコンピューティングソリューションを提供するトップクラスの企業です。同社は、低消費電力のハードウェアコンピューティングソリューションやオープンなソフトウェア開発ツールを含む先進的なハードウェアとソフトウェアを組み合わせることで、次世代の運転体験を向上させることに焦点を当てています。

課題

  • Horizon Roboticsが以前使用していたIngressコントローラーであるTraefik 1.xは、細かい設定をサポートできませんでした。

  • Traefik 1.xには視覚的な設定のための特定のルールがなく、特定のサービスを特定することができませんでした。

  • Horizon Roboticsの元の設定ファイルは限られており、ドキュメントを頻繁に参照する必要があり、メンテナンスに時間がかかっていました。

成果

  • パラメーターを適切に調整することで、Horizon Roboticsはデータ伝送の安定性を向上させ、メモリ不足(OOM)などの問題の発生を減少させました。

  • Horizon Roboticsはリソースの利用率を向上させ、複数のクラウドプラットフォーム間の連携を促進しました。

  • APISIXのforward-authプラグインを利用して外部認証を行い、gRPC呼び出しを簡素化し、監視効率を向上させました。

  • Horizon Roboticsはprometheusプラグインを有効にし、ビジネス要件に合わせてカスタマイズすることで、監視と運用効率を向上させました。

背景

自動運転と新エネルギー技術の時代において、Horizon Roboticsのような企業は自動運転モデルの開発とトレーニングに多大な投資を行っています。深層学習アルゴリズムとチップ設計の専門知識を持つHorizon Roboticsは、革新的な自動車コンピューティングプラットフォームに焦点を当てています。同社は、インテリジェントドライビング向けのHorizon Journeyシリーズや多目的ロボティクス向けのSunriseシリーズ、クロスプラットフォームAI開発ツールなどのハードウェアをリリースしています。「この成長により、ゲートウェイの重要性が高まっています」と、Horizon Roboticsのクラウドネイティブ開発エンジニアであるXin Zhangは述べています。

APISIX Ingress Controllerを選んだ理由

APISIX Ingress Controllerを導入する前、Horizon RoboticsのビジネスシステムはTraefik 1.xをIngressコントローラーとして使用していましたが、いくつかの課題がありました。

  • Traefik 1.xでは、Ingressコントローラー内のすべてのルールに対してプラグインを使用する必要があり、より詳細な設定を行う柔軟性がありませんでした。

  • Traefik 1.xは、ウェブブラウザのリクエストURLに基づいてサービスを直接識別することができませんでした。

  • Traefik 1.xのデフォルト設定ファイル(ConfigMap)は属性が限られており、デフォルト設定を確認するために公式ドキュメントを頻繁に参照する必要がありました。この問題は、NGINXのデフォルト設定とのパラメーターの不一致によりさらに複雑化し、メンテナンスがより困難になっていました。

「これらの問題に直面し、私たちの技術チームはIngressコントローラーの置き換えが必要だと判断しました」とZhangは述べています。「当初はTraefikをバージョン2.0にアップグレードしてこれらの問題を解決しようと考えましたが、このアップグレードは新しいCRDの採用と多大な移行コストを伴うものでした。そのため、他のIngressコントローラーのオプションも検討することにしました。」

Horizon Roboticsは、初期の選定段階でApache APISIX、Kong、Envoyを主に評価しました。しかし、APISIX Ingress Controllerを除いて、これらの代替ソリューションは機能やパフォーマンスの特定の要件に完全に対応できませんでした。その結果、Horizon Roboticsは最終的にAPISIX Ingress Controllerを選択しました。ゲートウェイの標準的な機能に加えて、Horizon Roboticsは以下の点に特に興味を持ちました:

  • 豊富なプラグインサポート: APISIXは強力なプラグインエコシステムを誇り、apisix-ingress-controllerを使用して簡単に設定できます。これらのプラグインは、ApisixRouteの下で特定のバックエンド向けにカスタマイズすることも可能です。

  • ユーザーフレンドリーな視覚的設定: APISIXダッシュボードは、各apisix routeを明確に表示します。同じドメインが複数のnamespacesやYAMLファイルで設定されている場合、統合されたAPISIXダッシュボードを使用して、パスのプレフィックスを検索することで潜在的な競合を迅速に特定できます。

  • 細かいバリデーション: APISIX Ingress Controllerは、管理するCRDで宣言されたリソースを厳密に検証します。CRDで無効なサービスが指定されている場合、ApisixRoute eventにエラーメッセージが記録され、変更が有効になるのを防ぎます。この検証により、設定ミスに起因する問題を軽減できます。

  • 多様な機能セット: APISIXは、ホットアップデートやプラグインのサポート、リクエストの書き換え、複数の認証方法、多言語プラグイン開発など、多くの機能を提供します。

  • 活発なコミュニティ参加: 他のオープンソースコミュニティとは異なり、APISIXはSlack、GitHub、メーリングリストで積極的に参加しているメンテナーや貢献者の活発なコミュニティに支えられています。

  • 優れたパフォーマンス: 以下のチャートから明らかなように、APISIXはストレステストにおいてEnvoyよりも約20%優れたパフォーマンスを発揮します。このパフォーマンスの差は、CPUコア数が増えるにつれてさらに顕著になります。

Ingress Controller

Apache APISIX Ingress Controllerの成功事例

集中型トラフィックハブの強化

Horizon Roboticsは、コマンドラインツール、ウェブアプリケーション、SaaSプラットフォーム、OpenAPIなど、さまざまなソースからのトラフィックを集中管理するゲートウェイとしてAPISIX Ingress Controllerを使用することで、注目すべき成果を達成しました。同社は、外部認証のためにforward-authプラグインを使用して、サービスへの安全なアクセスを確保しました。

Architecture1

この革新的なアーキテクチャは、ゲートウェイ層内のドメイン名を通じて着信トラフィックを効果的に誘導します。Linux Virtual Server(LVS)を介した初期のルーティングにより、トラフィックをバックエンドのAPISIXノードに転送するプロセスが簡素化されます。その後、APISIXは事前に定義されたルーティングルールに従って、適切なPodにトラフィックを効率的に分散します。特に、APISIX Ingress Controllerのデフォルトポートを9180から80に調整することで、トラフィックルーティングがさらに効率化され、システム全体のトラフィック管理が向上しました。

Architecture2

効率の大幅な向上

AIモデルトレーニングに従事する企業は、超大規模なファイルのアップロードを必要とするシナリオに頻繁に直面します。「Horizon Roboticsのモデルトレーニングシステムでは、R&Dチームがネットワークを介して収集したデータをシステムにアップロードしますが、データサイズは通常数百GB以上です」とZhangは述べています。この課題に対処するため、Horizon RoboticsはAPISIX 2.13を導入し、パラメーターを調整してファイルのストリーミングアップロードを有効にしました。これにより、大規模なファイルのシームレスなアップロードが可能になり、メモリ関連の問題が軽減されました。その結果、Horizon RoboticsのAIモデルトレーニングプロジェクトの効率が大幅に向上し、技術的な進歩がスムーズになりました。

Oversized

戦略的なマルチクラウド最適化

マルチクラウドサービスの相互作用において、一部のビジネストラフィックは最初にHorizon RoboticsのローカルIDCに到達します。そこからAPISIX Ingress Controllerを通過し、Podに到達します。Pod内では、特定のサービスがドメイン名を使用してAcloudのサービスにアクセスする必要があります。このステップにより、これらのサービスはHorizon Roboticsが利用するさまざまなクラウドプロバイダー間をシームレスに移動し、必要なリソースにアクセスしながらリソースの利用率を最適化できます。さらに、サービスが他のサービスを呼び出すシナリオも存在し、主にマルチクラウドトレーニングのために、異なるサービスが協力して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、APISIXのリアルタイムAPI成功率、APISIXのリアルタイム帯域幅を向上させました。これらの変更により、Horizon RoboticsはAPISIXをより細かく監視できるようになりました。

Application Monitoring

まとめ

Horizon Roboticsは、重要なビジネスシナリオでApache APISIX Ingress Controllerを効果的に活用し、効率と適応性を向上させました。AIモデルトレーニングのための超大規模なファイルアップロードを簡素化し、マルチクラウドサービスの相互作用を最適化し、外部認証を簡素化し、カスタマイズされたアプリケーションモニタリングを実装しました。これらの強化により、Horizon Roboticsの技術と運用が大幅に進歩しました。

Apache APISIX Ingress Controllerを本番環境に導入するユーザーが増えるにつれて、Apache APISIX Ingress Controllerを使用しているユーザーにコミュニティ内でユースケースを共有することをお勧めします。

Tags: