❝作者:地平线云原生开发工程师--张昕
在当前的汽车行业,大多数公司都在向自动驾驶和新能源方向转型,而对于自动驾驶方面,每家企业都投入了大量的资源来完成自动驾驶模型的开发与训练,其中出现了很多明星企业,比如汽车智能计算平台引领者地平线。地平线主要从事汽车智能计算平台的研发,具有领先的深度学习算法和芯片设计能力,致力于通过底层技术赋能,推动汽车产业的创新发展。
智能汽车是机器人时代第一个大终端,地平线同时也通过软硬件的结合,广泛赋能泛机器人行业的应用落地。在硬件层面,地平线基于自主研发的专用计算架构 BPU(Brain Processing Unit) ,推出面向智能驾驶的计算平台征程系列和面向泛机器人的旭日系列。在软件层面,面向智能汽车 AI 软件产品开发及迭代需求,地平线打造地平线艾迪®AI 开发平台,能够为智能汽车 AI 开发者提供数据标注、训练、优化、部署、管理与性能分析等能力。整套基础设施,开箱即用,用户无需从零搭建一套复杂的自动驾驶跨平台系统,只需聚焦于核心价值积累。

对于一家快速发展的科技公司而言,如何保证业务稳定运行与轻松管理是非常重要的,而网关则是保证业务稳定的第一道关卡。由于之前网关存在了一些无法解决的问题,因此地平线对网关重新进行选型,最终选择了 Apache APISIX Ingress Controller[1] 作为公司的流量网关,统一提供服务。
网关选型之路
Traefik 的不足
在使用 APISIX Ingress 之前,业务系统使用的 Ingress Controller 是 Traefik 1.x 版本,但是存在以下几个问题:
Traefik 1.x 是通过 Ingress 来配置路由规则的,部分插件需要通过添加 annotation 的方式进行配置。这种方式,只能针对当前 Ingress 下的所有规则添加插件,无法实现更细粒度的配置。
Traefik 1.x 不支持具体规则可视化配置,无法根据 Request URL 通过页面直接定位到具体服务。
Traefik 的默认配置文件(configmap)内容较少,许多默认配置需要翻阅官方文档,并且有些参数和 NGINX 默认配置不一致,导致维护起来比较麻烦。
针对以上问题,地平线的技术团队决定更换 Ingress Controller,在选型初期也有考虑将 Traefik 升级到 Traefik 2.0 解决上述问题,但是因为也需要采用新的 CRD 来进行升级,迁移成本也不低,不如尝试下其他 Ingress 方案。
APISIX Ingress 的优势
在使用 APISIX In