蚂蚁金服Service Mesh渐进式迁移方案Service Mesh Meetup #4 上海站 蚂蚁金服Service Mesh 渐进式迁移方案 2018.11.25 敖小剑 @ 蚂蚁金服 中间件 龙轼 @UC 基础研发部1 Service Mesh演进路线 1 2 实现平滑迁移的关键 3 DNS寻址方案的演进 4 5 总结 DNS寻址方案的后续规划ü 对未来长期目标的认可 • Service Mesh(带控制平面,如Istio) 还有很多应用没有实现微服务化 • 还有很多应用没有运行在kubernetes之上 • Istio目前还不够稳定,也无法原生支持我们的规模 • 现有系统中的众多应用不可能一夜之间全部迁移 ü 最重要的:平滑迁移 • 微服务 + Service Mesh + Kubernetes 是目标 • 但是如何从现有体系向目标迈进,必须给出可行的实践指导 ü Roadmap • 预计2019年初 )非常自然 • 容易落地 • 快速达成短期目标 ü 缺点是再往后走 • 由于没有k8s的底层支持,就不得不做大量工作 • 尤其istio的非k8s支持,工作量很大 • 而这些投入,在最终迁移到k8s时,又被废弃 ü 结论: • 不符合蚂蚁的远期规划(k8s是我们的既定目标) • 会造成投资浪费(k8s铺开在即) 演进路线2分析 部署在 非k8s上 Service Mesh (Sidecar模式)0 码力 | 40 页 | 11.13 MB | 6 月前3
 Service Mesh 在『路口』的产品思考与实践Pod SOFA 应用 SOFA SDK SOFA SDK 安全加固 基于 SDK 的传统微服务 基于 Sidecar 的 Service Mesh 微服务 互联互通,平滑迁移,灵活演进20/39 Part 3: 蚂蚁金服的产品实践 大规模场景下的服务发现 • Pilot 的问题 • 集群容量无法支撑海量数据 • 全量推送性能差 • 沿用 SOFA 管控性和可观测性不好23/39 Part 3: 蚂蚁金服的产品实践 平滑迁移 初始状态24/39 Part 3: 蚂蚁金服的产品实践 平滑迁移 透明迁移调用方25/39 Part 3: 蚂蚁金服的产品实践 平滑迁移 透明迁移服务方26/39 Part 3: 蚂蚁金服的产品实践 平滑迁移 终态27/39 Part 3: 蚂蚁金服的产品实践 多协议支持0 码力 | 40 页 | 15.86 MB | 6 月前3
 蚂蚁金服网络代理演进之路镜像中心 流量镜像 流量镜像 TLS,国密 服务鉴权 流量控制 TLS,国密 服务鉴权 流量控制蚂蚁金服率先大规模落地SOFAMesh UDPA 安全 统一数据 平面API 存量连接无损迁移 提升5倍发布效率 TLS双向加密 支持国密算法 WAF 流量镜像 多协议 SOFARPC Dubbo HTTP1.1/2 平滑升级 性能 单跳CPU增加5%消耗 0.2ms RT 蚂蚁 流量镜像,RBAC鉴权SOFAMosn能力扩展 心跳检查在Service Mesh场景下网络代理有着不同于接入层的挑战 • 无论应用是否接入Mesh,接入了多少Mesh,都需要保证可正常处理请求,做到可 灰度、可回滚的兼容,平滑迁移 • 通用的框架能力(SOFAMosn/Envoy)无法直接满足复杂的、定制的业务能力,需 要进行针对性的扩展实现 • 需要融合主站已有的应用体系,如注册中心、配置中心等,这些也需要扩展实现 • • 大规模场景下需要面对的资源占用,自动化问题、性能问题,稳定性问题兼容问题 § 不同的应用,部分Mesh化 § 同一个应用,部分Mesh化 § 蚂蚁基础设施适配 § TLS加密链路平滑迁移 Localhost or Iptables 透明劫持和加速大规模问题 10万+实例 动态服务发现 运维 § 对控制平面性能,稳定性带来巨 大挑战 § 单实例数万路由节点,数千路由 规则,不仅占用内存,对路由匹0 码力 | 46 页 | 19.93 MB | 6 月前3
 Service Mesh的延伸 — 论道Database Mesh-> DELETE • UPDATE -> UPDATE • DELETE -> INSERT 隔离级别 • 无隔离 • 版本控制 • 记录锁 • 影子表弹性伸缩:数据迁移 迁移监听 在线双写 离线迁移 数据源切换 冗余数据清 理治理监控 配置动态化 负载均衡 熔断 & 禁用 安全 & 权限 & 脱敏 APM现有实现方案对比 客户端 • 支持任意数据库 • 数据库连接数占用高0 码力 | 35 页 | 4.56 MB | 6 月前3
 蚂蚁金服双十一 Service Mesh 超大规模落地揭秘应用代码 业务应用开发 基础设施开发 Mesh 化10 三、方案落地 方案落地11 最终选型:自研数据面+轻量 SDK,我们给出的答案是 MOSN。 方案落地-选型 开源/自研:全部迁移到 envoy?不现实,自有协议+历史负担。 SDK/透明劫持:运维和可监控性不好,性能不高,风险不太可控。12 方案落地-目标架构 MOSN APP Pod MOSN APP Pod 新增新容器 销毁老容器 流量无损 正常运行中19 我们的方案-升级策略-无感升级-MOSN MOSN New MOSN 通知平滑升级 迁移监听套接字 解析Mosn配置 启动控制面服务 通知启动完成 关闭控制面服务 关闭数据面服务 迁移存量长连接 怎么做到的无损?20 四、分时调度案例 分时调度案例21 分时调度-背景 资源域A 资源域B 资源域A 资源域B X时刻0 码力 | 26 页 | 2.71 MB | 6 月前3
 陌陌Service Mesh架构实践数据平面升级方式 – 平滑升级机制 平滑要求 • 业务进程不重启 • 流量保持不变 方案选择 • FD迁移 vs 哨兵集群 原理 • sendmsg / recvmsg接口发送FD • 步骤:listener、存量连接、存量数据 Java实现 • 借助JNI与Netty Java实现FD迁移18/24 数据平面升级方式 – 发布流程 容器化发布方式 • 发布过程同时存在新旧两个Agent0 码力 | 25 页 | 1.25 MB | 6 月前3
 Service Mesh 高可用在企业级生产中的实践互联互通,平滑迁移 Spring Cloud & Dubbo Service Mesh Monolithic 混合微服务架构 Microservices • 微服务 & 单体 • Spring Cloud & Service Mesh7/总页数 运行时支撑服务 • 服务注册中心 • 服务网关 • 配置中心 混合微服务的互联互通 目标 • 互联互通 • 平滑迁移 • 灵活演进0 码力 | 38 页 | 1.38 MB | 6 月前3
 微博Service Mesh实践DiscoverService Mesh Meetup · BeiJing 正向代理理特点 �30 微博Service Mesh实践 - WeiboMesh ➢ 业务平滑迁移 ➢ agent故障转移,开关控制 ➢ 多发,超时精确控制 ➢ 适合⾮非云,混合云快速迁移Service Mesh Meetup · BeiJing 反向代理理配置 �31 微博Service Mesh实践 - WeiboMesh motan-service0 码力 | 43 页 | 1007.85 KB | 6 月前3
 SOFAMOSN持续演进路径及实践分享Ø X-Protocol协议扩展机制, 以及Dubbo支持 Ø 支持network/stream filter 扩展 Ø 支持WRR负载均衡 Ø 支持subset复杂匹配路由 Ø 无损平滑迁移 Ø ProtocolEngine协议扩展 机制 Ø 支持Router模式 Ø GRPC支持 Ø 协议自动识别 Ø 链式路由扩展 Ø 完善流量管理策略,包括 Retry、DirectResponse、 TLS扩展支持,支持自定义 证书获取 Ø RBAC Ø Tracing框架,已支持 SOFA Tracer Ø Metrics扩展,已支持 prometheus Ø 支持Mixer filter Ø 平滑升级迁移支持metrics Ø Access log Ø Listener log、Default log Ø IO、协议、前后端核心 metrics技术案例 – 协议自动识别 TLS链接 核心实现思路:0 码力 | 29 页 | 7.03 MB | 6 月前3
 严选 ServiceMesh 实践集群和容器集 群的服务治理能力 • 最大化发挥 Service Mesh 的 优势 灰度引流 • 服务间调用灰度引流 • 外域调用灰度引流 • 平滑迁移是 Service Mesh 在混合云架构落地的关键17/24 平滑迁移 • 边缘网关支持跨 LDC 访问 • 兜底路由:云内云外互备 • 访问控制(如白名单能力) • 灰度引流使架构透明化 • 服务间调用灰度引流 • 外域调用灰度引流18/240 码力 | 25 页 | 2.07 MB | 6 月前3
共 17 条
- 1
 - 2
 













