蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 5 Ø定义编解码核心数据结构 üMesh处理三段式:Headers + Data + Trailers Ø定义协议Codec核心接口 ü编码:对请求数据进行编码并根据控制指令发送数据 ü解码:对IO数据进行解码并通过扩展机制通知订阅方 •定义扩展机制通知解码事件STREAMING 6 Ø定义Stream模型 ü 向上确保协议行为一致性 为网络协议请求/响应提供可编程的抽象载体 ü 考虑PING-PONG,PIPELINE,分帧STREAM三种典型流程特征 Ø定义Stream生命周期,核心事件 Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters bytes stream stream bytes Network Network Protocol Stream Proxy Proxy Protocol Stream Network Network线程模型 0.1.0 9 Client Listener Read / Codec Read / Codec Read / Codec accept Stream Event Handler Pool0 码力 | 44 页 | 4.51 MB | 5 月前3蚂蚁金服网络代理演进之路
再启程 03前世 F5 BigIP Netscaler自研四层网络代理 2011 2014 2018 未来 Ø 全面使用DPDK技术重构 Ø EBPF,XDP Ø 可编程交换芯片(P4语言) Ø 四层负载均衡-IPVS Ø NAT网关蚂蚁七层网络代理 Google Spanner?蚂蚁七层网络接入代理 Spanner蚂蚁七层网络接入代理 AGNA (Ant Global Network 微贷 科技开放 物联网 Spanner LVS(四层负载) DNS 网络控制面 LDC1 Spanner Spanner APP APP APP APP Keycenter HTTP1 TLS1.2 MMTP Mtls MQTT HTTP2 TLS1.3 QUIC 国密 硬件加速 安全合规 Spanner LVS(四层负载) DNS LDC2 Spanner Spanner 网络探测 连接建立 传输+保持 通道复用 复合建连 握手优化 短连补偿 智能心跳 数据压缩 质量模型 自动重试 云端补偿 柔性建连 假连淘汰 动态超时 § 终端策略覆盖移动网络难点 § 优化对业务透明 § ROI考虑 好网更快 弱网更好 协议优化 支付宝网络接入层架构示意 § 关键词:动态Hpack + PB + 动态字典 + Zstd通信协议&架构持续升级 多终端&协议接入0 码力 | 46 页 | 19.93 MB | 5 月前3SOFAMOSN持续演进路径及实践分享
务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFAMOSN数据流SOFAMOSN数据流持续演进路径 & 技术案例能力 0.1.0 0.2.0 0.3.0 0.4.0 Ø TCP代理/7层通用代理 Ø 简单匹配路由 Ø 集群管理 & 基本负载均衡(RR、 RANDOM) Ø SofaRpc及HTTP/1.1、 HTTP/2.0支持 Ø 进程平滑升级 Ø SOFAMesh集成,支持 core) 8100 122ms 70M 393% New http2(4 core) 17200 57ms 40M 395%技术案例 – 长连接网关RawEpoll模式 经典Golang netpoll模型 ² 问题:协程数量与链接数量成正比,大 量链接场景下,协程数量过多 u Stack内存开销 u Read buffer开销 u Runtime调度开销 参考阅读:million-websockets-and-go Service p Client模拟方式:通过蚂蚁内部压测平台建立10w条SOFARPC链接 p 压测内容: 1K 请求/响应持续演进实践总结 ü 架构上,从一开始就遵循分层设计,模块解耦,统一编程模型接口,保证足够的架 构扩展性。 ü 性能上,针对IO、协议、内存、协程进行持续优化。相比最初版本,SOFARPC 协 议上对 0.1.0 版本 QPS 提升了 50%,内存使用减少了 40%;HTTP/20 码力 | 29 页 | 7.03 MB | 5 月前3金融级云原生 PaaS 探索与实践
Server Aggregation Layer 异地多活架构 同城双活架构 K8S API Server 基础发布运维 跨集群应用 资源管理 IaaS层(Aliyun/OpenStack/VMWare/Bare Metal) PaaS 核心层 核 心 流 程 两地三中心架构 跨机房和地域统一应用运维 容器运行时 (Docker/Pouch/安全容器) CNI Plugins (VLAN/VXLAN/VPC (VLAN/VXLAN/VPC Router/ENI) CSI Plugins (NAS/OSS/Cloud Disk/Ceph) 网络接入 (SLB/ALB) 容 器 层 跨集群管理 单元化能力 容器镜像管理 批次发布 原生资源管理 Pod伸缩管理 集群伸缩管理 变更管控 配额管理 运维原子操作 精细化调度 接入层流程调拨 应用层流量调拨 跨集群状态 分发/汇聚 数据层流量调拨 (DRM/Scheduler/Message) Mesh流调拨和治理 弹性建站/下站 容器腾挪/迁移 容灾切换和恢复 应急预案管理 … 分钟级容灾切换和恢复 全面变更风险管理 无限弹性可扩展 业务架构 产品层 云原生 PaaS 产品架构方案 7/209/20 二、多集群管控 多集群管控10/20 为什么要有集群联邦 • 异构屏蔽: 底层集群变化; • 统一管控: 业务弹性建站管控统一;0 码力 | 20 页 | 1.71 MB | 5 月前3Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展
are deployed alongside application code, without the application needing to be aware. 服务网格是一个基础设施层,用于处理服务间通信。云原生应用有着 复杂的服务拓 扑,服务网格负责在这些拓扑中实现请求的可靠传递。 在实践中,服务网格通常实 现为一组轻量级网络代理,它们与应用程 序一起部署,但对应用程序透明。什么是Service 身份认证 通信加密 权限控制 ... 调用追踪 指标收集 ...什么是Service Mesh?- 从网络的视角 Service Mesh关注点 网络视角: Service Mesh是一个主要针对七层的网络解决方案,解决的是服务间的连通问题Service Mesh是下一代的SDN吗? 通信网络 l 互不兼容的专有设备 l 基于IP的通信缺乏质量保证 l 低效的业务部署和配置 ... 微服务系统 Layer 2 MAC/VLAN SDN Layer 1 Input Port SDN SDN : 主要关注1到4层 Service Mesh: 主要关注4到7层 类似的问题,不同的网络层次,通信网络的解决方案能为Service Mesh提 供哪些借鉴?通信网络的解决方案:SDN微服务应用层通信的解决方案-Service Mesh HW Adapter Proxy Service Proxy0 码力 | 27 页 | 11.99 MB | 5 月前3陌陌Service Mesh架构实践
架构痛点与解决思路 Service Mesh落地方案3/24 背景 /01 陌陌微服务体系演进历程4/24 单体应用到微服务 单体应用 微服务架构 应用拆分 加入PHP API层 PHP API层成为后续多语言服务治理的关键挑战5/24 微服务体系演进 MOA 1.0微服务体系演进历程 自研服务框架产品MOA(Momo service Oriented Architecture)于2013年初上线推广 复用连接并适当设置连接数 Agent内部 • 对象池化:减少资源消耗与GC压力 • 响应等待机制:非阻塞等待 两次请求转发小于0.2ms Agent外部 • 提升服务器性能(缩减耗时绝对值) API层接口耗时增长小于6%21/24 数据平面资源占用 与业务容器共享CPU、内存资源配额 为Agent JVM分配256M内存资源 服务器消耗增加约10% 分配方式 内存资源 服务器资源 维持现有内存使用率与0 码力 | 25 页 | 1.25 MB | 5 月前3SOFAMesh的通用协议扩展
服务使用的接口,方法,参数语义无法匹配 ISTIO 的路由模 型 • 一个应用上部署了多个 RPC 服务,每个服务有自己的版本 • …ISTIO 控制平面路由的抽象模型 INBOUND OUTBOUNDSOFA 服务注册模型落地一个微服务框架需要的工作 • 部署 ZK 集群作为 RPC 框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 DUBBO 协议支持(开箱即用模式下也可以省掉)DNS 寻址目标 • 允许应用把接口当做域名来访问远端服务 • 支持在 Kubernetes DNS 之上构建更结构化的域名体系 • 支持跨集群的服务寻址 • 支持单应用多服务的部署模型 bolt://com.yourcompany.youservice:12220POD 落地形态 Services, PODS & DNS CORE DNS com.svc.user -> 1720 码力 | 28 页 | 4.73 MB | 5 月前3Service Mesh 高可用在企业级生产中的实践
限流无非就是针对超过预期的流量,通过预先设定的限流规则选择性的对某些请 求进行限流“熔断”。22/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 接入层限流 • 调用外部限流服务限流 • 切面层/代理层限流 常用限 流架构23/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 拒绝策略 • 延迟处理 • 特权处理 常用限 流策略24/总页数0 码力 | 38 页 | 1.38 MB | 5 月前3微博Service Mesh实践
…… RestFul API 业务部⻔门 Motan ➢ 业务部⻔门语⾔言种类繁多 ➢ 微服务体系建设不不完善/重复 ➢ ⽹网络抖动,dns不不稳定 ➢ 4,7层冗⻓长调⽤用链及资源消耗 4,7层调度Service Mesh Meetup · BeiJing 趋势 �6 微博Service Mesh实践 - WeiboMesh 微服务 1 容器器化 2 DevOps0 码力 | 43 页 | 1007.85 KB | 5 月前3Service Mesh结合容器云平台的思考和实践
…云平台微服务演进之Service Mesh云平台微服务演进之Service Mesh Pilot Envoy • 服务发现 • Envoy生命周期管理 • Envoy配置下发 • 服务模型 • 配置模型 • 负载均衡 • 智能路由(灰度、蓝绿) • 流量管理(超时、重试、熔断) • 故障处理 • 故障注入 • … Mixer • 前提条件检查:安全认证,黑白名单, ACL检查0 码力 | 28 页 | 3.09 MB | 5 月前3
共 19 条
- 1
- 2