蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘 奕杉Agenda Ø背景 Ø构架 Ø能力 Ø性能 ØRoadMap背景为什么蚂蚁需要ServiceMesh Ø拥抱微服务,云原生 • SOFA 5规划落地 • 兼容K8S的智能调度体系 Ø运维体系的有力支撑 • LDC • 弹性伸缩 • 蓝绿/容灾/.. Ø金融级网络安全 • 金融级鉴权体系 • 云原生zero trust网络安全趋势 2SOFAMosn内数据流 3NET/IO 4 Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 5 Ø定义编解码核心数据结构 üMesh处理三段式:Headers + Data + Trailers Ø定义协议Codec核心接口 ü编码:对请求数据进行编码并根据控制指令发送数据 ü解码:对IO数据进行解码并通过扩展机制通知订阅方 为网络协议请求/响应提供可编程的抽象载体 ü 考虑PING-PONG,PIPELINE,分帧STREAM三种典型流程特征 Ø定义Stream生命周期,核心事件 Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters0 码力 | 44 页 | 4.51 MB | 6 月前3
Service Mesh的延伸 — 论道Database Mesh可观察性 面向运维服务化之后,数据库怎么办? 服务 • 无状态 • 根据规则路由 • 业务方处理事务 数据库 • 有状态 • 根据SQL路由 • 数据库自动处理事务数据库的进化趋势 • SQL • ACID • 分布式 RDBMS • SQL • BASE ACID • 分布式 NoSQL • SQL • ACID+BASE • 分布式 NewSQLNewSQL的分类 NewSQL?数据库中间层的优势 系统 •事务 运维 • DBA 开发 • SQL数据库中间层应具备的能力 分片化 多副本 数据一致性 弹性化 治理能力 观察能力数据分片 App2 DB App1 App3 App2 DB1 DB2 DB3 App1 App3数据分片:引入中间件 App1 M1 App2 App3 S2 M2 M3 S1 S3 数据库中间件 App3 write sync read数据分片 + 读写分离 App1 S1 App2 App3 M2 sync read S2 S3 M1 M3 write数据分片 + 读写分离:引入中间件 App1 M1 App2 App3 S2 M2 M3 S1 S3 数据库中间件 write sync read分布式事务:定义 传统事务:ACID Atomicity0 码力 | 35 页 | 4.56 MB | 6 月前3
Service Mesh的实践分享基本服务治理功能 App OSP Server Service Registry Service Config Center 服务发现 服务注册 服务元数据下发 OSP client 服务路由 网络传输 服务元数据上报缺点 • 语言单一 • 升级困难 • 复杂代码嵌入对客户端进程影响大服务化体系2.0 - Service Mesh雏形 • 物理机、sidecar • Local 侵入性大。复杂客户端会给 应用造成负担,包括资源占 用、依赖冲突等等 侵入性小。SDK只有简单的寻址和序列化/ 反序列化的功能 无侵入性。应用自行调用 运维难度 难度大。客户端的问题会对 应用直接产生影响,耦合太 重 难度小。Sidecar故障可以将流量临时切到 remote proxy解决 难度小。集群通过LVS接入,单 台机故障可以下线 升级难度 难度极大。需要客户端修改 代码、发布、上线。 难度小。切换流量到remote 无法动态根据系统指标调整阈值 • 目标 • 用户无需拍脑袋设值,服务治理中心根据 历史指标进行推荐,对不合理的设置进行 建议,如 • 根据应用的历史延迟时间推荐超时设置 • 根据应用的历史流量数据推荐限流设置 • 根据动态指标自动调整配置 • 如单个实例内指标异常(超时率、cpu异常等) 动态调整限流值或直接降级 Proxy Server Intelligent center 机器指标0 码力 | 30 页 | 4.80 MB | 6 月前3
陌陌Service Mesh架构实践Java、PHP、Python、Go、NodeJs • Redis传输协议 / 复用Redis客户端 • 服务发布Proxy / 并行调用Proxy 服务治理 • 服务治理平台、配置中心 • 监控、日志、分布式跟踪 • 异步调用、压测7/24 流量代理机制 PHP服务发布入流量代理 PHP并行调用出流量代理 16年起开始使用流量代理机制解决跨语言服务治理问题8/24 分享主题:字号 分享嘉宾 与现有架构的兼容性 现阶段的关键需求 技术储备与原则类因素 自研数据平面与 控制平面方案 使存量服务接入Mesh 方案 对接大量内部系统 关键收益均由数据平面产生 非完善的控制平面功能 技术体系内不引入Go语言 最成熟的服务端语言为Java 使用Java开发 数据平面Agent14/24 整体架构 数据平面 • 现有协议的流量转发 • Agent平滑升级机制 控制平面 控制平面 • 轻量的Pilot Proxy • 向Istio的标准协议靠拢 重点目标 长期规划15/24 数据平面实践细节 • 部署方式 • 升级方式 • 容灾方式 • 性能问题 • 资源问题 • 兼容问题 关键设计 关键问题16/24 数据平面部署方式 容器化运行方式 • sidecar模式 • 与业务进程相同Pod不同Container 陌陌微服务容器化部署比例在80%以上0 码力 | 25 页 | 1.25 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 Envoy • 安心做数据平面, 提供XDS API • 设计优秀,性能和稳定性表现良好 • C++编写,和蚂蚁的技术栈差异大 • 蚂蚁有大量的扩展和定制化需求 • 我们非常认可envoy在数据平面上的表现开源方案选择之第二代Service Mesh Istio • 第一选择,重点关注对象 • 奈何迟迟不能发布生产可用版本 奈何迟迟不能发布生产可用版本 • 性能和稳定性远远不能满足蚂蚁的 要求 • 但我们非常认可Istio的理念和方向 Conduit • 只支持k8s,而蚂蚁尚未普及k8s • 数据平面由Rust编写,过于小众,难于 从社区借力。 • 同样存在技术栈问题 • 公司和产品在社区知名度和影响力有限国内公司的选择之一:自研 华为:CES Mesher • 使用Golang编写 • 由go 第 一时间获取跨语言和技术栈下沉的红利,立足 之后再缓缓图之。 这个产品思路唯一的麻烦在于编程语言的选择国内公司的选择之二:开源方案定制 腾讯:Tencent Service Mesh • 数据平面选择Envoy:成熟产品,符合 腾讯语言体系,内部广泛使用 • 控制平面据传“挣扎了一下”,最终还 是选择Istio,进行定制和扩展,解耦k8s国内公司的选择之三:另辟蹊径 UCloud:Service0 码力 | 37 页 | 7.99 MB | 6 月前3
Service Mesh 微服务架构设计Service Mesh 微服务架构设计 杨彪 美团点评高级架构师 2019.10.26 Service Mesh Meetup #7 成都站原蚂蚁金服专家,著有《分布式服务架构:原理、 设计与实战》和《可伸缩服务架构:框架与中间件》 两本书。有近10年互联网、游戏和支付相关的工作 经验,目前从事产业互联网。 杨彪,美团高级架构师1 漫谈服务架构的演进史 2 微服务架构设计的现状 并且实现了业务中单个的完整业务功能。 • 服务和服务之间是独立的、低耦合的; • 每个服务都尽量小,小到一个小团队能够很好的维护它; • 服务可独立部署,每次部署不会影响其他服务; • 每个服务都各自负责自己的数据和状态的存储,独立数据库; • 服务和服务之间通过设计良好的API接口通信,不暴露具体的实 现细节; • 各服务不需要统一技术栈,不需要共享公共库和框架;微服务究竟带来什么好处 Ready for market Complexity :整体服务变多,维护比单一服务困难; Network congestion and latency:网络通信复杂,调用链路变长,服务等待时间变长; Data integrity:数据一致性难保证,面临分布式事物问题; Management:管理运维成本高,需要有成熟的DevOps平台,另外日志看查困难; Development and testing:开发测试成本高,依赖服务较多,Debug困难;0 码力 | 36 页 | 26.53 MB | 6 月前3
七牛容器云ServiceMesh实践Istio支持全量功能 • Contour支持Tracing能力 • 数据面共存 • 共用边车组件Envoy七牛现有Service Mesh体系 • Istio产品化 • 东西流量产品化 • 南北流量产品化 • TLS管理优化 • Contour增强 • 入口流量管控 • 跨集群调度 • 发展策略 • API版本兼容两种方式 • 数据面优先,控制面按需迭代七牛容器云Service Mesh发展 使用规模 • 80%以上产品线部署Contour & Istio • 涉及K8S集群约20+集群 • 功能迭代 • 先南北,后东西 • 先原生,后二开 • 先管控面,后数据面落地场景—Spock测试平台 • 历史问题 • 分布式系统性能测试问题 定位难 • 多版本并发测试 • 故障注入较困难(代码侵 入性强) • 测试环境不稳定,后端Pod 频繁重启 • 解决方案 • Contour产品化 • 解决方案 • Istio南北流量分流策略产品化 • 基于Istio的QoS产品化 • 跨集群流量调度 • 基于Istio的Tracing产品化落地场景—大数据产品 • 系统优化之路 • 多版本灰度升级 • 根据流量做横向伸缩 • 分布式系统性能测试问题 定位难 • 解决方案 • Istio南北流量分流策略产品化 • 基于Istio的QoS产品化 • 基于Istio的Tracing产品化0 码力 | 15 页 | 3.86 MB | 6 月前3
金融级云原生 PaaS 探索与实践王成昌(晙曦)蚂蚁金服技术专家2/20 一、业务背景 二、多集群管控 三、发布运维体系 目 录 contents 目录3/20 一、业务背景 业务背景4/20 业务背景 业务架构 演进 • 容量 应用|数据库|机房 • 容灾 机房|地域5/20 业务背景 业务架构 单元化 • 高可用 • 一致性 • 可扩展 • 高性能6/20 业务背景 业务诉求 • 运维成本 突发流量应用 容器镜像管理 批次发布 原生资源管理 Pod伸缩管理 集群伸缩管理 变更管控 配额管理 运维原子操作 精细化调度 接入层流程调拨 应用层流量调拨 跨集群状态 分发/汇聚 数据层流量调拨 压测/灰度 流量管理 单元化 元数据管理 弹性流量管理 跨集群发布策略 多集群管理 跨集群网络 跨集群镜像管理 蓝绿发布 灰度分组发布 中间件变配 (DRM/Scheduler/Message) Mesh流调拨和治理 联邦核心能力 • 跨集群资源同步 Template,Override,Placement 模型; 状态回流; 扩展 CRD; • 跨集群发现12/20 联邦架构 • 关系型存储; 数据量 容灾 • 基于部署单元分发 多集群管控13/20 三、发布运维体系 发布运维体系14/20 应用管理&交付 • 基于统一管控背景下的 Dockerfile 管理和生成; • 基于组件关联的0 码力 | 20 页 | 1.71 MB | 6 月前3
Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展traffic(For example: Rate limiting, Service priority, etc.)总结:他山之石,可以攻玉 • 解决类似的问题:运维和通信的问题 • 相似的解决方案:数据面+控制面+应用 • 不同的协议层次:SDN 2-4层,Service Mesh 主要为7层 SDN对Service Mesh发展的启发: Ø 北向接口 • 面向业务和运维 • 具有较高 Ø 南向接口 • 面向流量和路由配置 • xDS v2将统一数据面标准? • xDS接口包含有较多实现相关内容:Listener, Filter, 能否可以成为一个通用的接口协议? 是否会出现Envoy之外的大量数据面实现? • 建议:对xDS接口进行改进,去掉实现相关内容 Ø Service Mesh的发展 • 控制面对数据面软硬件的统一控制能力? • 通过控制面API接入各种丰富的应用场景 MSB-SDClient MSB-Consul Jaeger DexMesh数据面 Pod Microservice Envoy Desktop OtherSystems Mobile DexMesh Ingress Pod Microservice Envoy (Telemetry, Policy check) 配置数据(服 务信息,路由 信息等) 定制Istio组件 应用微服务0 码力 | 27 页 | 11.99 MB | 6 月前3
Service Mesh 在蚂蚁金服生产级安全实践蚂蚁金服高级开发工程师 2019.8.11 Service Mesh Meetup #6 广州站基于 Secret Discovery Service Sidecar 的证书管理方案 使用可信身份服务构建敏感数据下发通道 Service Mesh Sidecar 的 TLS 生产级落地实践 分享内容基于 Secret Discovery Service Sidecar 的证书管理方案 Kubernetes Citadel 对接内部密钥管理系统 使用 AppLocalToken 替换 Service Account 支持多种Sidecar 通过Citadel Agent 获取证书使用可信身份服务构建敏感数据下发通道 背景介绍 通过应用Pod 中增加一个安全 Sidecar,以API接口的形式为APP及其他Sidecar 提供基础的身 份颁发、身份验证功能 解耦应用的业务逻辑与认证授权逻辑,减少开发量; ; 全网统一的认证授权方式,去凭证,减少攻击面; 为每个应用建立唯一的全局应用身份标识,提供服务调用全链路溯源能力,及可问责能 力(accountability)。使用可信身份服务构建敏感数据下发通道 身份获取 应用 A 构造 HTTP 请求,调用 安全Sidecar 提供的 JWT-SVID 颁发接口获取 JWT-SVID。 安全Sidecar 通过 Downward API0 码力 | 19 页 | 808.60 KB | 6 月前3
共 30 条
- 1
- 2
- 3













