 深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统深入 Kubernetes 的“无人区” —— 蚂蚁金服双十一的调度系统 曹寅2/19 一、蚂蚁金服的Kubernetes现状 二、双十一Kubernetes实践 三、展望未来迎接挑战 目 录 contents 目录3/19 一、蚂蚁金服的Kubernetes现状 Part 1:4/19 发展历程与落地规模 Part 1:蚂蚁金服的Kubernetes现状 平台研发 灰度验证 灰度验证 云化落地 规模化落地 2018年下半年开始投 入 Kubernetes 及其配 套系统研发 2019年初于生产环境 开始灰度验证,对部分 应用做平台迁移 2019年4月完成云化环境 适配,蚂蚁金服云上基础 设施全部采用 Kubernetes 支撑618 2019年7月到双十一前完成 全站 Kubernetes 落地,超过 90% 的资源通过 Kubernetes 分配,核心链路100%落地支撑0 码力 | 19 页 | 2.18 MB | 6 月前3 深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统深入 Kubernetes 的“无人区” —— 蚂蚁金服双十一的调度系统 曹寅2/19 一、蚂蚁金服的Kubernetes现状 二、双十一Kubernetes实践 三、展望未来迎接挑战 目 录 contents 目录3/19 一、蚂蚁金服的Kubernetes现状 Part 1:4/19 发展历程与落地规模 Part 1:蚂蚁金服的Kubernetes现状 平台研发 灰度验证 灰度验证 云化落地 规模化落地 2018年下半年开始投 入 Kubernetes 及其配 套系统研发 2019年初于生产环境 开始灰度验证,对部分 应用做平台迁移 2019年4月完成云化环境 适配,蚂蚁金服云上基础 设施全部采用 Kubernetes 支撑618 2019年7月到双十一前完成 全站 Kubernetes 落地,超过 90% 的资源通过 Kubernetes 分配,核心链路100%落地支撑0 码力 | 19 页 | 2.18 MB | 6 月前3
 严选 ServiceMesh 实践架构 • 使用 Consul 作为服务发现组件 • 数据面:cNginx • 控制面:Consul 管理后台5/24 服务治理能力 – 基于严选第一代ServiceMesh(cNginx) 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:基于 Consul √ 调用控制 协议支持:HTTP 1.X/2.X,可扩展至 TCP √ 服务治理能力 – 基于Istio+Envoy 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:云外基于 Consul,云内基于 K8s 默认的 ETCD √ 调用控制 协议支持:HTTP 1.X/2.X,GRPC,WebSocket,Dubbo, Thrift √ 路由控制:静态路由、动态路由、流量染色、分流控制等 √ 负载均衡:支持0 码力 | 25 页 | 2.07 MB | 6 月前3 严选 ServiceMesh 实践架构 • 使用 Consul 作为服务发现组件 • 数据面:cNginx • 控制面:Consul 管理后台5/24 服务治理能力 – 基于严选第一代ServiceMesh(cNginx) 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:基于 Consul √ 调用控制 协议支持:HTTP 1.X/2.X,可扩展至 TCP √ 服务治理能力 – 基于Istio+Envoy 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:云外基于 Consul,云内基于 K8s 默认的 ETCD √ 调用控制 协议支持:HTTP 1.X/2.X,GRPC,WebSocket,Dubbo, Thrift √ 路由控制:静态路由、动态路由、流量染色、分流控制等 √ 负载均衡:支持0 码力 | 25 页 | 2.07 MB | 6 月前3
 Service Mesh 在蚂蚁金服生产级安全实践的方式来管理,使用时通过 secret mount 以 Volume 形式挂载。 存在以下三个问题:  Secret 管理方式与现有密钥管理系统有冲突,需要密钥管理系统强依赖 Kubernetes  Secret 以明文形式挂载在容器的文件系统中,存在安全隐患  Secret 更新时,Sidecar 需要通过热重启方式重新加载,成本高昂基于 Secret Discovery Service 能力实现证书动态轮转。 当然,Sidecar 和 SDS Server 的通信也需要保证自身的通信安全,存在以下两种方案:  Sidecar 与 SDS Server 采用 mTLS 通信,采用静态证书方案,通过 Secret Mount 方式获取通信证书  Sidecar 与 SDS Server 采用 UDS 方式实现纯内存通信,不需要使用证书。基于 Secret Discovery Service require Envoy to restart.基于 Secret Discovery Service Sidecar 的证书管理方案 蚂蚁金服证书管理方案  基于 Citadel 对接内部密钥管理系统  使用 AppLocalToken 替换 Service Account  支持多种Sidecar 通过Citadel Agent 获取证书使用可信身份服务构建敏感数据下发通道 背景介绍0 码力 | 19 页 | 808.60 KB | 6 月前3 Service Mesh 在蚂蚁金服生产级安全实践的方式来管理,使用时通过 secret mount 以 Volume 形式挂载。 存在以下三个问题:  Secret 管理方式与现有密钥管理系统有冲突,需要密钥管理系统强依赖 Kubernetes  Secret 以明文形式挂载在容器的文件系统中,存在安全隐患  Secret 更新时,Sidecar 需要通过热重启方式重新加载,成本高昂基于 Secret Discovery Service 能力实现证书动态轮转。 当然,Sidecar 和 SDS Server 的通信也需要保证自身的通信安全,存在以下两种方案:  Sidecar 与 SDS Server 采用 mTLS 通信,采用静态证书方案,通过 Secret Mount 方式获取通信证书  Sidecar 与 SDS Server 采用 UDS 方式实现纯内存通信,不需要使用证书。基于 Secret Discovery Service require Envoy to restart.基于 Secret Discovery Service Sidecar 的证书管理方案 蚂蚁金服证书管理方案  基于 Citadel 对接内部密钥管理系统  使用 AppLocalToken 替换 Service Account  支持多种Sidecar 通过Citadel Agent 获取证书使用可信身份服务构建敏感数据下发通道 背景介绍0 码力 | 19 页 | 808.60 KB | 6 月前3
 网易云Service Mesh的产品架构与实现会,51CTO WOTA大会等 • 知名技术博主,博客可搜索popsuper1982,多篇文章推荐至全 球最大IT社区CSDN首页及《程序员》杂志 • 在工作中积累了大量运营商系统,互联网金融系统,电商系统等 容器化和微服务化经验01 目录 02 03 微服务与Docker、Kubernetes 网易云微服务框架介绍 基于容器服务的微服务架构实践163yun.com 一、微 163yun.com Service Mesh作为微服务框架www.163yun.com Service Mesh生态www.163yun.com 数据面Envoy • 轻量级的proxy • 静态配置,热加载,热重启 • 动态配置,拉取模式www.163yun.com 控制面Pilotwww.163yun.com Service Mesh优缺点163yun.com 二、网易云微服务框架介绍163yun0 码力 | 35 页 | 6.33 MB | 6 月前3 网易云Service Mesh的产品架构与实现会,51CTO WOTA大会等 • 知名技术博主,博客可搜索popsuper1982,多篇文章推荐至全 球最大IT社区CSDN首页及《程序员》杂志 • 在工作中积累了大量运营商系统,互联网金融系统,电商系统等 容器化和微服务化经验01 目录 02 03 微服务与Docker、Kubernetes 网易云微服务框架介绍 基于容器服务的微服务架构实践163yun.com 一、微 163yun.com Service Mesh作为微服务框架www.163yun.com Service Mesh生态www.163yun.com 数据面Envoy • 轻量级的proxy • 静态配置,热加载,热重启 • 动态配置,拉取模式www.163yun.com 控制面Pilotwww.163yun.com Service Mesh优缺点163yun.com 二、网易云微服务框架介绍163yun0 码力 | 35 页 | 6.33 MB | 6 月前3
 Service Mesh结合容器云平台的思考和实践置ProxyConfig对象。下面分析几个相对重 要的配置。 role pilot-agent的role类型为model包下的Proxy,决定了pilot-agent的“角色”,role包括以下属性: 1.Type pilot-agent有三种运行模式。根据role.Type变量定义,类型为model.Proxy,定义在context.go文件中,允许的3个取值范围为: i. "sidecar" 命令的对应flag来提供用户自定义值。如果用户不提供,则会在proxy命令执行时,根据istio连接 的服务注册中心(service registry)类型的不同,会采用不同的配置方式。agent当前使用的具体service registry类型保存在 pilot-agent的registry变量里,在init函数中初始化为默认值Kubernetes。当前只处理以下三种情况: • Kubernetes 其中的private ip通过WaitForPrivateNetwork函数获得。 istio需要从服务注册中心(service registry)获取微服务注册的情况。当前版本中istio可以对接的服务注册中心类型包括: 1."Mock" MockRegistry is a service registry that contains 2 hard-coded test services. 2. "Config"0 码力 | 28 页 | 3.09 MB | 6 月前3 Service Mesh结合容器云平台的思考和实践置ProxyConfig对象。下面分析几个相对重 要的配置。 role pilot-agent的role类型为model包下的Proxy,决定了pilot-agent的“角色”,role包括以下属性: 1.Type pilot-agent有三种运行模式。根据role.Type变量定义,类型为model.Proxy,定义在context.go文件中,允许的3个取值范围为: i. "sidecar" 命令的对应flag来提供用户自定义值。如果用户不提供,则会在proxy命令执行时,根据istio连接 的服务注册中心(service registry)类型的不同,会采用不同的配置方式。agent当前使用的具体service registry类型保存在 pilot-agent的registry变量里,在init函数中初始化为默认值Kubernetes。当前只处理以下三种情况: • Kubernetes 其中的private ip通过WaitForPrivateNetwork函数获得。 istio需要从服务注册中心(service registry)获取微服务注册的情况。当前版本中istio可以对接的服务注册中心类型包括: 1."Mock" MockRegistry is a service registry that contains 2 hard-coded test services. 2. "Config"0 码力 | 28 页 | 3.09 MB | 6 月前3
 微博Service Mesh实践Header ➢ 消息类型 ➢ 协议版本 ➢ 序列列化协议(body) Metadata ➢ 服务名 ➢ ⽅方法名 ➢ 系统参数及⽤用户参数 Body ➢ response ➢ RequestService Mesh Meetup · BeiJing Simple 序列列化 �22 微博Service Mesh实践 - WeiboMesh 基础类型 复合类型 type(1b Res 插件化Service Mesh Meetup · BeiJing 基于MCS的流量量调度 �26 微博Service Mesh实践 - WeiboMesh Vintage 管理理系统 决策系统 Command DC1 Servers DC2 Servers DC1 Clients业务实战 • 正反向代理理 • 收益及总结Service Mesh Meetup · BeiJing0 码力 | 43 页 | 1007.85 KB | 6 月前3 微博Service Mesh实践Header ➢ 消息类型 ➢ 协议版本 ➢ 序列列化协议(body) Metadata ➢ 服务名 ➢ ⽅方法名 ➢ 系统参数及⽤用户参数 Body ➢ response ➢ RequestService Mesh Meetup · BeiJing Simple 序列列化 �22 微博Service Mesh实践 - WeiboMesh 基础类型 复合类型 type(1b Res 插件化Service Mesh Meetup · BeiJing 基于MCS的流量量调度 �26 微博Service Mesh实践 - WeiboMesh Vintage 管理理系统 决策系统 Command DC1 Servers DC2 Servers DC1 Clients业务实战 • 正反向代理理 • 收益及总结Service Mesh Meetup · BeiJing0 码力 | 43 页 | 1007.85 KB | 6 月前3
 SOFAMOSN持续演进路径及实践分享持续演进路径 & 技术案例 Ø 实践案例 Ø 规划 & 展望 Ø QA背景 & 概览数据平面概览 SOFAMOSN • C实现,支持多语言扩展 • 基于Nginx扩展 • 开发不活跃 • 老牌代理系统,业界广 泛使用,服务各类场景 • C++实现 • CNCF第三个毕业项目, ISTIO原生数据平面 • 开发活跃,最新版为1.9.0 • Google, Lyft主导,业界 众多公司使用中,重点搭 • CNCF项目,最早的 Service Mesh数据平面 • 开发活跃,最新版为 18.9.1 • Golang实现 • 新生项目,初期旨在搭建 RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFAMOSN数据流SOFAMOSN数据流持续演进路径 并充分优化了性能,目前已经在蚂蚁、UC生产环境进行了验证。落地实践案例蚂蚁落地 – 应用接入 ü 适用于蚂蚁当前的服务发现 体系 ü 通过中间件通道对应用推送 MOSN调用地址 ü 通过扩展cluster类型的方式 动态获取配置中心后端 ü MOSN出向路由基于明确的 服务依赖关系生成 ü 服务通过 id:version 定义 ü 适用于SOA化服务,标准微 服务 ü 适用于跨语言通信的场景蚂蚁落地0 码力 | 29 页 | 7.03 MB | 6 月前3 SOFAMOSN持续演进路径及实践分享持续演进路径 & 技术案例 Ø 实践案例 Ø 规划 & 展望 Ø QA背景 & 概览数据平面概览 SOFAMOSN • C实现,支持多语言扩展 • 基于Nginx扩展 • 开发不活跃 • 老牌代理系统,业界广 泛使用,服务各类场景 • C++实现 • CNCF第三个毕业项目, ISTIO原生数据平面 • 开发活跃,最新版为1.9.0 • Google, Lyft主导,业界 众多公司使用中,重点搭 • CNCF项目,最早的 Service Mesh数据平面 • 开发活跃,最新版为 18.9.1 • Golang实现 • 新生项目,初期旨在搭建 RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFAMOSN数据流SOFAMOSN数据流持续演进路径 并充分优化了性能,目前已经在蚂蚁、UC生产环境进行了验证。落地实践案例蚂蚁落地 – 应用接入 ü 适用于蚂蚁当前的服务发现 体系 ü 通过中间件通道对应用推送 MOSN调用地址 ü 通过扩展cluster类型的方式 动态获取配置中心后端 ü MOSN出向路由基于明确的 服务依赖关系生成 ü 服务通过 id:version 定义 ü 适用于SOA化服务,标准微 服务 ü 适用于跨语言通信的场景蚂蚁落地0 码力 | 29 页 | 7.03 MB | 6 月前3
 Service Mesh的延伸 — 论道Database MeshArchitecture Transparent Sharding Middleware Database-as-a-Service What's Really New with NewSQL?数据库中间层的优势 系统 •事务 运维 • DBA 开发 • SQL数据库中间层应具备的能力 分片化 多副本 数据一致性 弹性化 治理能力 观察能力数据分片 App2 DB App1 App3 App2 • 性能损耗高JDBC Proxy Sidecar 数据库 任意 单一 单一 连接数 高 低 高 异构语言 仅Java 任意 任意 性能 损耗低 损耗略高 损耗低 无中心化 是 否 是 静态入口 无 有 无 Sidecar的优势Database Mesh架构图Sharding-Sphere 核心功能 数据分片 分布式事务 数据库治理 弹性伸缩 管控界面 实现方案 Sharding-JDBC0 码力 | 35 页 | 4.56 MB | 6 月前3 Service Mesh的延伸 — 论道Database MeshArchitecture Transparent Sharding Middleware Database-as-a-Service What's Really New with NewSQL?数据库中间层的优势 系统 •事务 运维 • DBA 开发 • SQL数据库中间层应具备的能力 分片化 多副本 数据一致性 弹性化 治理能力 观察能力数据分片 App2 DB App1 App3 App2 • 性能损耗高JDBC Proxy Sidecar 数据库 任意 单一 单一 连接数 高 低 高 异构语言 仅Java 任意 任意 性能 损耗低 损耗略高 损耗低 无中心化 是 否 是 静态入口 无 有 无 Sidecar的优势Database Mesh架构图Sharding-Sphere 核心功能 数据分片 分布式事务 数据库治理 弹性伸缩 管控界面 实现方案 Sharding-JDBC0 码力 | 35 页 | 4.56 MB | 6 月前3
 阿里巴巴超大规模神龙裸金属 Kubernetes 集群运维实践Kubernetes 集群运维实践 关注“阿里巴巴云原生”公众号 回复 1124 获取 PPT自我介绍 •嵌入式、微服务框架 •2017 年加入阿里巴巴,负责阿 里集团数十万集群节点规模化运 维管理系统的研发工作 •2019 年参与集团全面上云项目 并经历了整体架构的云原生升级 演进,稳定支撑双11峰值流量分享内容 • 阿里全站上云 • 神龙 (what & why) • 规模化集群运维实践 IDC 系统 基础运维 天基系统 CMDB 安全审计 单机监控 ASI 平台 kubelet/Pouch CI/CD k8s extended Service Mesh 安全容器 运维管控 在离线混部 额度管控 监控体系 多租隔离 上层业务 集 团 业 务运维挑战 • 规模大 • 集群规模大 (数十个集群),节点数量多 (数十万节点) • 业务线多、应用数量多、应用类型复杂 (有状态、无状态、多语言) 卡中断打散 • 稳定性要求高 • 性能、宕机、夯机、抖动系统架构 • 基础监控 • 秒级、分钟级监控 • 内核性能指标采集 • 监控大盘 • 在线率 • 宕机率 • 抖动率 • 基线系统 • 基础环境一致性故障自愈 (1-5-10) • 监控、故障发现 (1-5) • 本地检测 (walle, NPD) + 外部系统 (IDC、aliyun) • SLI、SLO、SLA •0 码力 | 21 页 | 7.81 MB | 6 月前3 阿里巴巴超大规模神龙裸金属 Kubernetes 集群运维实践Kubernetes 集群运维实践 关注“阿里巴巴云原生”公众号 回复 1124 获取 PPT自我介绍 •嵌入式、微服务框架 •2017 年加入阿里巴巴,负责阿 里集团数十万集群节点规模化运 维管理系统的研发工作 •2019 年参与集团全面上云项目 并经历了整体架构的云原生升级 演进,稳定支撑双11峰值流量分享内容 • 阿里全站上云 • 神龙 (what & why) • 规模化集群运维实践 IDC 系统 基础运维 天基系统 CMDB 安全审计 单机监控 ASI 平台 kubelet/Pouch CI/CD k8s extended Service Mesh 安全容器 运维管控 在离线混部 额度管控 监控体系 多租隔离 上层业务 集 团 业 务运维挑战 • 规模大 • 集群规模大 (数十个集群),节点数量多 (数十万节点) • 业务线多、应用数量多、应用类型复杂 (有状态、无状态、多语言) 卡中断打散 • 稳定性要求高 • 性能、宕机、夯机、抖动系统架构 • 基础监控 • 秒级、分钟级监控 • 内核性能指标采集 • 监控大盘 • 在线率 • 宕机率 • 抖动率 • 基线系统 • 基础环境一致性故障自愈 (1-5-10) • 监控、故障发现 (1-5) • 本地检测 (walle, NPD) + 外部系统 (IDC、aliyun) • SLI、SLO、SLA •0 码力 | 21 页 | 7.81 MB | 6 月前3
 Service Mesh 微服务架构设计漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍我过往的经历情况 类型:传统互联网 模式:CS/BS模式 类型:互联网 模式:单体模式 类型:游戏 模式:单体模式 类型:互联网金融 模式:微服务模式Java版本演进史 JDK J2ME J2SE J2EE Java SE 2004年 Java SE 5.0 微服务和SOA之间各项对比目前常见的微服务架构设计是什么样微服务架构的实现:目前主流的是Spring Cloud框架目前微服务存在的问题 Ø 业务关注太多技术 Ø 基础框架升级困难 Ø 异构系统接入困难 Ø 服务治理难度巨大不要让今天的代码成为明天的历史包袱 追求极致的思考1 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service0 码力 | 36 页 | 26.53 MB | 6 月前3 Service Mesh 微服务架构设计漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍我过往的经历情况 类型:传统互联网 模式:CS/BS模式 类型:互联网 模式:单体模式 类型:游戏 模式:单体模式 类型:互联网金融 模式:微服务模式Java版本演进史 JDK J2ME J2SE J2EE Java SE 2004年 Java SE 5.0 微服务和SOA之间各项对比目前常见的微服务架构设计是什么样微服务架构的实现:目前主流的是Spring Cloud框架目前微服务存在的问题 Ø 业务关注太多技术 Ø 基础框架升级困难 Ø 异构系统接入困难 Ø 服务治理难度巨大不要让今天的代码成为明天的历史包袱 追求极致的思考1 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service0 码力 | 36 页 | 26.53 MB | 6 月前3
共 25 条
- 1
- 2
- 3













