科技达人说@Service Mesh 实践之路,落地三年,两次架构升级,网易( 三 )
文章图片
轻舟的Sidecar在部署架构上采用per-pod模式 , 取代了cNginx的per-node模式 , per-pod在隔离性、安全性、扩展性、升级风险等方面更加友好 。 此外 , cNginx只开启client-sidecar , 只拦截Outbound流量 , 为了充分发挥ServiceMesh架构的优势 , 轻舟启用both-sidecar注入 , 在安全、遥测、路由、限流、故障注入、负载控制等方面能力更加完整 。 对于业务方最关心的请求延时问题 , 轻舟通过SR-IOV网络增强、eBPF短路socket、xDS协议优化等方式增强容器网络和数据面性能 , 使延时降低100%以上 。
ServiceMesh2.0的技术选型
ServiceMesh2.0是基于Istio+Envoy构建的 , 为什么会是这样的技术选型呢?
冯常健表示:“其实在选型之前 , 我们也做了很多调研工作 , 基于标准化、扩展能力、技术风险、研发成本等多种因素 , 综合考虑了很多开源或自研方案 , 之所以选定Istio+Envoy , 主要是因为以下四种原因 。 ”
Istio和Envoy都是云原生社区开源产品 。 云原生是下一个技术浪潮 , 面向云原生的架构可以快速获得社区的技术红利 , 而且云原生社区活跃度高 , 版本迭代快 。 Envoy拥有不低于Nginx的转发性能 , 但在治理能力和控制能力(UDPA)方面 , 却比Nginx灵活得多 。 Istio是Envoy的黄金搭档 , 作为从Kubernetes上长出来的原生ServiceMesh控制面框架 , 比较亲和容器化场景 。 Envoy支持协议和插件扩展 , 以满足除HTTP之外的其他L4/L7协议 , Istio也可以通过MCP和API能方式扩展控制面对注册中心、配置中心、CRD的支持 。 这种丰富的扩展能力不仅能够实现ServiceMesh , 将来也能实现DBMesh、RedisMesh等等 。 近几年 , Kubernetes通过工作负载和CRD抽象给基础设施系统设计带来了巨大变革 , Istio+Envoy对微服务流量和服务治理的良好抽象 , 让我们可以看到了通过ServiceMesh来统一服务层系统设计的可能性 。 对集团来说 , 统一服务化层的技术栈 , 沉淀技术资产实现跨事业部的复用 , 能够极大降低研发成本 。实践ServiceMesh还有哪些问题?
作为ServiceMesh实践者 , 对于想要实践ServiceMesh的企业 , 冯常健给出了以下三个建议:
首先 , 要充分认识到ServiceMesh架构改造的必要性 , 想清楚当前技术架构的痛点在哪 , 用ServiceMesh解决什么问题 , 能为自己的业务带来什么样的价值;
其次 , 要审视当前的组织文化 。 ServiceMesh作为一个统一的服务治理层 , 汇聚了大量原本其他技术平台的能力 , 必然会涉及到对基础技术平台和周边系统的改造 。 这时候尤其需要技术管理者制定战略目标 , 为开发、架构、运维等多个团队通力配合扫清障碍 , 这是预判ServiceMesh能否落地的重要因素 。
最后 , 关于ServiceMesh演进路径问题 。 微服务化是前提 , 业务系统没有完成微服务化改造 , 就不存在ServiceMesh建设的基础 。 微服务化架构下 , 我认为先完成容器化改造和完善周边平台(全链路监控、日志平台、CI/CD)建设之后 , 再进行ServiceMesh演进是一条稳妥的路径 , 否则在系统运维效率和服务稳定性方面存在极大风险 。 当然 , 对于没有能力成立基础架构团队的企业来说 , 外采云厂商提供的成熟产品和咨询也是一个替代方案 。
从整个业界的发展趋势来看 , ServiceMesh正处于Gartner技术成熟曲线中的期望膨胀期 。 冯常健表示 , 目前ServiceMesh发展呈现两个特征:
观众多 , 选手少 。 ServiceMesh技术在业界关注度高 , 当人们谈论微服务架构的时候 , 必不可少都会谈ServiceMesh , 但是目前看到的落地实践均出自互联网头部公司 , 大公司资源充足愿意投资技术 , IT基础设施完善 , 有技术沉淀 , 能应付ServiceMesh的复杂性 , 而中小型公司和传统企业基本还处于观望状态 。 ServiceMesh技术的商业价值还处于探索阶段 。 几乎所有的云厂商都提供ServiceMesh服务 , 但是目前这种云服务同质化严重 , 缺少场景化的产品形态封装 , 难以满足用户对于平滑演进的诉求 , 未来需要依靠更多贴近业务的最佳实践来打磨产品 。ServiceMesh架构虽然通过业务和基础平台的解耦降低了整体服务化术栈的熵 , 但是却增加了其所在的基础平台本身的复杂性 , 除了数据面性能需要持续优化之外 , 控制面组件的运维复杂性、可观测性欠佳引起的排障困难、Sidecar对中间件Mesh场景的支撑能力等都是ServiceMesh未来发展需要解决的问题 。
推荐阅读
- 小米科技▲卢伟冰再次发力,全球首发骁龙768G,5G新机将在两天后发布!
- 快科技最贵或达5000元,苹果头戴耳机更多细节曝光:包含两款
- 科技迷7nm版年底流片,要放弃美国代工?国产x86转向三星台积电代工
- 骊微电子科技PD充电器应用方案,PN8161+PN8307H高集成18W
- 快科技小米高管都是外人?雷军透露了一个秘密
- 靓科技解读Thing,a16z、5.15亿美金的数据加密股票基金:找寻下一个Big
- 王伯伯说科技流畅用三年,即将开学的学生党准备好了吗?三款高配低价千元机
- 知叔达科技中芯国际早已料到,成功绕开了光刻机,怒了!荷兰ASML再次失约
- 小熊带你玩科技数据成粤企生产新要素,工业互联网深调研〡从经验依赖到数据驱动
- 每日科技果粉大批华人再掀归国潮,美利坚的钱“不香了”?,硅谷科技人才流失