Lyft发布Envoy Mobile开源函数库,要将Envoy代理部署到移动设备

叫车服务Lyft推出iOS和Android行动客户端Envoy Mobile函数库,该函数库可让移动设备也获得Envoy代理(Proxy)的功能支持。不过,Lyft目前只发布了概念验证版本,并号召其他移动开发者共同协作。

Envoy代理最初也是由Lyft开发,是OSI第七层分布式代理,目的是用来解决大型多语言服务器端微服务架构的网络以及可观察性问题,Lyft提到,网络对应用程序来说应该是透明的,当网络以及应用程序发生问题时,管理者应该要能够清楚的知道问题来源,但这在实例上非常困难。

而Envoy的出现就是要来解决这个问题,作为一个自包含的程序,能跟每个应用程序服务器共同运行,并且抽象化网络提供一般常用的网络功能,这些Envoy会形成透明通信网格,当所有服务流量都流经Envoy网格时,发生问题时就能被快速的找出来,甚至能进行性能调校等工作。

不过,虽然Envoy代理只解决了网络对应用程序透明度一部分的问题,因为整体服务架构还包括了边缘的移动设备应用程序,因此Lyft为iOS和Android移动设备客户端推出Envoy Mobile函数库,开发者可以直接将Envoy编译进应用程序。

Envoy Mobile提供跨平台低端网络功能,包括HTTP/2、QUIC以及gRPC等协议,还有推送与串流、分析与重试政策等实例,Lyft提到,他们为跨平台提供一致的功能下了不少功夫,特别是要为移动设备与服务器端多语言分布式架构,提供类似的强健实例。

而Envoy Mobile使用由Google推出,类似XML串行结构化数据的协议缓冲区(Protocol Buffers),通过协议缓冲区的扩展系统,简单地使用强类型交互式数据语言(Interactive Data Language,IDL)API,Envoy Mobile就可以增加复杂的跨平台功能,Lyft目的是要让Envoy Mobile通用核心尽可能提供必要的功能,让开发人员不需要再以其他语言重新实例。

目前这个版本仍然为概念性验证的展示,说明Envoy Mobile将以函数库的形式,为iOS和Android平台提供功能,Lyft解释,与2016年发布Envoy的时候不同,这次他们之所以没有直接发布生产可用的版本,就是要跟业界的人进一步讨论协作。

基于Lyft与业界组织讨论的结果,他们认为,业界有共识想要有打造一个更全面的跨平台客户端网络解决方案,因此Lyft先丢出了一个基本版本,以符合Lyft移动应用程序需要的基本功能集,而剩下来的将继续与业界行动工程团队合作,确保项目内容的方向正确,最终他们希望Envoy Mobile能够成为CNCF拥有的中立项目。