Service Mesh 在『路口』的产品思考与实践业务逻辑 SDK 协议编解码 服务发现 负载均衡 熔断限流 服务路由 …… 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 每次升级都要重新发布应用 升级成本高 版本碎片化严重 中间件演进困难6/39 微服务治理与业务逻辑解耦 Part 1: 为什么需要Service Mesh? Service 业务逻辑 SDK 协议编解码 熔断限流 服务路由 …… Service 业务逻辑 轻量级 SDK 协议编解码 Sidecar (MOSN) + 服务发现 负载均衡 熔断限流 服务路由 …… - 专注业务实现 - 无需感知Mesh - 专注服务间通讯和相 关能力 - 与业务逻辑无关 将SDK客户端 的功能剥离 混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 也有各种功能, 每次升级都要重新发布应用 业务进程专注于业务逻辑 SDK 中的大部分功能, 拆解为独立进程, 以 Sidecar 的模式运行 将服务治理能力下沉到基础设施,实现独立演进,透明升级7/39 异构系统统一治理 Part 1: 为什么需要Service Mesh? 多语言、多协议 图片来源:https://www.redhat.com/en/topic0 码力 | 40 页 | 15.86 MB | 6 月前3
Service Mesh的实践分享Cluster(HTTP) 接入难度 容易。打入依赖包即可 容易。需依赖SDK 容易。需依赖SDK 编码难度 容易。IDL接口规范 容易。IDL接口规范 难。需要自行处理HTTP请求和 响应(目前还没有生成HTTP sdk) 应用侵入性 侵入性大。复杂客户端会给 应用造成负担,包括资源占 用、依赖冲突等等 侵入性小。SDK只有简单的寻址和序列化/ 反序列化的功能 无侵入性。应用自行调用 运维难度 主要职责:备份流量、临时流量、非主要流量 • 高可用架构上的补充:sidecar是很美好,但总有一些时候,你的 sidecar挂掉时,你的客户端是不想/不能跟sidecar一起死的。此时 唯一能救火的,就是客户端能够自动切换(sdk自带),并且有 备份(remote proxy)可用 • 运维的便利性,如 • 升级Local Proxy自动切换流量到Remote proxy,应用无感知,能轻易实 现滚动升级 • 临时排查Local 跨机房多活问题 • 性能问题 • 宠物对待 • API不友好问题 • 不能unwatch • 需要花费很大力气进行迁移和替换PHP Thrift效率低 • 数量众多PHP应用,开发php-sdk over thrift • 在客户端进行序列化,减少一次协议转 换的消耗 • 与Java应用在架构上呼应,保持架构的一 致性 • 然而,实际上PHP Thrift效率低比内置 的HTTP模块慢得多0 码力 | 30 页 | 4.80 MB | 6 月前3
陌陌Service Mesh架构实践服务量级的增长使得Java应用的服务治理问题 也逐渐暴露出来9/24 问题 /02 借助Service Mesh解决现有架构痛点10/24 架构痛点分析 服务治理能力滞后 非Java应用 Java应用 SDK迭代进度缓慢 SDK推广升级缓慢 危害 无法实现架构统一 稳定性受损、引发故障 架构方案受限 …11/24 引入Service Mesh 是否足够成熟 是否有替代方案 是否可接受成本 是否能兑现价值 数据平面部署方式 容器化运行方式 • sidecar模式 • 与业务进程相同Pod不同Container 陌陌微服务容器化部署比例在80%以上 并且还在进一步推进 业务接入方式 • 研发人员:升级SDK版本 • SRE:发布系统配置发布项 sidecar模式部署17/24 数据平面升级方式 – 平滑升级机制 平滑要求 • 业务进程不重启 • 流量保持不变 方案选择 • FD迁移 vs 服务器消耗增加约10% 分配方式 内存资源 服务器资源 维持现有内存使用率与 服务器配置的最坏情况 实际需预留 600M内存22/24 数据平面兼容原有架构 对接原有系统 • 使用原有系统SDK、私有协议 直连访问 兼容未升级服务 • Proxy Agent支持以原有通信 协议处理请求、发起调用23/24 总结与展望 实践感悟 • Service Mesh通过一种全新的架构理念,系统地解决了微服务领域的关键架构痛点0 码力 | 25 页 | 1.25 MB | 6 月前3
蚂蚁金服网络代理演进之路APP APP APPService Mesh Service 业务逻辑 SDK 协议编解码 服务发现 负载均衡 熔断限流 服务路由 …… Service 业务逻辑 轻量级SDK 协议编解码 Sidecar (MOSN) 服务发现 负载均衡 熔断限流 服务路由 …… 将SDK客户端 的功能剥离 Sidecar专注服务间通讯 混合在一个进程内, 应用既有业务逻辑,0 码力 | 46 页 | 19.93 MB | 6 月前3
阿里巴巴核心应用洛地 Service Mesh 的挑战与机过打通技术鸿沟三位一体,构建经济共同体 技术社区 内部支撑 商业赋能 技术输入 反哺增强 标准化生产 场景验证#2 阿里巴巴在落地 Service Mesh 中遇到的挑战#1 在 SDK 无法升级的情形下如何实现应用的 mesh 化 •没有人力修改 RPC-SDK,应用不想升级 1. Istio 通过 iptables NAT 表所使 用到的 nf_contrack 内核模块效率 低下 2. 与 AliOS 团队探索出了基于0 码力 | 22 页 | 6.61 MB | 6 月前3
蚂蚁金服双十一 Service Mesh 超大规模落地揭秘解耦了业务开发与基础团队之前的耦合 应用代码 业务应用开发 基础设施开发 Mesh 化10 三、方案落地 方案落地11 最终选型:自研数据面+轻量 SDK,我们给出的答案是 MOSN。 方案落地-选型 开源/自研:全部迁移到 envoy?不现实,自有协议+历史负担。 SDK/透明劫持:运维和可监控性不好,性能不高,风险不太可控。12 方案落地-目标架构 MOSN APP Pod MOSN APP0 码力 | 26 页 | 2.71 MB | 6 月前3
蚂蚁金服Service Mesh渐进式迁移方案为了兼容RPC应用和k8s(微服务)的服务注册模型,需要为每个RPC接口提供DNS支持 • 未来Serverless中的Function也计划提供DNS寻址支持 • 可能会有更广泛的使用场景 ü 演进思路 • 简化原有SDK (短期需求) • 同时引入域名和DNS,实现通用寻址 (长期目标) 引入DNS寻址方式(基于域名和DNS的Naming Service)Pod: 192.168.1.103 客户端通过域名来对服务进行访问 https://github.com/coredns/coredns/pull/1822 https://tools.ietf.org/html/rfc2136 https://cloud.google.com/sdk/gcloud/refere e/dns/record-sets/transaction https://docs.aws.amazon.com/zh_cn/R oute53/latest/APIReference/API_Chang0 码力 | 40 页 | 11.13 MB | 6 月前3
Service Mesh 高可用在企业级生产中的实践熔断20/总页数 治理策略 & 高可用 • 微服务高可用设计手段 • 限流 • 熔断 • 负载均衡+实例容错 Spring Cloud Service Mesh Config Server SDK Sidecar21/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 对于一个应用系统来说一定会有极限并发/请求数,即总有一个TPS/QPS阀值, 如果超了阀值则系统0 码力 | 38 页 | 1.38 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路需要满足多种体系:Service Mesh,Sofa和社区主流开发框架 Service Mesh落地要面临的实际要求选择开源产品,还是选择自研? 起点:开源 起点:自研 全新打造;或依托现有SDK Fork,增强,扩展,定制,集成 回馈社区,反哺开源 维持版本更新,同步升级 未来肯定会开源 可扩展和可定制化是必备的 可 控 性 社 区 支 持 技术输出 内部落地 如何让开源产品接受我们的改动?0 码力 | 37 页 | 7.99 MB | 6 月前3
共 9 条
- 1













