领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进
化繁为简 DDD驱动复杂业务软件架构的演进 广联达科技 白彦磊 CONTENTS CONTENT 产品介绍 业务挑战及架构目标 架构演进 总结展望 CONTENTS CONTENT 产品介绍 业务挑战及架构目标 架构演进 总结展望 全过程、全流程、一站式平台 产品特点 业务复杂 多专业领域 BIM全过程流转 人机交互频繁 产品规模大 350万+代码行 150+人团队0 码力 | 33 页 | 1.25 MB | 1 年前3声明式自愈系统——高可用分布式系统的设计之道-王昕
自我介绍 王昕,阿里中间件技术团队高级技术专家,阿里云开放云平台布道师。具有10多年软件 系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 发明专利,并多次受邀出席技术会议,做技术专题分享。 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 message is lost Liveness •Something good will eventually happen •e.g. is able to receive message 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 依据声明式自愈的理念设计系统 有一个统一的状 如何设计好状态机和自愈协议? Writing Correct Software Is Hard! Math and Thinking Can Help Us! Ø TLA+ 是用来给(软件或硬件)系统建模的语言 Ø TLA+ 强调排除特定编程语言(软件或硬件)的影响验证系 统设计 Ø TLA+ 由 Paxos 协议的发明人 Leslie Lamport 发明 使用 TLA+ 定义和验证系统设计 Why TLA+0 码力 | 44 页 | 2.47 MB | 1 年前3刘道平-从0到1,移动政务应用小程序系统架构演化
毕业于华南理工大学 软件工程硕士 • 2001年开始从事软件研发工作,参与过税务、电信、银行、 基金、海关等多个行业大型业务系统的研发 • 有高级程序员、PMP、ScrumMaster证书 • TGO广州会员 简介 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 目录 1、当前政务移动应用APP发展情况 公众号采用H5技术,用户办理过程因加载时间长,导致用户体验不 佳。 3、移动政务应用痛点 VS 核心功能 3 少填少报、少跑快办 1 一次认证、全网通办 2 原生体验、 风格一致 4 实时运营、 即时反馈 目录 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 4、一个特殊的移动政务应用项目 资源少:初期团队人员少、 业务推动阻力大 1 时间紧: 1月启动,5月上线 2 目标高:高频便民服务、 突出改革亮点,迎接大领 导视察 4 需求多:公积金、社 保、出入境、交管等, 服务很多,需要梳理 目录 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 5、技术路线选型,APP0 码力 | 35 页 | 15.60 MB | 1 年前3从百度文件系统看大型分布式系统设计中的定式与创新
alaxy)、分布式协 调服务(Nexus)是核心服务 • 实时任务与批量任务混合部署 Galaxy master BFS master Nexus lock service 分布式软件栈中的BFS The Baidu Stack 网络通信框架Sofa-pbrpc 分布式文件系统 BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 最底层的仲裁者 - 不能依赖ZooKeeper等系统选主 - 分布式的双主问题只从存储系统解决 这些设计给BFS带来哪些优势? HDFS BFS 名字节点 扩展方式 联邦式 分裂的目录树 分布式 统一的目录树 宕机恢复时间 分钟级 秒级 外部依赖 ZooKeeper & QJM 无 开发语言 Java C++ Q&A • 欢迎参与BFS的开发 • https://github0 码力 | 24 页 | 937.45 KB | 1 年前3全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash
量子算法和软件研究 • 吕定顺博士,目前就职于华为2012实验室中 央研究院,毕业于清华大学交叉信息研究院 量子物理学专业,至今在量子计算、量子模 拟领域等已经有7年研究经验。博士期间,曾 在 Nature Physics,PRX,Nature Communication,PRL,PRA 等国际知名期刊 发表论文7篇,H index为7,论文累计引用 480次。目前专精并聚焦在量子软件和算法研 究领域。 Fermion 升级 HiQ Framework 升级 HiQ Simulator 提供丰富 Ansatzes 选项 兼容多种常用化学 软件 Drivers 实现 VQE 业界最 大规模分子模拟 包含丰富的控制脉 冲库 兼容业界多款优化 控制软件 运行速度数倍加速 合作高校实验平台 演示 全新设计IDE界面 上线Block UI编 程模式 推出 mapper功 能 开放 HiQ 发的一套软件包。它包括数据结构和工具用以获取和操作费米子哈密 顿量、并将之转化为量子-经典混合架构可以实现的量子态制备、演化 和测量、以及优化参数更新等全套工具。HiQ Fermion 可以在华为云 上提供一站式量子化学模拟解决方案。 1.全面的初态 Ansatz 函数库,包括 UCC、Hardware Efficient, Qubit CC 等 2.兼容多种常见的经典量子化学软件如 Gaussian,NWChem,PySCF0 码力 | 34 页 | 5.57 MB | 1 年前3分布式 KV 存储系统 Cellar 演进之路
有多年分布式存储研发经验 个人简介 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar,英文原意是酒窖,项目取名Cellar,一方面借用其储藏 之意,同时,也希望使用Cellar的用户,可以像用酒窖藏酒一样,越 架构升级 性能优化 可用性优 化 可运维性 Cellar 开源 Tair • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 Cellar—中心节点架构演进 一致性: • 主备强一致 • observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 存储节点Failover,越快越好? • 数据补全对业务影响 • 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? • 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入0 码力 | 34 页 | 1.66 MB | 1 年前3领域驱动设计&中台/可视化的遗留系统微服务改造
CONTENTS 01 引⾔言 02 可视化的认识遗留留系统 03 可视化的划分遗留留系统 04 可视化的拆解遗留留系统 引⾔言 遗留留系统、微服务架构 任何⼈人类的设计都会腐化 软件当然也不不例例外 拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 领域驱动设计 ‣领域驱动设计是⼀一种处理理⾼高度复杂域的设 计思想,试图分离技术实现的复杂性, 围 绕业务概念构建领域模型来控制业务的复 杂性,以解决软件难以理理解,难以演化等 问题。团队应⽤用它可以成功地开发复杂业 务软件系统,使系统在增⼤大时仍然保持敏敏 捷。 事件⻛风暴暴⼯工作坊 - Event Storming是⼀一种领域建模的实践,是⼀一种快速 探索复杂业务领域的⽅方法: 通过事件的⽅方式对过去发⽣生的事情进⾏行行溯源, 因为过去所发⽣生的对业务有意义的信息都会 通过某种形式保存下来。事件⻛风暴暴能够让领 域专家和⼯工作坊参与者⼀一起明确在业务上究 竟是什什么领域模型发⽣生了了什什么改变,最终的 软件系统需要关注业务过程中发⽣生的业务数 据的变化。 事件⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存0 码力 | 54 页 | 3.85 MB | 1 年前3微服务和Service Mesh 在多个行业落地实践
集 群 API网关 (流量接入层) 路由 路由 插件 分流 流量 镜像 维护 开关 API 监控 认证 鉴权 治理 文档 报表 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 定时测试,MOCK测试 测试,生产镜像仓库分离,自 动同步 开发测试环境自动部署,生产 环境手动触发 持续集成 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 文档与运行时一致 减少调用沟通成本 可自行定制:路由插件,可开发插件拦截请求,进行定制化 API网关负责流量接入 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库0 码力 | 39 页 | 3.06 MB | 1 年前3领域驱动设计&中台/如何让DDD落地
当需求发⽣生变化时 04 把⼤大象塞进冰箱 01 为什什么DDD难落地 从2003年年由Eric Evans提出DDD以后,在软件开发领域⼀一直 都是雷雷声⼤大,⾬雨点⼩小。这⼏几年年之所以开始⽕火起来,主要的功 劳也要给队友“微服务”,那么这是为什什么呢? DDD的⽬目标是什什么 软件设计的⻔门槛是什什么 DDD⾥里里难懂的概念 谁来做领域专家? 产品经理 技术组长 架构师 系统分析师 如何从需求到DDD? 订单聚合 仓库聚合 领域层 领域故事如何变成代码 创建订单服务收到命令后,会把创建订单命令转换成订单,然后调⽤用订单仓库进⾏行行保 存,保存成功后会让事件发布器器发布订单已创建事件 软件中最痛苦的就是需求经常发⽣生变化,这也是DDD想要解 决的问题之⼀一, 03 当需求发⽣生变化时 为什什么需求会变化? 需求提出者不不⼀一定想好了了 需求提出者的问题变化了了 沟通过程信息丢失0 码力 | 32 页 | 3.25 MB | 1 年前3高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁
⾃自我介绍 ⾃自我介绍 • 沈泰宁 • R&D Engineer @ PingCAP • Maintainer • rust-prometheus • grpc-rs • … ⽬目录 • What is TiDB? • How to test? What is TiDB? Single Point Single Point of Failure Asynchronous0 码力 | 45 页 | 4.63 MB | 1 年前3
共 18 条
- 1
- 2