领域驱动设计&中台/可视化的遗留系统微服务改造拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 •基础设施⾃自动化 •容错设计 •演进式设计 可视化能帮我们什什么 掌握系统业务 明确系统边界 ⼩小步改造系统 可视化的认识遗留留系统 C4模型、⽤用户画像、⽤用户旅程 C4模型系统架构可视化 我们要做应⽤用代码拆分 我们要做数据库拆分 绞杀者模式 ‣“绞杀者模式”在既有系统资产的基础上实现数字IT创新,⾯面对创新的数字IT业务更更加灵活。 ‣通过在新的应⽤用中实现新特性,保持和现有系统的松耦合,仅在必要时将功能从原系统中剥离,以此逐步地 替换原有系统。 修缮者模式 ‣“修缮者模式”在既有系统资产的基础上,通过剥离新业务和功能,逐步“释放”现有系统耦合度,解决遗留留系 统质量量不不 友谊第⼀一 ⽐比赛第⼆二 降⻰龙⼋八步第⼀一式 ⽤用户 订单 商品 第⼀一式: 1. 明确要拆解的服务所涉及 的模块 2. 验证之前代码依赖分析和 数据库分析的结果 3. 约定“同⼀一类型数据只有⼀一 处修改”,以数据为中⼼心提 ⾼高内聚性,同时避免写冲 突的出现 遗留留系统 降⻰龙⼋八步第⼆二式 ⽤用户 订单 商品 遗留留系统 第⼆二式: 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 积分系统 基础服务 优惠券 宜人币 基金服务 保险服务 网贷服务 支付中心 用户中心 电子签章 人脸识别 营销平台 埋点 基础服务 会员系统 资金存管 账户中心 1� 服务�B� 2� 移动服务C 接入层 服务A 服务B 1 2 移动服务 接入层 v2 v3 v1 重要原则 幂等、接口可重入 接口规范化(命名、类型、长度等) 分布式事务,补偿、撤销机制 接口缓存,热数据尽可能前置 DB跟随服务 代码、逻辑、结构等都要适时重构 最终架构[简版] 移动后台打散,界限趋于不明显0 码力 | 42 页 | 19.96 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践BUSINESS MODEL 业务模型 BUSINESS MODEL 服务/方案 基础产品 基础支撑 金融云服务 聚合支付 乐享理财 帮你贷 八方数据 … 资金管理 供应链 分期支付 扫码分销 … 基础支付1 SDK支付 扫码支付 分期支付 比特币 银行卡 开户 监控 报表 … 基础支付2 单笔代收 单笔代付 语音支付 余额查询 批量代收 身份鉴权 批量代付 快捷 4.页面查询不推荐全表查询,查询通过查询条件限制查询条数 5.页面下载条数和下载次数做限制,避免请求过多导致OOM 6.SQL优化目标必须满足range、ref或者consts,不可以是all类型,避免慢SQL 导致连接数耗尽影响业务功能 7.代码书写中考虑MySQL中共享锁和排它锁场景,预防产生死锁 8.代码中不建议使用@Transactional,因为一般业务场景中用不到,它影响数0 码力 | 35 页 | 6.05 MB | 1 年前3
唯品会调度系统的前世今生无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 关注点在定时任务而非数据, 缺少分布式并行调度的功能 阿里早期开源的分布式任务调度系 统,代码略陈旧 作业类型较单一,只能是获取/处理 数据一种模式 当当开源的分布式任务调度系统 代码较新,使用Quartz进行调度。提供 高可用和分布式功能 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn 开源地址: Github.com/vipshop/Saturn 体系中的定位 服务化框OSP 开发框架Venus 唯品会基础架构体系 消息队列 VMS 全链路监控 Mercury 统一日志平台 dragonfly 任务调度平台 Saturn 统一配置中心 CfgCenter 统一鉴权中心 AuthCenter 功能地图 01 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业 分布式与本 地作业模式 • 完美兼容现有PHP的作业,可无缝迁移,成本最低 • 提供多种业务开发模式,满足不同的业务需求 • 多种业务运行模式,即可分布式管理也可本地管理 • 通过异步消息实现业务编排* 多种作业类型 人工指定 运行节点 系统自动0 码力 | 58 页 | 5.40 MB | 1 年前3
高性能高可用机票实时搜索系统分销 Cache Redis MQ MQ 航班数据 运价数据 应⽤用层 聚合层 报价源 基础数据 搜索框架 遇到问题 解决⽅方案 • 报价数量量多,内存问题 • 报价源多,不不稳定 • 响应时间要求苛刻 • 搜索条件有热点 • 缓存报价不不准 • 尽量量⽤用原⽣生数据类型,编码 • 回数⽐比例例,异步搜索更更新 • 分批回数 • ⼀一致性哈希,负载均衡 • 供应商粒度,主动更更新0 码力 | 26 页 | 1.94 MB | 1 年前3
领域驱动设计&中台/架构分层模型适配API服务 业务领域 基础设施 为前端应⽤用提供API服务,关注事务和分布式等技术性问题 领域模型和领域逻辑,关注业务概念。 访问外界系统(调⽤用外界系统)的技术相关实现。 后台服务 前端应⽤用 分层依据: ⼲干系⼈人和技术点 DDD分层参考架构 - 前端应⽤用 DDD重点关注后台业务服务,不不解决前端交互问题 前端界⾯面 API服务 业务领域 基础设施 前端应⽤用 前端应⽤用 良好的⽤用户体验 技术点: ⼈人机交互设计和实现 UX关注的层 DDD分层参考架构 为前端和第三⽅方应⽤用提供API服务,关注服务编排,事务和 分布式等 前端应⽤用 应⽤用服务 业务领域 基础设施 ⼲干系⼈人: 应⽤用开发⼈人员 诉求: 灵活易易使⽤用的API 技术点: 性能,事务,分布式,安全等⾮非功能性需求 API服务 ⼯工作内容: • 接收外部请求并响应: 如HTTP请求 ⼤大量量业务逻辑堆积 模型: • View Object • Resource Model DDD分层参考架构 领域模型和领域逻辑,关注业务概念。 前端应⽤用 API服务 领域模型 基础设施 ⼲干系⼈人: 业务领域专家,业务领导 诉求: 表现业务概念和实现业务价值 要点: 业务建模和复杂性管理理 ⼯工作内容: • 建⽴立业务模型,并体现在代码上 • 管理理模型复杂度,适度拆分模块0 码力 | 39 页 | 2.54 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
领域驱动设计&中台/领域驱动架构透析与架构解耦领域的边界 整洁架构 六边形架构 微服务架构 领域驱动架构的演进 经典的DDD分层架构 经典的DDD分层架构 经典的三层架构 避免贫⾎血模型 与基础设施的解耦 与基础设施的解耦 前后端的解耦 引⼊入应⽤用层 基础设施层的本质 DDD与C4模型 C4模型 分层架构 六边形架构 DDD与RUP 4+1视图 RUP 4+1 视图 RUP 4+1 视图与DDD的关系0 码力 | 29 页 | 3.02 MB | 1 年前3
共 27 条
- 1
- 2
- 3













