领域驱动设计&中台/架构分层模型适配API服务 业务领域 基础设施 为前端应⽤用提供API服务,关注事务和分布式等技术性问题 领域模型和领域逻辑,关注业务概念。 访问外界系统(调⽤用外界系统)的技术相关实现。 后台服务 前端应⽤用 分层依据: ⼲干系⼈人和技术点 DDD分层参考架构 - 前端应⽤用 DDD重点关注后台业务服务,不不解决前端交互问题 前端界⾯面 API服务 业务领域 基础设施 前端应⽤用 前端应⽤用 良好的⽤用户体验 技术点: ⼈人机交互设计和实现 UX关注的层 DDD分层参考架构 为前端和第三⽅方应⽤用提供API服务,关注服务编排,事务和 分布式等 前端应⽤用 应⽤用服务 业务领域 基础设施 ⼲干系⼈人: 应⽤用开发⼈人员 诉求: 灵活易易使⽤用的API 技术点: 性能,事务,分布式,安全等⾮非功能性需求 API服务 ⼯工作内容: • 接收外部请求并响应: 如HTTP请求 ⼤大量量业务逻辑堆积 模型: • View Object • Resource Model DDD分层参考架构 领域模型和领域逻辑,关注业务概念。 前端应⽤用 API服务 领域模型 基础设施 ⼲干系⼈人: 业务领域专家,业务领导 诉求: 表现业务概念和实现业务价值 要点: 业务建模和复杂性管理理 ⼯工作内容: • 建⽴立业务模型,并体现在代码上 • 管理理模型复杂度,适度拆分模块0 码力 | 39 页 | 2.54 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 •基础设施⾃自动化 •容错设计 •演进式设计 可视化能帮我们什什么 掌握系统业务 明确系统边界 ⼩小步改造系统 可视化的认识遗留留系统 C4模型、⽤用户画像、⽤用户旅程 C4模型系统架构可视化 我们要做应⽤用代码拆分 我们要做数据库拆分 绞杀者模式 ‣“绞杀者模式”在既有系统资产的基础上实现数字IT创新,⾯面对创新的数字IT业务更更加灵活。 ‣通过在新的应⽤用中实现新特性,保持和现有系统的松耦合,仅在必要时将功能从原系统中剥离,以此逐步地 替换原有系统。 修缮者模式 ‣“修缮者模式”在既有系统资产的基础上,通过剥离新业务和功能,逐步“释放”现有系统耦合度,解决遗留留系 统质量量不不 降⻰龙⼋八步第四式 ⽤用户 订单 商品 第四式: 1. 将⽤用户模块单独部署成独 ⽴立运⾏行行的⽤用户服务,同时 引⼊入微服务基础设施,如 服务注册,服务发现, API Gateway等。 2. 确保新的⽤用户服务链接原 始数据库 ⽤用户 遗留留系统 微服务 基础设施 降⻰龙⼋八步第五式 ⽤用户 订单 商品 第五式: 1. 修改商品模块,使⽤用新的 ⽤用户服务,修改⽤用户服务0 码力 | 54 页 | 3.85 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+安全加密 网贷服务 CDN 支付结算 订单 DB从 批 处 理 系 统 活动 DB主 DB从 版本管理 产品 ... 同步 …... 网站、基础服务 移动后台 业务和团队规模迅速扩张 粗粒度服务化,基础设施完善 CDN/页面缓存/静态站/缓存集群 移动后台旁路 流程double,冗余开始出现 移动后台单体 继续成长,瓶颈明显 后台日益庞大,业务冗余严重 性能 并发 幂等 交易 缓存 基础服务 消息 监控 配置 报警 MIS OpenAPI 微信 财富圈 移动后台 商城MIS WAP … … Android/ios/h5/php/openApi 积分系统 基础服务 优惠券 宜人币 基金服务 保险服务 网贷服务 支付中心 用户中心 电子签章 人脸识别 营销平台 埋点 基础服务 会员系统 资金存管 账户中心 极大消除冗余,三级两层划分 底层服务有序汇总直面前端 流量统一出口 积分系统 优惠券 基金服务 保险服务 理财服务 支付中心 电子签章 第三方系统 营销支持 基础服务 数据支持 批处理 … 网关(略) 移动基础服务 消息 监控 配置 报警 金融产品 Yiri 财富圈 首页 feed 活动中心 微信 WAP 4G 积分商城 ... ... 账户中心 迅速响应业务变化0 码力 | 42 页 | 19.96 MB | 1 年前3
美团点评旅游推荐系统的演进•相似度改进:时间序列衰减 •基于用户搜索行为 •基于搜索后浏览POI行为构造矩阵,计算 POI相似度 •User CF •loglikelihood ratio 基于用户画像的推荐 •基础属性 •性别、年龄、职业 •人群属性 •有车:汽车保养 •宅男:外卖 •情侣:电影 •亲子:儿童乐园 •旅游达人:酒店旅游交通 •推荐 •基于用户标签计算POI标签 •精确匹配:给亲子类用户推荐亲子类POI Query CF 用户行为 Location- Based Item CF User CF 用户画像 离线 计算 层 用户基础数据 路由调用 Deal&POI数据 日志基础数据 用户偏好 协同过滤 城市热单 应用数据 基础数据 算法 模型 调 度 / 协 调 服 务 基础数据 任务调度平台 POI中心 Deal中心 ElasticSearch POI Index Deal New 0 码力 | 49 页 | 5.97 MB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践Stream 特点 * 出现早(7年年前)、已发布 V2 * 在 Android ⼴广泛使⽤用,有⽤用户基础 * 全栈:客户端 + 服务端 + 前端 * 活跃度:RxJava Github Java 排名 No. 2 出现较晚(3年年) Spring 加持,有发展前景 Scala,⽤用户基础 少、普及难度⼤大 稳定性 ? ? ? 普及性 ? ? ? 切换成本 业务框架不不会锁定 :有 涉及线程池:EventLoop / Provider / Consumer / 阻塞操作 的线程池 • 进⼀一步提升性能 •阻塞检测(异步配套):提早发现问题,降低全异步升级成本和⻛风险 • 基于 基础软件 AliJDK(JVM团队) 提供JVM级API的阻塞点检测(业界领先) • 基于 ⾮非阻塞的任务(计算线程)的执⾏行行时⻓长 •统⼀一的线程上下⽂文传递⽅方案(业务&中间件) • 应⽤用不不再需要关⼼心 ⽬目标与规划 • 实现分布式回压(backpressure) • 保证整体系统稳定不不过载且充分利利⽤用资源 • 2018双11有试点实验,后续重点 •通过回压把应⽤用集群压⼒力力反馈到基础设施 • 更更精准有效的应⽤用弹性调度 •实现全异步/流式为核⼼心的服务框架 • 考虑引⼊入 Kotlin 协程 •符合现在过程式的编程习惯(⾮非 FP ⻛风格) THANKS ⽀支撑下⼀一个⼗十年年业务的架构!0 码力 | 27 页 | 1.13 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践www.163yun.com 阶段一:单体架构群,多个开发组,统一运维组 www.163yun.com 阶段二:组织服务化,架构SOA化,基础设施云化 www.163yun.com 阶段三:组织DevOps化,架构微服务化,基础设施容器化 www.163yun.com Hailo Amazon Netflix 来源: https://www.linkedin.c 163yun.com 设计要点十二:全链路压测 www.163yun.com 微服务平台总览 容器平台 (多集群基础设施) Pod & Deployment 网络 Calico, OVS 存储 Ceph 滚动更新 弹性伸缩 日志中心 基础设施监控 开 发 集 群 测 试 集 群 生 产 集 群 API网关 (流量接入层) 路由 路由0 码力 | 39 页 | 3.06 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践BUSINESS MODEL 业务模型 BUSINESS MODEL 服务/方案 基础产品 基础支撑 金融云服务 聚合支付 乐享理财 帮你贷 八方数据 … 资金管理 供应链 分期支付 扫码分销 … 基础支付1 SDK支付 扫码支付 分期支付 比特币 银行卡 开户 监控 报表 … 基础支付2 单笔代收 单笔代付 语音支付 余额查询 批量代收 身份鉴权 批量代付 快捷0 码力 | 35 页 | 6.05 MB | 1 年前3
领域驱动设计&中台/领域驱动架构透析与架构解耦领域的边界 整洁架构 六边形架构 微服务架构 领域驱动架构的演进 经典的DDD分层架构 经典的DDD分层架构 经典的三层架构 避免贫⾎血模型 与基础设施的解耦 与基础设施的解耦 前后端的解耦 引⼊入应⽤用层 基础设施层的本质 DDD与C4模型 C4模型 分层架构 六边形架构 DDD与RUP 4+1视图 RUP 4+1 视图 RUP 4+1 视图与DDD的关系0 码力 | 29 页 | 3.02 MB | 1 年前3
苏宁易购小程序架构实践 苏宁 禹立彬登录,授权获取用户信息,支付,通知消息,客服等等 • 对于这些生态功能来说,也需要一系列基础服务去支持 小程序的不足 • 组件化能力不足,代码复用能力弱 • API不统一,代码无法兼容 • 这些呼唤着快速解决方案 苏宁的小程序群 • 苏宁易购小程序,苏宁拼购,苏宁特卖,苏宁母婴。。。 • 苏宁优惠等 苏宁小程序平台 1 小程序基础服务 CONTENTS 1 域名收敛服务 通过统一的网关,request域 转化率 3 小程序业务组件 CONTENTS • 使用原生的方式开发,没有使用wepy等框架 • 分包加载,主包原则只放购物主流程 • 尽量压缩业务代码,减少文件大小 • 控制基础库版本,减少对用户的影响 request,登录与302 request,登录与302 在网页状态下运行良好的登录机制,在小程 序下,无法兼容。 loginRequest组件 请求专用接口,并保存登录状态0 码力 | 36 页 | 833.39 KB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕王昕 高级技术专家 自我介绍 王昕,阿里中间件技术团队高级技术专家,阿里云开放云平台布道师。具有10多年软件 系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 发明专利,并多次受邀出席技术会议,做技术专题分享。 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 验证系统自愈特性——目标状态 Desired State 使用 TLA+ 验证系统自愈特性——实际状态 Realized State 设计实现声明式自愈系统的工具与方法 架构选型 •选择基础状态持久化框架 •参考系统:Kubernetes 高可用 系统设计 •设计并验证高可用分布式系统 •参考工具:TLA+ Toolkit 系统实现 •实现高可用系统的控制模块 •参考模式:Kubernetes TLA+ 中实现的卡壳(Stutter)等价能力,即对所有状态保持不变 也是合法状态 最佳实践分享 有关分布式系统统一 API 的设计 Ø 所有API应该是声明式的 Ø 高层API以操作意图为基础设计 Ø 低层 API 根据高层 API 的控制需要设计 Ø API 对象是彼此互补而且可组合的 Ø 尽量避免简单封装,不要有隐藏的内部 API Ø API 操作复杂度与对象数量成正比 Ø0 码力 | 44 页 | 2.47 MB | 1 年前3
共 24 条
- 1
- 2
- 3













