在技术栈的熟悉度方面,Envoy 主体是基于 C++ 开发的,国内企业对 Java、Go 语言以及 Nginx 更为熟悉,选型方面也会从更利于自己掌控与“折腾”的角度出发,很容易忽视未来选型的正确性、长远性。我了解到包括很多国内的大厂团队和开发者在内,都因为 C++ 语言本身与其团队或个人的技术不匹配而被劝退。
InfoQ:基于网易数帆构建的实践,如果请您从中总结出最重要的三条经验,会是什么?对于想要探索基于 Envoy 建设 API 网关的技术团队,您有什么建议?
裴斐:
战略上藐视(新技术难度),战术上重视(适配与增强)。不管从最初的可行性调研正向推导,还是从现在大规模生产应用的结果倒推,选型 Envoy 作为下一代网关实现都是一次看上去冒险,实际上顺利的实践。选型前期千万不要因为被 Envoy 的架构和 C++ 语言吓到,而错失大量后期收益。另外,在不断实践摸索中,需要结合 API 网关传统能力和业务实际场景,进行谨慎的设计与渐进的适配增强,保证最终落地上技术的严谨性。