云计算|Service Mesh:调度千军万马微服务,2.0妥妥的( 三 )


将过去一些过于复杂的分散式组件 , 集中到了Istio核心的控制平面中 , 从而降低了使用管理的难度系数 。
另外 , 以前的mxier组件 , 在1.5版本中被移除 , 该能力通过其他方式来实现 , 组件删减之后也对性能方面带来显著提升 。
总体来说 , 就是提升性能并降低复杂度 , 从而让用户能够更容易去采纳这样的新技术 。
回顾Istio的一路走来 , 如何打破叫好不叫座的局面 , 真正实现生产环境落地的意义 , 可能是未来很长时间都需要证明自己的事儿 。
相比Istio的任重道远 , 作为Istio中的Sidecar官方标配 , Envoy也有很吸睛的表现 。
Envoy , 由Lyft创建 , 为了直击完整的ServiceMesh功能 , 它牢牢占据了“数据平面”的部分 , 与其进行匹配 。
作为一个面向服务架构的高性能网络代理 , Envoy由C++语言实现 , 拥有较为强大的定制化能力 。
主要通过其提供的Filter机制 , 基本可以对请求转发过程中超过50%的流程做定制化 , 在性能方面由于其实现参考了Nginx , 也处于主流水平 。
其作为Sidecar其提供的核心功能可以被简单总结:对业务透明的请求拦截;对拦截请求基于一定规则做校验、认证、统计、流量调度、路由等 。
其中对于请求校验规则的多与少、遥测数据的采集精细度、数据统计的维度多样性等算是复杂性需求的展现 。
因此最有可能提升Sidecar性能的技术方向 , 就是对请求的拦截与Sidecar之间通讯协议的高效性 。
目前Envoy被越来越多企业使用 , 不但稳稳占据了 Istio 官配 Sidecar 的位置 , 还在网络代理、负载均衡器上展露锋芒 。
甚至广泛被 Istio 之外的多家企业 Service Mesh 框架项目采用 , 明显有成为 Service Mesh 的数据平面“风向标”的倾向 。
2017 年 9 月 , Envoy 加入 CNCF , 成为 CNCF 的第二个 Service Mesh 项目;2018 年 11 月, CNCF 宣布 Envoy 毕业 , 成为继 Kubernetes 和 Prometheus 后 , 第三个孵化成熟的 CNCF 项目 , 前景乐观 。
当然 , 除了这些传统的开源项目外 , Service Mesh 竞争版图中也陆陆续续迎来了各种企业级的参与者 , 例如Nginmesh 。
来自名声在外的nginx , 作为2017 年 9 月对外宣布的一款产品 , 适用于 Istio 的方案 , 本质上就是使用 NGINX 作为 sidecar 来替换 Envoy 。
另外 , Consul 来自 HashiCorp 公司 , 主要功能是服务注册和服务发现 , 以及作为一个从 API 网关演变而来的 service mesh 产品 , 名叫Kong等 。
关于Service Mesh 技术 , 这些大企业代表都有何频频动作?
如上文所言 , Service Mesh确已席卷全球 , 过去一年时间中 , 已有多家公司竞相推出自己的 Service Mesh 产品和方案 , 例如AWS , 就是引人注目的一家 。
去年4月 , AWS 震撼宣布了 App Mesh GA 。
App Mesh 作为 AWS 推出的 AWS 原生服务网格 , 与 AWS 完全集成 , 主要组件包括:网络(AWS cloud map);计算(Amazon EC2 和 AWS Fargate)以及编排工具(AWS EKS , Amazon ECS 和 EC2 上客户管理的 k8s) 。
值得提及的一点 , App Mesh的数据平面采用 Envoy , 产品同时支持VM和容器并支持多种产品形态 。
适用于Amazon ECS、Amazon EKS和Kubernetes on EC2 , 另外还支持开源Envoy代理 , 本质上帮助开发人员监控以及控制跨微服务的通信 。
具体来说 , 使用App Mesh来建模的所有微服务的连接方式 , 都会自动计算并向每个微服务代理发送相应的配置信息 。
这样就达成了跨整个应用的程序标准化 , 以及易用性与流量控制等要求 。
相比AWS青睐 Envoy , Google的打法则是围绕 Istio。
最初 , Google在2018年底推出了 Istio on GKE , 并提供遥测、日志、负载均衡、路由等能力 。


推荐阅读