蚂蚁金服网络代理演进之路
• 减少握手延迟 • 代价:握手前发送的数据不能 保证防重放攻击,因此要求应 用程序自己保证防重放攻击 Small Ticket • 自定义Session Ticket编码格式 • 160 byte -> 76 byte • Session Ticket扩展 用于会话复用,加速握手过程 • Cached-info扩展 缓存证书等服务端信息,避免 再次握手时重复传输数据 • ECDHE-keyshare扩展 就近就优海外接入,智能调度 § 蚂蚁全球加速节点,全协议支持 § 支持UDPA § QUIC/HTTP3 § 接入层容器化,混部 § 支持QUIC协议的LB建设 § Web Assembly模块扩展东西流量的服务发现与路由 F5(ipvs) APP APP APP APP 配置中心 APP APP APP APP Proxy APP APP APP APPService SOFAMosn是一个云原生安全网络代理 为什么自研golang版本? 跨团队合作需要考虑技术栈落地成本 Golang性能,成本符合蚂蚁实际需求 近十年的网络代理研发,运维经验SOFAMosn模块与能力划分SOFAMosn协程模型 ü 一条TCP连接对应一个Read协程,执行收包,协议解析 ü 一个请求对应一个worker协程,执行业务处理,proxy和Write逻辑SOFAMosn能力扩展0 码力 | 46 页 | 19.93 MB | 5 月前3蚂蚁金服 API Gateway Mesh 思考与实践
私有协议(WS、Dubbo、Bolt 等) 一般不需要 HTTP to 内部 RPC 协议 基于 Host、Path 等路由 基于 Service 路由 强依赖(Hmac\Oauth\JWT\Session 等) 弱依赖(RBAC) 强依赖(RateLimiter、Quota 等) 弱依赖 强依赖(IP 限制、WAF、CORS 等) 弱依赖 负载均衡 硬负载(LVS、Nginx) 软负载(服务发现)5/21 核心系统上云12/21 蚂蚁金服 API Gateway Mesh 架构 数据流 控制流 Ops 流13/21 API Gateway Mesh Based on MOSN MOSN 能力与模块 MMTP Protocol HTTP\SOFARPC\Dubbo Gateway Filters Service Discovery Router14/21 API Gateway Core0 码力 | 22 页 | 1.72 MB | 5 月前3微博Service Mesh实践
服务治理理Service Mesh Meetup · BeiJing 跨语⾔言服务化⽅方式对⽐比 �11 微博Service Mesh实践 - WeiboMesh Http代理理 RPC模块 Agent代理理 研发成本 低 ⾼高 中 维护成本 低 ⾼高 中 使⽤用成本 低 低 中 治理理功能 中 ⾼高 ⾼高 扩展能⼒力力 低 中 ⾼高Service Mesh Meetup · LB(负载均衡) ➢ Endpoint(服务节点的抽象) ➢ Protocol(Motan2/传输协议+Simple/序列列化协议)Service Mesh Meetup · BeiJing Cluster 模块 �18 微博Service Mesh实践 - WeiboMesh WM/ Client request Server WM/ Server ⽬目标机器器 请求机器器 Client Cluster BeiJing 和Istio在业务感知上的区别 �39 微博Service Mesh实践 - WeiboMesh 服务透明 VS 模块耦合 Istio:对服务透明 • 云原⽣生 • IPtables流量量拦截 • 服务⽆无感知 WM:模块化耦合 • 耦合度可选 • 定制化开发Service Mesh Meetup · BeiJing WM未来发展⽅方向 �40 微博Service0 码力 | 43 页 | 1007.85 KB | 5 月前3Service Mesh的实践分享
换的消耗 • 与Java应用在架构上呼应,保持架构的一 致性 • 然而,实际上PHP Thrift效率低比内置 的HTTP模块慢得多 • 性能消耗比JSON转Thrift还要大 • 最终废弃了PHP Thrift模块,直接使用 自带的c写的http模块 + +Daemonset共享模式下Proxy资源的竞争 • Proxy作为资源的一种,隔离性很重要 • 多个Pod共享一个Proxy0 码力 | 30 页 | 4.80 MB | 5 月前3云原生开放智能网络代理 MOSN
服务鉴权 • TCP、Http、SOFA • 透明劫持 • 平滑升级 • 可观测性 • 网络包过滤器 • 协议包过滤器 • 协议扩展 • 可观测性扩展 • 路由扩展 • 集群管理扩展 模块化 安全 智能 高性能3/10 MOSN 助力业界最大规模之一的 Service Mesh 实践 核心支付链路覆盖 容器规模 几十万 峰值 QPS 千万 CPU 0%~2% MEM 15M Demo 安全审计 社区 更多的协议及服务框架支持 Dubbo、SpringCloud、 RocketMQ、gRPC、HTTP3、 MQTT、QUIC、TLS1.3 等 多协议 支持模块化 自适应限流 多协议深度扩展能力 多进程 WAF WebAssembly 兼容用户态协议栈 Lua 支持 核心和开放能力 适配 Istio,兼容 UDAP 协议 Zookeeper,Etcd0 码力 | 12 页 | 1.39 MB | 5 月前3Service Mesh Meetup #3 深圳站
如何提升工程效率?DevOps • CI/CD 实战 • ServiceMesh • 踩过的一些坑 • Q&A技术架构的演进 • 单体架构 • 一个框架 • 一个数据库 • 分模块整合架构(前后端分析) • 不同的框架或业务模块 • 多种数据源 • 微服务架构 • 各种语言、各种框架或子系统 • 各种数据源 • ServiceMesh一般的开发流程 • 1. 开启一个新的 feature; •0 码力 | 45 页 | 18.62 MB | 5 月前3SOFAMOSN持续演进路径及实践分享
RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFAMOSN数据流SOFAMOSN数据流持续演进路径 & 技术案例能力 0.1.0 0.2.0 0.3.0 0.4.0 Ø TCP代理/7层通用代理 Ø 简单匹配路由 Ø 集群管理 MOSN<-> Service p Client模拟方式:通过蚂蚁内部压测平台建立10w条SOFARPC链接 p 压测内容: 1K 请求/响应持续演进实践总结 ü 架构上,从一开始就遵循分层设计,模块解耦,统一编程模型接口,保证足够的架 构扩展性。 ü 性能上,针对IO、协议、内存、协程进行持续优化。相比最初版本,SOFARPC 协 议上对 0.1.0 版本 QPS 提升了 50%,内存使用减少了0 码力 | 29 页 | 7.03 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
Event Handler Pool worker worker Worke r data Log Writer Pool send encode Q u e u e C模块划分 11要点总结 12 Ø模块化,分层解耦 Ø统一的编程模型接口 Ø可扩展的事件驱动模型 Ø可扩展的路由/后端管理机制 Ø更好的吞吐量3 能力核心能力 1 网络处理 •网络编程接口 •链接管理 •事件机制0 码力 | 44 页 | 4.51 MB | 5 月前3大规模微服务架构下的Service Mesh探索之路
实现跨注册中心的服务调用 ü 支持异构 • 实现方式不同的注册中心 • 向Service Mesh的过渡 • 两个非Service Mesh的打通 ü 终极形态 • 跨集群 + 异构同时支持 • 配合其他模块实现更灵活的服务间通讯 增强版Pilot:梦幻级服务注册和治理中心 服务 治理 中心 服务注册中心 A P I 接 口 抽 象 模 型 Sofa Registry K8S实现 Consul实现 内部使用同样产品落地 ü 开源的动机 • 吸引社区,谋求合作,开源共建 ü 开源项目的维护 • 内部使用,保证持续投入 • 请放心Sofa Mesh的合作模式:多层次全方位开放 基础类库 功能模块 完整产品 解决方案 服务注册 熔断 RPC 路由规则 负载均衡 限流 加密 认证 Golang Sidecar 增强版本 Pilot Edge Sidecar 服务治理 中心0 码力 | 37 页 | 7.99 MB | 5 月前3阿里巴巴核心应用洛地 Service Mesh 的挑战与机过
SDK 无法升级的情形下如何实现应用的 mesh 化 •没有人力修改 RPC-SDK,应用不想升级 1. Istio 通过 iptables NAT 表所使 用到的 nf_contrack 内核模块效率 低下 2. 与 AliOS 团队探索出了基于 userid 和 mark 标识流量的透明拦 截方案,基于 iptables 的 mangle 表实现了一个全新的透明拦截组件#2 短时间内支持电商业务复杂的服务治理功能0 码力 | 22 页 | 6.61 MB | 5 月前3
共 13 条
- 1
- 2