 微服务和Service Mesh 在多个行业落地实践www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www.163yun.com 微服务平台总览 容器平台 (多集群基础设施) Pod & Deployment 网络 Calico, OVS 存储 Ceph 滚动更新 弹性伸缩 日志中心 基础设施监控 开 发 集 群 测 试 集 群 com 开发集群 测试集群 CICD (开发流程管理) 流水线管理 代码 检出 代码 编译 镜像 构建 集成 测试 部署 测试平台 (集成,场景测试) 单接口 用例 场景 用例 执行 集 定时 执行 接口 Mock 覆盖 率 生产镜像 仓库 测试镜像 仓库 历史 管理 批量 导入 接口 监控 生产集群 镜像0 码力 | 39 页 | 3.06 MB | 1 年前3 微服务和Service Mesh 在多个行业落地实践www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www.163yun.com 微服务平台总览 容器平台 (多集群基础设施) Pod & Deployment 网络 Calico, OVS 存储 Ceph 滚动更新 弹性伸缩 日志中心 基础设施监控 开 发 集 群 测 试 集 群 com 开发集群 测试集群 CICD (开发流程管理) 流水线管理 代码 检出 代码 编译 镜像 构建 集成 测试 部署 测试平台 (集成,场景测试) 单接口 用例 场景 用例 执行 集 定时 执行 接口 Mock 覆盖 率 生产镜像 仓库 测试镜像 仓库 历史 管理 批量 导入 接口 监控 生产集群 镜像0 码力 | 39 页 | 3.06 MB | 1 年前3
 唯品会调度系统的前世今生位与选型 需要解决的问题 1 6 4 3 2 … 异构/多语言难以支持 5 缺乏统一监控、统一管理 (进程假死、运行状态未知) 缺乏容错、容灾,高可 用 缺乏分布式处理 无法合理利用机器资源 难以问题追踪 选型对比 Crontab Quartz Linux系统级的定时任务执行器 缺乏分布式运算和集中管理功能 无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn 开源地址: Github.com/vipshop/Saturn 执行结点 作业实现 ZK saturn-zk-* saturn.vip.com 控制台集群 (Tomcat) ZK Observe r ob-saturn-zk-* 2台 3台 x台 调度器集群 接入域-B 执行结点 作业实现 功能地图 01 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业0 码力 | 58 页 | 5.40 MB | 1 年前3 唯品会调度系统的前世今生位与选型 需要解决的问题 1 6 4 3 2 … 异构/多语言难以支持 5 缺乏统一监控、统一管理 (进程假死、运行状态未知) 缺乏容错、容灾,高可 用 缺乏分布式处理 无法合理利用机器资源 难以问题追踪 选型对比 Crontab Quartz Linux系统级的定时任务执行器 缺乏分布式运算和集中管理功能 无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn 开源地址: Github.com/vipshop/Saturn 执行结点 作业实现 ZK saturn-zk-* saturn.vip.com 控制台集群 (Tomcat) ZK Observe r ob-saturn-zk-* 2台 3台 x台 调度器集群 接入域-B 执行结点 作业实现 功能地图 01 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业0 码力 | 58 页 | 5.40 MB | 1 年前3
 海量用户推送后台系统架构实践-曾振波极光推送后台系统架构实践 曾振波 极光开发者技术部推送开发组 技术负责人 极光推送后台开发工程师 多年互联网开发经验,专注后台开发技术。2016年加入极光,负责极光推送平台架构设 计及开发,主导包括K8S在内的技术架构实施落地,推动系统架构的演进,构造支撑海 量用户的推送系统,对大规模分布式系统架构及设计有深入的理解。 自我介绍 • 极光推送服务架构 • 关于极光 • 消息推送系统面临的挑战 链接管理 系统安全 09 新技术的应用——K8S部署业务 模块化 • 模块业务逻辑All In导致相互影响,更新升级难度大 • 功能按照业务拆分解耦 • 数据和业务分离 • 快速迭代 • 模块间通过MQ/RPC交互 极光推送后台系统架构 01 Segment Conn StatCenter OnlineMsg 异步化 • 充分利用资源,减少请求等待时间,提升系统吞吐量 • • 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 • 监控及告警 • 多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低 • 弹性扩容 • 配置统一管理 • 内外集群隔离 • Pod包含多个容器 - 辅助容器,业务容器 • 业务模块代码架构调整 • 监控体系调整 极光推送后台系统架构 09 结束语0 码力 | 23 页 | 1.26 MB | 1 年前3 海量用户推送后台系统架构实践-曾振波极光推送后台系统架构实践 曾振波 极光开发者技术部推送开发组 技术负责人 极光推送后台开发工程师 多年互联网开发经验,专注后台开发技术。2016年加入极光,负责极光推送平台架构设 计及开发,主导包括K8S在内的技术架构实施落地,推动系统架构的演进,构造支撑海 量用户的推送系统,对大规模分布式系统架构及设计有深入的理解。 自我介绍 • 极光推送服务架构 • 关于极光 • 消息推送系统面临的挑战 链接管理 系统安全 09 新技术的应用——K8S部署业务 模块化 • 模块业务逻辑All In导致相互影响,更新升级难度大 • 功能按照业务拆分解耦 • 数据和业务分离 • 快速迭代 • 模块间通过MQ/RPC交互 极光推送后台系统架构 01 Segment Conn StatCenter OnlineMsg 异步化 • 充分利用资源,减少请求等待时间,提升系统吞吐量 • • 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 • 监控及告警 • 多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低 • 弹性扩容 • 配置统一管理 • 内外集群隔离 • Pod包含多个容器 - 辅助容器,业务容器 • 业务模块代码架构调整 • 监控体系调整 极光推送后台系统架构 09 结束语0 码力 | 23 页 | 1.26 MB | 1 年前3
 数字货币交易系统架构 Python实现 黄毅where orders.id=tmp.id; delete from orders where id = ANY[%s] 交易系统架构设计-部署 • 有状态服务,单独部署集群 • 数据库 • Redis • 无状态服务,k8s/docker swarm • Restful api • Websocket api • 异步任务 3 钱包实现 钱包的功能 • 地址生成和私钥管理 • 构建并签名交易0 码力 | 24 页 | 799.65 KB | 1 年前3 数字货币交易系统架构 Python实现 黄毅where orders.id=tmp.id; delete from orders where id = ANY[%s] 交易系统架构设计-部署 • 有状态服务,单独部署集群 • 数据库 • Redis • 无状态服务,k8s/docker swarm • Restful api • Websocket api • 异步任务 3 钱包实现 钱包的功能 • 地址生成和私钥管理 • 构建并签名交易0 码力 | 24 页 | 799.65 KB | 1 年前3
 QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+AND/IOS/H5/Open 静态站 网贷服务 借款流程 Cache集群 安全加密 网贷服务 CDN 支付结算 订单 DB从 批 处 理 系 统 活动 DB主 DB从 版本管理 产品 ... 同步 …... 网站、基础服务 移动后台 业务和团队规模迅速扩张 粗粒度服务化,基础设施完善 CDN/页面缓存/静态站/缓存集群 移动后台旁路 流程double,冗余开始出现 -------Joe Armstrong 关键点 分而治之,缩小竞争面 加速资源交换,更快响应 共享资源串行操作 数据一致性(脏读,丢失更新等) 业务纵向拆分,化整为零 资源拆分,横向扩展 cache,index,partition parallel non-blocking sync、lock,cas 智能DNS,DNS负载均衡 限流(limit,lua),openresty,4层/7层LB 弹性扩容,限流(token),熔断,防刷 降级,熔断,弹性扩容 多IDC,区域容灾,多ISP 集群,高可用,分片 本地缓存,防刷,流控 终端 域名 机房 LB / NG.. 网关 Cache 服务 抓大不能放小[细节决定成败] 线程阻塞>300 中间件内存管理、线程状态,连接状况0 码力 | 42 页 | 19.96 MB | 1 年前3 QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+AND/IOS/H5/Open 静态站 网贷服务 借款流程 Cache集群 安全加密 网贷服务 CDN 支付结算 订单 DB从 批 处 理 系 统 活动 DB主 DB从 版本管理 产品 ... 同步 …... 网站、基础服务 移动后台 业务和团队规模迅速扩张 粗粒度服务化,基础设施完善 CDN/页面缓存/静态站/缓存集群 移动后台旁路 流程double,冗余开始出现 -------Joe Armstrong 关键点 分而治之,缩小竞争面 加速资源交换,更快响应 共享资源串行操作 数据一致性(脏读,丢失更新等) 业务纵向拆分,化整为零 资源拆分,横向扩展 cache,index,partition parallel non-blocking sync、lock,cas 智能DNS,DNS负载均衡 限流(limit,lua),openresty,4层/7层LB 弹性扩容,限流(token),熔断,防刷 降级,熔断,弹性扩容 多IDC,区域容灾,多ISP 集群,高可用,分片 本地缓存,防刷,流控 终端 域名 机房 LB / NG.. 网关 Cache 服务 抓大不能放小[细节决定成败] 线程阻塞>300 中间件内存管理、线程状态,连接状况0 码力 | 42 页 | 19.96 MB | 1 年前3
 领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践01 架构升级的效果 02 架构升级的思考 03 架构升级的实践 架构升级的思考 现有架构的问题? 现有架构的问题 同步等待 • 现有同步模型,线程 多 load ⾼高 • 资源利利⽤用率 应⽤用本身的解决⽅方案? 并⾏行行度有限 • ⽆无法纯业务依赖并发 • 微服务化让问题更更凸 显 • RT 累积 RT 与 ⽤用户增⻓长 RT 累积带来成本 • data) -> acc + data); 流 - 性能 全异步、流式 CPU数个业务线程 更更少的上下⽂文切换、更更少(⽆无)的竞争、更更低的LOAD 业务等效依赖的异步并发 更更⾼高效的资源利利⽤用率 Universal Scalability Law 系统流⽔水线并⾏行行处理理 流 - 分布式 � ) �� �� �� �� �� �� �� ��� �� �� �� 业务架构升级case 的选择策略略 1. 集群/流量量⼤大/核⼼心有认知 * ⽅方便便看升级改造效果 2. 瓶颈 match 升级 (如 CPU 压不不满、IO较多、⾼高Load) * 可以确定获得⼤大⽐比例例收益 3. 业务逻辑简单优先 * 尤其在改造起步阶段,降低难度 4. 业务压⼒力力不不⼤大 * 有业务升级改造资源投⼊入 实施难点和策略略 • 团队0 码力 | 27 页 | 1.13 MB | 1 年前3 领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践01 架构升级的效果 02 架构升级的思考 03 架构升级的实践 架构升级的思考 现有架构的问题? 现有架构的问题 同步等待 • 现有同步模型,线程 多 load ⾼高 • 资源利利⽤用率 应⽤用本身的解决⽅方案? 并⾏行行度有限 • ⽆无法纯业务依赖并发 • 微服务化让问题更更凸 显 • RT 累积 RT 与 ⽤用户增⻓长 RT 累积带来成本 • data) -> acc + data); 流 - 性能 全异步、流式 CPU数个业务线程 更更少的上下⽂文切换、更更少(⽆无)的竞争、更更低的LOAD 业务等效依赖的异步并发 更更⾼高效的资源利利⽤用率 Universal Scalability Law 系统流⽔水线并⾏行行处理理 流 - 分布式 � ) �� �� �� �� �� �� �� ��� �� �� �� 业务架构升级case 的选择策略略 1. 集群/流量量⼤大/核⼼心有认知 * ⽅方便便看升级改造效果 2. 瓶颈 match 升级 (如 CPU 压不不满、IO较多、⾼高Load) * 可以确定获得⼤大⽐比例例收益 3. 业务逻辑简单优先 * 尤其在改造起步阶段,降低难度 4. 业务压⼒力力不不⼤大 * 有业务升级改造资源投⼊入 实施难点和策略略 • 团队0 码力 | 27 页 | 1.13 MB | 1 年前3
 从百度文件系统看大型分布式系统设计中的定式与创新百度文件系统BFS - 万亿量级实时数据库Tera - 集群调度系统Galaxy • 个人主页&Blog - https://github.com/bluebore - http://bluebore.cn 提纲 • 百度文件系统简介 • 分布式系统设计实践 • 总结与致谢 百度的集群环境 • 单个集群通常几千台机器 • 百度文件系统(BFS)、集群调度系统(Galaxy)、分布式协 调服务(Nexus)是核心服务 master BFS master Nexus lock service 分布式软件栈中的BFS The Baidu Stack 网络通信框架Sofa-pbrpc 分布式文件系统 BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 - 中心化与去中心化0 码力 | 24 页 | 937.45 KB | 1 年前3 从百度文件系统看大型分布式系统设计中的定式与创新百度文件系统BFS - 万亿量级实时数据库Tera - 集群调度系统Galaxy • 个人主页&Blog - https://github.com/bluebore - http://bluebore.cn 提纲 • 百度文件系统简介 • 分布式系统设计实践 • 总结与致谢 百度的集群环境 • 单个集群通常几千台机器 • 百度文件系统(BFS)、集群调度系统(Galaxy)、分布式协 调服务(Nexus)是核心服务 master BFS master Nexus lock service 分布式软件栈中的BFS The Baidu Stack 网络通信框架Sofa-pbrpc 分布式文件系统 BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 - 中心化与去中心化0 码力 | 24 页 | 937.45 KB | 1 年前3
 降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 serviceC serviceC- degrade 弱依赖 强依赖 强依赖 备选服务 熔断、限流 降级 业界解决⽅方案 - HYSTRIX Netflix开源的一款容错框架,支持多种降级熔断技术 资源隔离 断路路器器 降级操作 请求合并 请求缓存 实践过程中遇到的问题 • 业务改造成本⾼高,代码耦合,维护成本增⾼高 • 固化策略略,需线下修改代码,测试,发布,线上应急策略略响应不不 指标规则计算 指标脚本 规则表达式 熔断 降级 条件 计算 降级消息 数据 存储 实时告警 规则配置 开发 ⽇日志解析规则 控制中⼼心 ETCD 降级服务 降级处理理 流处理理集群(Flink) HBase ES Redis 落地存储 数据服务 数据平台 实时告警 告警策略略 指标查询 指标脚本开发 指标配置 产品化 开发 复合指标计算如何处理理0 码力 | 26 页 | 18.67 MB | 1 年前3 降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 serviceC serviceC- degrade 弱依赖 强依赖 强依赖 备选服务 熔断、限流 降级 业界解决⽅方案 - HYSTRIX Netflix开源的一款容错框架,支持多种降级熔断技术 资源隔离 断路路器器 降级操作 请求合并 请求缓存 实践过程中遇到的问题 • 业务改造成本⾼高,代码耦合,维护成本增⾼高 • 固化策略略,需线下修改代码,测试,发布,线上应急策略略响应不不 指标规则计算 指标脚本 规则表达式 熔断 降级 条件 计算 降级消息 数据 存储 实时告警 规则配置 开发 ⽇日志解析规则 控制中⼼心 ETCD 降级服务 降级处理理 流处理理集群(Flink) HBase ES Redis 落地存储 数据服务 数据平台 实时告警 告警策略略 指标查询 指标脚本开发 指标配置 产品化 开发 复合指标计算如何处理理0 码力 | 26 页 | 18.67 MB | 1 年前3
 领域驱动设计&中台/物联网平台的反应式设计SaveShadow CalcDelta UpdateDelta SyncDelta Web Console 问题及应对之道 灵活性 弹性 资源竞争 • 每次局部业务更更新都需要 重新部署整个集群 • 局部业务性能瓶颈,弹性 扩容所有业务 • 加锁处理理资源竞争,增加 性能消耗 微服务 事件驱动 我们做了了什什么 EVENT STORMING EVENT STORMING 核⼼心0 码力 | 18 页 | 1.81 MB | 1 年前3 领域驱动设计&中台/物联网平台的反应式设计SaveShadow CalcDelta UpdateDelta SyncDelta Web Console 问题及应对之道 灵活性 弹性 资源竞争 • 每次局部业务更更新都需要 重新部署整个集群 • 局部业务性能瓶颈,弹性 扩容所有业务 • 加锁处理理资源竞争,增加 性能消耗 微服务 事件驱动 我们做了了什什么 EVENT STORMING EVENT STORMING 核⼼心0 码力 | 18 页 | 1.81 MB | 1 年前3
 领域驱动设计&中台/微服务的容器化实践Docker Registry, Harbor, JHipster ■���� ■ Kubernetes, Mesos, Docker Swarm ������������K8s������WireMock� ����� k8s�������� ���� ������������� ��Kubernetes�������������� ������������� ■ ������ ■ �������0 码力 | 19 页 | 1.86 MB | 1 年前3 领域驱动设计&中台/微服务的容器化实践Docker Registry, Harbor, JHipster ■���� ■ Kubernetes, Mesos, Docker Swarm ������������K8s������WireMock� ����� k8s�������� ���� ������������� ��Kubernetes�������������� ������������� ■ ������ ■ �������0 码力 | 19 页 | 1.86 MB | 1 年前3
共 25 条
- 1
- 2
- 3













