蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
无法保证上下游应用同时升级到Mesh模式 ü 基于RPC内容的流量调度 ü 升级窗口有限,方案必须简单高效 Ø运维体系,容器化建设等方面适配 ü 蚂蚁运维架构建立在流量调度的基础上 ü 容器管理平台更替快速进行中 ØGolang 性能,成本评估符合蚂蚁实际需求2 构架SOFAMesh 1SOFAMosn 2SOFAMosn内数据流 3NET/IO 4 Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters Ø提供可扩展的路由寻址能力 Ø提供可扩展的后端管理,负载均衡,健康检查能力 Ø维护上/下游核心指标转发流程 8 IO Read Codec Stream encode Q u e u e C模块划分 11要点总结 12 Ø模块化,分层解耦 Ø统一的编程模型接口 Ø可扩展的事件驱动模型 Ø可扩展的路由/后端管理机制 Ø更好的吞吐量3 能力核心能力 1 网络处理 •网络编程接口 •链接管理 •事件机制 •Metrics 收集 •TCP 代理 •TLS 支持 •TProxy 支持 •平滑 reload •平滑版本升级 多协议 •SOFA0 码力 | 44 页 | 4.51 MB | 5 月前3Service Mesh Meetup #3 深圳站
一个 .drone.yml 搞定(简单) • 原生 Docker 支持: 任何步骤都是在 Docker 内执行的(环境隔离) • Pipeline as code • 丰富的插件支持 • 极简的Web管理界面 • 其他: • Control PR build through comments(#2056) —> bradrydzewski removed this from To Do in 服务网格(Service Mesh)这个术语通常用于描述构成这些应用程序 的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服 务网格越来越难以理解和管理。 • 它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以 及通常更加复杂的运维需求,例如 A/B 测试、金丝雀发布、限流、 访问控制和端到端认证等。什么是 Istio • Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有 负载均衡、服务间认证、监控等功能,而不需要对服务的代码做任 何改动。 • 想要让服务支持 Istio,只需要在您的环境中部署一个特殊的 sidecar 代理,使用 Istio 控制平面功能配置和管理代理,拦截微服务之间的 所有网络通信。Istio 的特点 • HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡。 • 通过丰富的路由规则、重试、故障转移和故障注入,可以对流量行0 码力 | 45 页 | 18.62 MB | 5 月前3七牛容器云ServiceMesh实践
七牛容器云Service Mesh实践 冯玮 七牛容器云架构师 2018.11.25 Service Mesh Meetup #4 上海站Ingress Controller • 流量管理 • 安全管理 • 统一配置 • 反向代理Contour • 本质上还是Ingress Controller • Kubernetes深度整合 • Gimbal生态组件Contour特点 • 基于Envoy 兼容Istio生态,融入Service Mesh生态 • 南北向流量使用Envoy • 兼容Kubernetes标准Restful接口 • 统一的Kubernetes管理接口 • Gimbal生态 • 多集群入口流量整合管理 • 劣势 • 缺少大规模落地案例 • 功能/非功能仍需加强Contour & Istio • 南北向流量 • API版本共存(Istio & Kubernetes Contour支持Tracing能力 • 数据面共存 • 共用边车组件Envoy七牛现有Service Mesh体系 • Istio产品化 • 东西流量产品化 • 南北流量产品化 • TLS管理优化 • Contour增强 • 入口流量管控 • 跨集群调度 • 发展策略 • API版本兼容两种方式 • 数据面优先,控制面按需迭代七牛容器云Service Mesh发展 • 产品发展0 码力 | 15 页 | 3.86 MB | 5 月前3SOFAMOSN持续演进路径及实践分享
块设计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集成,支持 xDS on ADS Ø X-Protocol协议扩展机制, 支持subset复杂匹配路由 Ø 无损平滑迁移 Ø ProtocolEngine协议扩展 机制 Ø 支持Router模式 Ø GRPC支持 Ø 协议自动识别 Ø 链式路由扩展 Ø 完善流量管理策略,包括 Retry、DirectResponse、 HTTP Header add/delete、 流控、故障注入等 Ø 支持必要的admin接口性能 0.1.0 0.2.0 0.3.0 0 0实现问题: 1. syscall read较多,效率低下 2. 每个stream分配单独的goroutine处理, 调度开销高 3. 临时对象多,GC占比高 4. 基本实现了RFC中MUST部分,部分功 能需求上不匹配,如GRPC trailer实现技术案例 – HTTP/2.0优化 优化思路:适配MOSN框架,复用官方实现核心结构体和解析流程 Ø 框架适配 ü IO框架 ü 内存复用框架 ü workerpool协程池框架0 码力 | 29 页 | 7.03 MB | 5 月前3Service Mesh 微服务架构设计
Runtime Data Application s Traditional IT Function20年前春晚 20年后春晚 思考:为什么每年的春晚越来越无聊 其实不是春晚越来越不好,而是观众的需求越来越难满足,服务架构也如此。1 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍适应变化的微服务是什么样 微服 integrity:数据一致性难保证,面临分布式事物问题; Management:管理运维成本高,需要有成熟的DevOps平台,另外日志看查困难; Development and testing:开发测试成本高,依赖服务较多,Debug困难; Lack of governance:各服务可能技术栈不统一,不好统一管理;微服务和SOA究竟有什么区别 SOA MSASOA MSA 尽可能多的共享和复用 Mesh:Istio架构Service Mesh:Linkerd架构Service Mesh: OCTO-Mesh架构为了解决单体的复杂度问题,我们引入微服务架构 为了解决微服务架构下大量应用部署的问题,我们引入容器 为了解决容器的管理和调度问题,我们引入Kubernetes 为了解决微服务框架的侵入性问题,我们引入Service Mesh 总结:历史的规律总是那么相近 上帝的归上帝,恺撒的归恺撒,架构需要专注于业务的实现Q&A0 码力 | 36 页 | 26.53 MB | 5 月前3蚂蚁金服网络代理演进之路
ECDHE-keyshare扩展 将TLS1.3草案中的1-RTT机制通 过扩展的方式提前应用 • ECC-signature扩展 使用高效ECDSA签名算法的同 时,兼容广泛使用的RSA证书 按需握手 • 业务可根据需求灵活选择明文 或密文传输,提升业务效率 动态Record Size • 平衡吞吐与时延 高效 优化 灵活 TLS扩展安全合规能力持续升级 国密算法 • 拥抱监管 • 安全可控 • 金融科技 也有各种功能 业务进程专注于业务逻辑Service Mesh 为什么蚂蚁需要Service Mesh • 拥抱微服务,云原生 • 异构语言体系融合 • 统一服务治理 • 运维体系有利支撑 • 全局流量管理,打通南北,东西 • 金融级网络安全为金融业务而生的SOFAMesh Pod Spring Cloud 应用 SOFAMosn SOFA Mesh 控制面 Galley Inspector com/sofastack/sofa-mosn Written in go SOFAMosn是一个云原生安全网络代理 为什么自研golang版本? 跨团队合作需要考虑技术栈落地成本 Golang性能,成本符合蚂蚁实际需求 近十年的网络代理研发,运维经验SOFAMosn模块与能力划分SOFAMosn协程模型 ü 一条TCP连接对应一个Read协程,执行收包,协议解析 ü 一个请求对应一个worker协程,执行业务0 码力 | 46 页 | 19.93 MB | 5 月前3网易云Service Mesh的产品架构与实现
service-fabric-ben-spencer/ Kaola163yun.com 开发独立: 代码耦合度比较高,修改代码通常会对多个模块产生影响,操控难度大,风险高 上线独立: 单次上线需求列表多,上线时间长,影响面大 简化扩容: 由于业务多,每一次扩容需要增加的配置比较杂。一些不起眼的小业务虽然不是扩容的主要目 的,也需要慎重考虑 容灾降级:核心业务与非核心业务耦合,在关键时候互相影响 调用次数 调用时间 服务治理 日志分析 统计监控 Data Stream Kafka Storm集群 Hbase Hadoop Redis DDB NQS 监控平台 用户空间VPC 管理控制服务 云主机 云网络 云硬盘 UAS Agent 对象存储 UAS Server OpenStack 管控节点(主) 管控节点(备) 监控节点(主) 监控节点(备) 注册中心 控制中心163yun /agents/haproxy/haproxy.conf网易云容器服务逻辑架构 = Docker + Kubernetes + OpenStack + DevOps工具链网易云容器服务架构www.163yun.com 容器管理平台本身也是微服务 所有的多租户容器请求入口流量 对接多个业务:OpenStack, Kubernetes,所有PaaS,持 续集成,镜像仓库,计费,用 户,认证,…… 高可用,横向扩展 熔断,限流,降级0 码力 | 35 页 | 6.33 MB | 5 月前3微博Service Mesh实践
—Weibo MeshService Mesh Meetup · BeiJing �2 微博Service Mesh实践 - WeiboMesh CONTENTS 内容提要为什什么要做跨语⾔言服务化 • 需求 • 趋势Service Mesh Meetup · BeiJing 平台体系 微博Service Mesh实践 - WeiboMesh �4 Java Server Java Client 语⾔言Service Mesh Meetup · BeiJing Weibo Mesh 数据⾯面 �17 微博Service Mesh实践 - WeiboMesh ➢ Cluster(发现集群管理理,group + path) ➢ HA(⾼高可⽤用策略略) ➢ LB(负载均衡) ➢ Endpoint(服务节点的抽象) ➢ Protocol(Motan2/传输协议+Simple/序列列化协议)Service Req Res 插件化Service Mesh Meetup · BeiJing 基于MCS的流量量调度 �26 微博Service Mesh实践 - WeiboMesh Vintage 管理理系统 决策系统 Command DC1 Servers DC2 Servers DC1 Clients业务实战 • 正反向代理理 • 收益及总结Service Mesh Meetup0 码力 | 43 页 | 1007.85 KB | 5 月前3蚂蚁金服 API Gateway Mesh 思考与实践
spanner 特点: • 微服务网关 • 蚂蚁金服 RPC 协议 • 安全\鉴权\监控 • Netty 异步化 • 私有协议 MMTP 缺点: • API 网关变更风险 • 业务分级隔离需求 • 大促容量规划问题 HTTP/MMTP sofarpc10/21 去中心化网关架构(2016-2018) APP 去中心化网关架构 LB spanner APP1 Logic Logic response label=mesh 百分比灰度 基于 Label 的单机灰度 API Gateway Mesh 灰度能力建设17/21 云原生 API Gateway 思考 /0318/21 可管理性 功能 云原生南北向流量方案19/21 MOSN APP1 MOSN MOSN LB/Ingress APP1 MOSN MOSN MOSN Cloud A Cloud B LB0 码力 | 22 页 | 1.72 MB | 5 月前3蚂蚁金服Service Mesh渐进式迁移方案
Mesh时代的客户端和寻址方式 服务发现 加密 负载均衡 请求路由 目标服务 的标识 序列化 链路追踪 故障注入 日志 监控 Metrics 熔断 限流 服务降级 前置条件检查 身份认证 密钥管理 访问控制 …… 下沉到 Service Mesh 轻量级客户端 传统 侵入式 客户端 客户端应该尽可能的轻薄通用: 实现简单,方便跨语言,减少升级可能 最简单,最通用,支持最广 泛的寻址方式方式是什么? 注册模型,需要为每个RPC接口提供DNS支持 • 未来Serverless中的Function也计划提供DNS寻址支持 • 可能会有更广泛的使用场景 ü 演进思路 • 简化原有SDK (短期需求) • 同时引入域名和DNS,实现通用寻址 (长期目标) 引入DNS寻址方式(基于域名和DNS的Naming Service)Pod: 192.168.1.103 客户端通过域名来对服务进行访问0 码力 | 40 页 | 11.13 MB | 5 月前3
共 23 条
- 1
- 2
- 3