《云计算与虚拟化技术丛书 Service Mesh实战》—1.5.2Envoy
1.5.2 Envoy
同Linkerd一样,Envoy也是一款高性能的网络代理程序,于2016年10月份由Lyft公司开源,为云原生应用而设计,可作为边界入口,处理外部流量,当然,也作为内部服务间通信代理,实现服务间可靠通信。Envoy的实现借鉴现有产线级代理及负载均衡器,如Nginx、HAProxy、硬件负载均衡器及云负载均衡器的实践经验,同时基于C++编写及Lyft公司产线实践证明,Envoy性能非常优秀、稳定。Envoy既可用作独立代理层运行,也可作为Service Mesh架构中数据平面层,因此通常Envoy跟服务运行在一起,将应用的网络功能抽象化,Envoy提供通用网络功能,实现平台及语言无关。作为Service Mesh工具,Envoy除了支持上述Service Mesh的功能外,还有下列功能。
大规模负载下,Envoy保证P99延时非常低。
优先支持HTTP/2和gRPC,同时支持Websocket和TCP代理。
API驱动的配置管理方式,支持动态管理、更新配置以及无连接和请求丢失的热重启功能。
L3/L4层过滤器形成Envoy核心的连接管理功能。
通过与多种指标收集工具及分布式追踪系统集成,实现运行时指标收集,分布式追踪,提供整个系统及服务的运行时可见性。
内存资源使用率低,sidecar是Envoy最常用的部署模式。
目前,Envoy已经在Lyft及其他公司如腾讯、Stripe、Twilio等运行于产线,还有,Envoy社区非常活跃,你可从社区及一些其他厂商,比如Turbine Labs(https://www.turbinelabs.io/)获得商业支持。另外,Envoy也被用于实现API Gateway如Ambassador (https://www.getambassador.io/)及Kubernetes的Ingress Controller如Contour (https://github.com/heptio/contour)。当然,基于Envoy实现的另一款Service Mesh工具Istio可能更广为人知。而且Envoy也是CNCF官方支持的项目之一。
- 点赞
- 收藏
- 关注作者
评论(0)