网易Service Mesh实践之路
极客时间编辑部
讲述:丁婵大小:7.84M时长:05:43
你好,欢迎收听极客视点。
当 Service Mesh 从概念期进入到应用期时,大家的关注重点都会转向先锋企业的落地实践。为了帮助大家在实践中“避坑”,InfoQ采访了多家互联网企业,了解其应用实践,本文将分享网易的 Service Mesh 实践,以下为重点内容。
2017 年,网易落地 Service Mesh 1.0
2017 年,网易严选业务首先开始落地 Service Mesh 1.0(cNginx)架构。在选型方面,数据面采用了 Nginx,控制面及注册中心采用 Consul,Nginx 和 Consul Agent 形成 Sidecar。通过 Nginx 实现了负载均衡、环境路由、熔断降级和限流等服务东西向流量的管理,通过 Consul 实现了服务注册发现、配置同步、指令下发等控制面流量下发。服务对外调用的流量都通过本地部署的 Nginx。
Nginx+Consul 提供的基础能力基本满足了业务和基础架构团队对服务治理的需求。
Service Mesh 1.0 最早是在网易邮箱、网易有钱和网易严选试点,随着严选业务的快速发展,2017 年底,就基本在严选全面落地了,并发挥了重要作用。
一是业务不改造即可接入服务治理能力,对齐了跨团队间对服务治理的理解,降低了沟通协作成本,提升了业务团队生产力。
二是解耦了基础架构和业务服务化架构,使得他们能够独立演进。业务团队聚焦业务开发,基础架构团队推动中间件和框架的升级可以做到业务无感知。原本需要三个月才能落地的 SDK 版本升级,现在只要两周就可以通过灰度发布完成全量更新。
三是多语言技术栈统一治理,充分发挥多语言技术栈在微服务架构中的优势。
2019 年,网易落地 Service Mesh 2.0
Service Mesh 1.0 的落地虽然带来一定的好处,但是随着严选规模的变大和业务的复杂化,业务方对于基础架构的诉求也发生了变化,他们需要更灵活的流量调度、更多功能的服务治理、更大范围的基础组件解耦、更敏捷的快速迭代、更弹性的 IT 资源等。而这些,现有架构并不能满足。
2019 年初,伴随以 Kubernetes、Envoy、Istio 为代表的云原生技术体系成熟,网易开始推动 Service Mesh 1.0 向云原生 Service Mesh 2.0 (轻舟)架构升级。目前 Service Mesh 2.0 已经在严选落地。
Service Mesh 2.0 是基于 Istio+Envoy 构建的,为什么会是这样的技术选型呢?主要是以下四种原因。
Istio 和 Envoy 都是云原生社区开源产品。云原生是下一个技术浪潮,面向云原生的架构可以快速获得社区的技术红利,而且云原生社区活跃度高,版本迭代快。
Envoy 拥有不低于 Nginx 的转发性能,在治理能力和控制能力(UDPA)方面,也比 Nginx 灵活得多。Istio 是 Envoy 的黄金搭档,作为从 Kubernetes 上长出来的原生 Service Mesh 控制面框架,比较亲和容器化场景。
Envoy 支持协议和插件扩展,以满足除 HTTP 之外的其他 L4/L7 协议,Istio 也可以通过 MCP 和 API 方式扩展控制面对注册中心、配置中心、CRD 的支持。这种丰富的扩展能力不仅能够实现 Service Mesh,将来也能实现 DB Mesh、Redis Mesh 等等。
近几年,Kubernetes 通过工作负载和 CRD 抽象给基础设施系统设计带来了巨大变革,Istio+Envoy 对微服务流量和服务治理的良好抽象,有着通过 Service Mesh 来统一服务层系统设计的可能性。对网易来说,统一服务层的技术栈,沉淀技术资产实现跨事业部的复用,能够极大降低研发成本。
Service Mesh 2.0 与 1.0 有啥区别
与 Service Mesh 1.0 相比,Service Mesh 2.0 最大的不同在于全面拥抱云原生技术。底座采用 Kubernetes,通过容器化和混合云基础设施解决快速迭代和 IT 资源弹性的问题。同时对基础组件做了升级,数据面组件采用 Envoy,控制面组件采用 Istio。
Service Mesh 2.0 的 Sidecar 在部署架构上采用 per-pod 模式,取代了 Service Mesh 1.0 的 per-node 模式,per-pod 在隔离性、安全性、扩展性、升级风险等方面更加友好。此外,为了充分发挥 Service Mesh 架构的优势,Service Mesh 2.0 启用 both-sidecar 注入,在安全、遥测、路由、限流、故障注入、负载控制等方面能力更加完整。对于业务方最关心的请求延时问题,Service Mesh 2.0 通过 SR-IOV 网络增强、eBPF 短路 socket、xDS 协议优化等方式增强容器网络和数据面性能,使延时降低 100% 以上。
以上就是网易落地 Service Mesh 的经验,希望对你有所启发。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 小斧一是业务不改造即可接入服务治理能力,对齐了跨团队间对服务治理的理解,降低了沟通协作成本,提升了业务团队生产力。 二是解耦了基础架构和业务服务化架构,使得他们能够独立演进。业务团队聚焦业务开发,基础架构团队推动中间件和框架的升级可以做到业务无感知。原本需要三个月才能落地的 SDK 版本升级,现在只要两周就可以通过灰度发布完成全量更新。 三是多语言技术栈统一治理,充分发挥多语言技术栈在微服务架构中的优势。1
收起评论