 领域驱动设计&中台/在一个实际复杂业务中落地DDD方法与相关架构0 码力 | 31 页 | 4.74 MB | 1 年前3 领域驱动设计&中台/在一个实际复杂业务中落地DDD方法与相关架构0 码力 | 31 页 | 4.74 MB | 1 年前3
 付钱拉金融云系统架构演进和最佳实践系统架构演进和最佳实践 SPEAKER 冯忠旗 分享者 冯忠旗 SHARER 付钱拉高级技术经理 讲点儿什么 SPEAK SOMETHING 演进之路 THE PATH OF EVOLUTION 01 业务模型 • 一无所有的初创期,单一架构轻装上阵 • 石器到工业的跃进,分布式架构保驾护航 • 化整为零,应对雪崩效应分而治之 • 从1到N的业务成长 02 架构演进过程 CONFUSION 需求设计阶段- 首次拦截 开发实现阶段-尽可能避免故障 系统运行阶段-及时发现故障 系统运行阶段-出现故障快速解决故障 思路 THINKING 预见运行期、所想即所得、限制和保护 设计可容错的系统(快速失败、超时、自动重路由) 设计具备自我保护的系统(拆分、限制、优雅停止) 制定合适的开发规范 撒网 实时监控(傻瓜式、开发不用查日志) 可视化运营 网络监控 耗时类(交易总时长、分段时长、SQL耗时、代码耗时) 统计类(订单量异常预警、非法IP预警、交易额过大) 网络异常(单通道和多通道、不同的分布场景) 撒网与实时监控 REAL-TIME MONITORING 可视化运营 VISUAL OPERATION 优先恢复 蓝绿部署 提前准备 服务降级 kill 慢SQL、摘节点、线 程栈和内存堆现场保留 反 向 代 理 反 向 代 理 APP1 APP2 APP3 APP10 码力 | 35 页 | 6.05 MB | 1 年前3 付钱拉金融云系统架构演进和最佳实践系统架构演进和最佳实践 SPEAKER 冯忠旗 分享者 冯忠旗 SHARER 付钱拉高级技术经理 讲点儿什么 SPEAK SOMETHING 演进之路 THE PATH OF EVOLUTION 01 业务模型 • 一无所有的初创期,单一架构轻装上阵 • 石器到工业的跃进,分布式架构保驾护航 • 化整为零,应对雪崩效应分而治之 • 从1到N的业务成长 02 架构演进过程 CONFUSION 需求设计阶段- 首次拦截 开发实现阶段-尽可能避免故障 系统运行阶段-及时发现故障 系统运行阶段-出现故障快速解决故障 思路 THINKING 预见运行期、所想即所得、限制和保护 设计可容错的系统(快速失败、超时、自动重路由) 设计具备自我保护的系统(拆分、限制、优雅停止) 制定合适的开发规范 撒网 实时监控(傻瓜式、开发不用查日志) 可视化运营 网络监控 耗时类(交易总时长、分段时长、SQL耗时、代码耗时) 统计类(订单量异常预警、非法IP预警、交易额过大) 网络异常(单通道和多通道、不同的分布场景) 撒网与实时监控 REAL-TIME MONITORING 可视化运营 VISUAL OPERATION 优先恢复 蓝绿部署 提前准备 服务降级 kill 慢SQL、摘节点、线 程栈和内存堆现场保留 反 向 代 理 反 向 代 理 APP1 APP2 APP3 APP10 码力 | 35 页 | 6.05 MB | 1 年前3
 微服务和Service Mesh 在多个行业落地实践微服务和Service Mesh 在多个行业落地实践 www.163yun.com 阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix 粒度更细:可指定服务版本,类,方法级别 配置灵活:可配置检测粒度为每M毫秒N个请求P%的错误率 指标多样:RT值,错误率,线程池参数 熔断 粒度更细:可指定调用者和被调用者服务版本,支持failover、failfast、failback容 错机制。 配置灵活:支持自定义超时时间和重试次数。 可自行定制:通过暴露自定义异常NSFExcetion解决任意业务方法的容错,支持超时、 failover,failfast容错。0 码力 | 39 页 | 3.06 MB | 1 年前3 微服务和Service Mesh 在多个行业落地实践微服务和Service Mesh 在多个行业落地实践 www.163yun.com 阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix 粒度更细:可指定服务版本,类,方法级别 配置灵活:可配置检测粒度为每M毫秒N个请求P%的错误率 指标多样:RT值,错误率,线程池参数 熔断 粒度更细:可指定调用者和被调用者服务版本,支持failover、failfast、failback容 错机制。 配置灵活:支持自定义超时时间和重试次数。 可自行定制:通过暴露自定义异常NSFExcetion解决任意业务方法的容错,支持超时、 failover,failfast容错。0 码力 | 39 页 | 3.06 MB | 1 年前3
 领域驱动设计&中台/基于DDD的领域建模中的模版和工具实践0 码力 | 36 页 | 3.81 MB | 1 年前3 领域驱动设计&中台/基于DDD的领域建模中的模版和工具实践0 码力 | 36 页 | 3.81 MB | 1 年前3
 领域驱动设计&中台/架构分层模型适配防腐化 — 分层模型适配 03 分层模型适配实例例 DDD分层参考架构 DDD分层参考架构 给⽤用户提供界⾯面,关注⽤用户交互和体验 前端应⽤用 API服务 业务领域 基础设施 为前端应⽤用提供API服务,关注事务和分布式等技术性问题 领域模型和领域逻辑,关注业务概念。 访问外界系统(调⽤用外界系统)的技术相关实现。 后台服务 前端应⽤用 分层依据: ⼲干系⼈人和技术点 API服务 业务领域 基础设施 前端应⽤用 前端应⽤用 ⼲干系⼈人: 终端⽤用户 诉求: 良好的⽤用户体验 技术点: ⼈人机交互设计和实现 UX关注的层 DDD分层参考架构 为前端和第三⽅方应⽤用提供API服务,关注服务编排,事务和 分布式等 前端应⽤用 应⽤用服务 业务领域 基础设施 ⼲干系⼈人: 应⽤用开发⼈人员 诉求: 灵活易易使⽤用的API 技术点: 模型: • View Object • Resource Model DDD分层参考架构 领域模型和领域逻辑,关注业务概念。 前端应⽤用 API服务 领域模型 基础设施 ⼲干系⼈人: 业务领域专家,业务领导 诉求: 表现业务概念和实现业务价值 要点: 业务建模和复杂性管理理 ⼯工作内容: • 建⽴立业务模型,并体现在代码上 • 管理理模型复杂度,适度拆分模块 •0 码力 | 39 页 | 2.54 MB | 1 年前3 领域驱动设计&中台/架构分层模型适配防腐化 — 分层模型适配 03 分层模型适配实例例 DDD分层参考架构 DDD分层参考架构 给⽤用户提供界⾯面,关注⽤用户交互和体验 前端应⽤用 API服务 业务领域 基础设施 为前端应⽤用提供API服务,关注事务和分布式等技术性问题 领域模型和领域逻辑,关注业务概念。 访问外界系统(调⽤用外界系统)的技术相关实现。 后台服务 前端应⽤用 分层依据: ⼲干系⼈人和技术点 API服务 业务领域 基础设施 前端应⽤用 前端应⽤用 ⼲干系⼈人: 终端⽤用户 诉求: 良好的⽤用户体验 技术点: ⼈人机交互设计和实现 UX关注的层 DDD分层参考架构 为前端和第三⽅方应⽤用提供API服务,关注服务编排,事务和 分布式等 前端应⽤用 应⽤用服务 业务领域 基础设施 ⼲干系⼈人: 应⽤用开发⼈人员 诉求: 灵活易易使⽤用的API 技术点: 模型: • View Object • Resource Model DDD分层参考架构 领域模型和领域逻辑,关注业务概念。 前端应⽤用 API服务 领域模型 基础设施 ⼲干系⼈人: 业务领域专家,业务领导 诉求: 表现业务概念和实现业务价值 要点: 业务建模和复杂性管理理 ⼯工作内容: • 建⽴立业务模型,并体现在代码上 • 管理理模型复杂度,适度拆分模块 •0 码力 | 39 页 | 2.54 MB | 1 年前3
 海尔实时计算平台技术选型与实践Sink : 已经处理的event数 Flume监控 日志数据获取实践 入库 解析 收集 采集 插码 实时数据采集新要求 业务系统无法配合修改,怎么办? CDC的几种方法: • 触发器 • 时间戳 • 全表比对 • 日志对比 Change Data Capture(CDC) Oracle CDC建议方案-OGG OGG监控 OGG监控可选方案: • 消息队列使用场景及选型 事务可靠性场景(ActiveMQ/RabbitMQ/RocketMQ): • 重要业务数据的异步处理 吞吐量优先场景(Kafka/RocketMQ): • 大规模数据的传输和收集 Kafka web管理界面: •Kafka Web Console •Kafka Manager •KafkaOffsetMonitor •Uber开源Kafka监控工具--Chaperone w3 … today lastday lastmonth 实时计算平台如何监控和报警? 海尔实时计算平台技术选型与实践 平台监控 • Ganglia • Nagios 海尔实时计算平台技术选型与实践 开源技术改造经验-数据可视化 数据可视化目标 目标:为公司所有数据分析类项目,提供数据洞察和展示工具。 数据可视化可选方案 • Caravel • Saiku • Zeppelin0 码力 | 41 页 | 3.21 MB | 1 年前3 海尔实时计算平台技术选型与实践Sink : 已经处理的event数 Flume监控 日志数据获取实践 入库 解析 收集 采集 插码 实时数据采集新要求 业务系统无法配合修改,怎么办? CDC的几种方法: • 触发器 • 时间戳 • 全表比对 • 日志对比 Change Data Capture(CDC) Oracle CDC建议方案-OGG OGG监控 OGG监控可选方案: • 消息队列使用场景及选型 事务可靠性场景(ActiveMQ/RabbitMQ/RocketMQ): • 重要业务数据的异步处理 吞吐量优先场景(Kafka/RocketMQ): • 大规模数据的传输和收集 Kafka web管理界面: •Kafka Web Console •Kafka Manager •KafkaOffsetMonitor •Uber开源Kafka监控工具--Chaperone w3 … today lastday lastmonth 实时计算平台如何监控和报警? 海尔实时计算平台技术选型与实践 平台监控 • Ganglia • Nagios 海尔实时计算平台技术选型与实践 开源技术改造经验-数据可视化 数据可视化目标 目标:为公司所有数据分析类项目,提供数据洞察和展示工具。 数据可视化可选方案 • Caravel • Saiku • Zeppelin0 码力 | 41 页 | 3.21 MB | 1 年前3
 全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash量子算法和软件研究 • 吕定顺博士,目前就职于华为2012实验室中 央研究院,毕业于清华大学交叉信息研究院 量子物理学专业,至今在量子计算、量子模 拟领域等已经有7年研究经验。博士期间,曾 在 Nature Physics,PRX,Nature Communication,PRL,PRA 等国际知名期刊 发表论文7篇,H index为7,论文累计引用 480次。目前专精并聚焦在量子软件和算法研 究领域。 究领域。 • 量子计算的基本原理 • 量子计算机遇和挑战 • 华为量子计算的进展 • 量子计算的潜在应用 量子计算的基本原理:叠加 Dead Live Curiosity Kill the Cat 1/2( Dead + |????⟩) Huawei Confidential 5 量子计算的基本原理:纠缠 Particle 1 Particle 2 1 2 ( ↓1 ↓2 2019 量子计算物理实现平台 超导 离子阱 硅量子点 金刚石色心 量子计算机遇和挑战 https://cacm.acm.org/magazines/2013/10/168172-a-blueprint-for-building-a- quantum-computer/fulltext 量子计算机遇和挑战 1、Hardware arXiv:1710.01022v2 Limited0 码力 | 34 页 | 5.57 MB | 1 年前3 全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash量子算法和软件研究 • 吕定顺博士,目前就职于华为2012实验室中 央研究院,毕业于清华大学交叉信息研究院 量子物理学专业,至今在量子计算、量子模 拟领域等已经有7年研究经验。博士期间,曾 在 Nature Physics,PRX,Nature Communication,PRL,PRA 等国际知名期刊 发表论文7篇,H index为7,论文累计引用 480次。目前专精并聚焦在量子软件和算法研 究领域。 究领域。 • 量子计算的基本原理 • 量子计算机遇和挑战 • 华为量子计算的进展 • 量子计算的潜在应用 量子计算的基本原理:叠加 Dead Live Curiosity Kill the Cat 1/2( Dead + |????⟩) Huawei Confidential 5 量子计算的基本原理:纠缠 Particle 1 Particle 2 1 2 ( ↓1 ↓2 2019 量子计算物理实现平台 超导 离子阱 硅量子点 金刚石色心 量子计算机遇和挑战 https://cacm.acm.org/magazines/2013/10/168172-a-blueprint-for-building-a- quantum-computer/fulltext 量子计算机遇和挑战 1、Hardware arXiv:1710.01022v2 Limited0 码力 | 34 页 | 5.57 MB | 1 年前3
 声明式自愈系统——高可用分布式系统的设计之道-王昕云开放云平台布道师。具有10多年软件 系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 发明专利,并多次受邀出席技术会议,做技术专题分享。 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 处理消息的服务节点可以随机选择 不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移 服务节点不能随便迁移 CAP Is Not Simply 2 out of 3 Ø 没有分区时,可用性和一致 性要兼得 Ø 经常要考虑的是可用性和一 致性各有一部分 Ø 根据不同设计应用需求有不 同的组合 Ø 重要的是系统如何恢复到 “最佳状态” 分区容错性 可 用 性 一 致 性 系 统 服 务 等 级 分区容错性 可 用 性 一 致 性 系 统 自 愈 程 度 Look Distributed0 码力 | 44 页 | 2.47 MB | 1 年前3 声明式自愈系统——高可用分布式系统的设计之道-王昕云开放云平台布道师。具有10多年软件 系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 发明专利,并多次受邀出席技术会议,做技术专题分享。 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 处理消息的服务节点可以随机选择 不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移 服务节点不能随便迁移 CAP Is Not Simply 2 out of 3 Ø 没有分区时,可用性和一致 性要兼得 Ø 经常要考虑的是可用性和一 致性各有一部分 Ø 根据不同设计应用需求有不 同的组合 Ø 重要的是系统如何恢复到 “最佳状态” 分区容错性 可 用 性 一 致 性 系 统 服 务 等 级 分区容错性 可 用 性 一 致 性 系 统 自 愈 程 度 Look Distributed0 码力 | 44 页 | 2.47 MB | 1 年前3
 大规模分布式系统架构下调测能力构建之道大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer website website website 用例的修改工作贯穿于整个开发工作之中。 3. 我和某同事通过服务框架进行调用联调,结果另一同事也把同 名服务挂了上来,不幸的是,他的服务版本和我们的不一样, 结果,一系列的灵异状况发生了… 4. 依赖的远程服务逻辑发生变化了,但负责它的团队没有通知到 我,结果上线后直接导致生产事故。 5. 我和其他团队共用一套分布式缓存服务,为了防止数据覆盖, 我只能和别人轮流排队上线调试,我等了一天,结果只能用一 将mock能力内置到分布式服务框架中 开发mock能力过滤器,在服务调用链路上对服务调用进行挡截。 “开关机制”控制mock能力启停 mock能力启用时,服务容器初始化期间将加载mock数据文件到内存中,每个服务请求将和mock数据的入参定 义进行比对,满足(静态匹配 或动态匹配)规范的请求,直接用mock数据的出参定义作为服务调用的结果。 应用无感知 无需修改应用代码,单元测试代码中也无需添加任何的mock语句。0 码力 | 19 页 | 2.74 MB | 1 年前3 大规模分布式系统架构下调测能力构建之道大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer website website website 用例的修改工作贯穿于整个开发工作之中。 3. 我和某同事通过服务框架进行调用联调,结果另一同事也把同 名服务挂了上来,不幸的是,他的服务版本和我们的不一样, 结果,一系列的灵异状况发生了… 4. 依赖的远程服务逻辑发生变化了,但负责它的团队没有通知到 我,结果上线后直接导致生产事故。 5. 我和其他团队共用一套分布式缓存服务,为了防止数据覆盖, 我只能和别人轮流排队上线调试,我等了一天,结果只能用一 将mock能力内置到分布式服务框架中 开发mock能力过滤器,在服务调用链路上对服务调用进行挡截。 “开关机制”控制mock能力启停 mock能力启用时,服务容器初始化期间将加载mock数据文件到内存中,每个服务请求将和mock数据的入参定 义进行比对,满足(静态匹配 或动态匹配)规范的请求,直接用mock数据的出参定义作为服务调用的结果。 应用无感知 无需修改应用代码,单元测试代码中也无需添加任何的mock语句。0 码力 | 19 页 | 2.74 MB | 1 年前3
 降级预案在同程艺龙的工程实践-王俊翔各应⽤用,没有统⼀一的管 理理和治理理。久⽽而久之,⽆无⼈人知道系统内有多少降级点,降级是如 何实现的 • 缺乏UI、没有灵活的参数、策略略配置,没有预案制定管理理能⼒力力 业务保障平台建设之路路 业务保障平台建设之路路 服务管理理 策略略管理理 预案制定 线上演练 • 降级服务统⼀一注册管理理,通过降 级服务质量量数据从整体反映各应 ⽤用的降级点和可⽤用性保障措施 • 降级策略略集中管理理,通过参数 应⽤用、服务元数据、状态数据,etcd、mysql双份存储 • 后台实时监控应⽤用、服务,实时变更更降级策略略 proxy 服务质量量数据采集 业务数据采集 ⽇日志 ⽂文件 应⽤用数据采集 应⽤用数据 ⽅方法数据 执⾏行行结果 执⾏行行耗时 异常数据 … JVM内存 JVM线程 GC数据 业务数据 SDK数据 ⾃自定义数据 系统数据采集 容器器数据 CPU数据 内存数据 磁盘数据 … ⽹网络数据 ⽇日志 ⽂文件 系统数据采集 容器器数据 CPU数据 内存数据 磁盘数据 … ⽹网络数据 采集 Agen t ⽇日志中⼼心 KAFKA 数据处理理 应⽤用数据采集 应⽤用数据 ⽅方法数据 执⾏行行结果 执⾏行行耗时 异常数据 … JVM内存 JVM线程 GC数据 业务数据 SDK数据 ⾃自定义数据 数据通道(⻓长链接单通道) 数据采集 Proxy • 单⼯工直连数据通道0 码力 | 26 页 | 18.67 MB | 1 年前3 降级预案在同程艺龙的工程实践-王俊翔各应⽤用,没有统⼀一的管 理理和治理理。久⽽而久之,⽆无⼈人知道系统内有多少降级点,降级是如 何实现的 • 缺乏UI、没有灵活的参数、策略略配置,没有预案制定管理理能⼒力力 业务保障平台建设之路路 业务保障平台建设之路路 服务管理理 策略略管理理 预案制定 线上演练 • 降级服务统⼀一注册管理理,通过降 级服务质量量数据从整体反映各应 ⽤用的降级点和可⽤用性保障措施 • 降级策略略集中管理理,通过参数 应⽤用、服务元数据、状态数据,etcd、mysql双份存储 • 后台实时监控应⽤用、服务,实时变更更降级策略略 proxy 服务质量量数据采集 业务数据采集 ⽇日志 ⽂文件 应⽤用数据采集 应⽤用数据 ⽅方法数据 执⾏行行结果 执⾏行行耗时 异常数据 … JVM内存 JVM线程 GC数据 业务数据 SDK数据 ⾃自定义数据 系统数据采集 容器器数据 CPU数据 内存数据 磁盘数据 … ⽹网络数据 ⽇日志 ⽂文件 系统数据采集 容器器数据 CPU数据 内存数据 磁盘数据 … ⽹网络数据 采集 Agen t ⽇日志中⼼心 KAFKA 数据处理理 应⽤用数据采集 应⽤用数据 ⽅方法数据 执⾏行行结果 执⾏行行耗时 异常数据 … JVM内存 JVM线程 GC数据 业务数据 SDK数据 ⾃自定义数据 数据通道(⻓长链接单通道) 数据采集 Proxy • 单⼯工直连数据通道0 码力 | 26 页 | 18.67 MB | 1 年前3
共 33 条
- 1
- 2
- 3
- 4













