领域驱动设计&中台/可视化的遗留系统微服务改造⼩小步改造系统 可视化的认识遗留留系统 C4模型、⽤用户画像、⽤用户旅程 C4模型系统架构可视化 国家级 省级 道路路级 市级 C4模型系统架构可视化 系统上 下⽂文图 容器器图 代码图 组件图 已可视化 ⽤用户画像和旅程系统功能⽤用户可视化 ⽤用户画像 ⽤用户旅程 已可视化 突出⽤用户信息,诉求和价值体现 还原业务场景 可视化的划分遗留留系统 领域驱动设计、事件⻛风暴暴⼯工作坊、服务画布 ⽤用⽤用户模块的依赖点都改成 REST API后在进⾏行行下⼀一步,否 则会导致系统进⼊入中间状态 遗留留系统 REST API 降⻰龙⼋八步第四式 ⽤用户 订单 商品 第四式: 1. 将⽤用户模块单独部署成独 ⽴立运⾏行行的⽤用户服务,同时 引⼊入微服务基础设施,如 服务注册,服务发现, API Gateway等。 2. 确保新的⽤用户服务链接原 始数据库 ⽤用户 遗留留系统 微服务 基础设施 遗留留系统中还会包含前端代码和存储过程,也需要通过代码依 赖分析和数据库依赖分析进⾏行行拆解 4. 服务间依赖不不⼀一定只有REST API,可以通过异步消息、数据 冗余等⽅方式,根据实际情况进⾏行行选择 5. 部署新微服务后,推荐让新⽼老老系统并⾏行行⼀一段时间,通过分流让 少部分流量量进⼊入新微服务,确保改造更更加安全 总结 C4模型 领域驱动设计 事件⻛风暴暴⼯工作坊 Structure 1010 码力 | 54 页 | 3.85 MB | 1 年前3
领域驱动设计&中台/演进式架构的平台化落地Contract Correlation IDs Chaos Monkey incremental change “架构量量⼦子(architectural quantum)”是⼀一个可独 ⽴立变化并部署的单元组件,其具有⾼高功能内聚性, 包含⼀一个系统正常⼯工作所需的所有结构要素。 Checkout component component component database component component component component microservice container ⼤大泥泥球 ⼤大量量⼦子尺⼨寸的应⽤用阻碍频 繁增量量变更更,因为⾼高耦合 性需要⼀一次部署⼤大量量代码、 ⼤大量量的应⽤用。 单例例架构 ⾮非结构的单例例架构 user interface Class Class Class Class Class Class Class 研发学习成本 企业研发⼯工具链⽣生态 敏敏捷协作平台 部署发布 平台 持续交付流⽔水线平台 ⾃自动测试 平台 微服务系统设计,研发与运维管理理 微服务 /API设 计 代码 ⽣生成 契约 服务 架构 演进 微服务 运维治 理理 部署架 构 设计 统⼀一协作平台 研发⼯工具连 为某企业做的微服务平台规划 部署架构设计 服务 契约 定义 契约 代码 评审0 码力 | 42 页 | 2.95 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕Consumer B2 Topic A 分布式消息系统的部署模型 Producer Discovery Service Cluster Consumer Consumer Consumer Producer Producer Server Group 0 Server Group 1 分布式消息系统在 Kubernetes 下的部署运维 Server Master Pod-0-0 的重点工作在与设计安全性原则 Ø 目前 TLA+ 工具已经有云服务上线,但只支持检查安全性 Ø 单机版的 TLA+ 工具支持系统活性的检查,但是性能比较差 Ø 活性检查的性能瓶颈在于系统状态图中强连通图算法的实现 Ø TLA+ 中实现的卡壳(Stutter)等价能力,即对所有状态保持不变 也是合法状态 最佳实践分享 有关分布式系统统一 API 的设计 Ø 所有API应该是声明式的 Ø 高层API以操作意图为基础设计0 码力 | 44 页 | 2.47 MB | 1 年前3
领域驱动设计&中台/用状态机封装领域逻辑请扫我微信以便当场转账 加微信时烦告知尊姓大名 作用 学校里经常教的 编译原理 电子设计自动化 通信协议 …… 作用 三个不同的图 图形 视角 映射到实现 类图 全局、静态 类的签名 序列图 局部(用例)、动态 类之间的协作 状态机图 类、动态 所有的逻辑 测试 答对问题有奖金 金额从2.56元到20.48元 请扫我微信以便当场转账 加微信时烦告知尊姓大名 作用 逻辑内移 减少get/set 接口变简单 要素 状态 行为由组合决定 复杂就在这里! 状态--表现相同行为的属性值和链接的组合 状态 状态机图 vs. 活动图 顶点和边的含义相反 不同的思考范型 “状态的类”要说得通! 状态 网络上随便搜来 的“状态机图” 状态 子状态 互斥 状态 分层复用行为 提炼公共迁移 状态 缺省和历史 不是“流程开始”的意思 进入状态时,缺省的子状态0 码力 | 30 页 | 1.75 MB | 1 年前3
ServiceComb 开源微服务框架技术演进之路 巨震独立应用模块 • 通信:协议、队列 • SDK引用 • 通信:http、 RPC… • 服务治理 • 透明代理 • 通信:通用协议 • 服务治理 • Cloud Native部署 ServiceComb 一个基于SDK的“传统”微服务框架 Service Center service Java chassis Config Center service myns sidecar-injector=enabled 用户案例 原则 • 架构稳定,有可持续发展、演进能力 • 支持多语言、传统微服务和新兴ServiceMesh微服务 架构混合场景部署 • 有大型成功商用案例 • 无商业强绑定,高自由度,企业自主可控 • 完整的生态栈,涵盖开源主流微服务运维和安全领域 • 低学习成本,有编程语言基础即可快速上手 华为开源 ServiceMesh方案 统一服务治理中心 ServiceComb SDK Java应用 PHP应用 0侵入改造 支持多种开发语言 解决Java和PHP共存场景 传统与新兴微服务化方式共存 混合部署、协同治理 丰富的监控运维 细化到业务层面的微服务监控运维 遗留应用0改造 支持0侵入业务代码,使用成本低,对 原有业务无影响 开发方式不变 ServiceComb0 码力 | 20 页 | 861.58 KB | 1 年前3
海量用户推送后台系统架构实践-曾振波极光推送后台系统架构 02 01 06 03 07 05 04 08 模块化 异步化 并行化 缓存化 程序及系统优化 基础组件服务化 链接管理 系统安全 09 新技术的应用——K8S部署业务 模块化 • 模块业务逻辑All In导致相互影响,更新升级难度大 • 功能按照业务拆分解耦 • 数据和业务分离 • 快速迭代 • 模块间通过MQ/RPC交互 极光推送后台系统架构 IDC6 Conn 系统安全 • 网络安全 • 对外业务隔离,异地多机房部署,健康检查,业务快速部署及调度 • 通信安全 • SSL,私有加密协议 • 服务安全 • 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 • 监控及告警 • 多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低 • 弹性扩容 • 配置统一管理0 码力 | 23 页 | 1.26 MB | 1 年前3
数字货币交易系统架构 Python实现 黄毅amount from tmp where orders.id=tmp.id; delete from orders where id = ANY[%s] 交易系统架构设计-部署 • 有状态服务,单独部署集群 • 数据库 • Redis • 无状态服务,k8s/docker swarm • Restful api • Websocket api • 异步任务 3 钱包实现 钱包实现 钱包的功能 • 地址生成和私钥管理 • 构建并签名交易 • 监听充值交易的发生 • 跟踪交易的确认数 钱包的实现-使用官方钱包节点的rpc接口 • 难以维护和部署 • 私钥存储不安全 • 冷热钱包分离复杂 钱包的实现-分离地址生成和签名算法 • 可以自行负责私钥存储 • 可以自己实现冷钱包 • 钱包节点只负责区块链数据解析的工作和广播交易 • 甚至可以直接使用第三方节点API0 码力 | 24 页 | 799.65 KB | 1 年前3
付钱拉金融云系统架构演进和最佳实践统计类(订单量异常预警、非法IP预警、交易额过大) 网络异常(单通道和多通道、不同的分布场景) 撒网与实时监控 REAL-TIME MONITORING 可视化运营 VISUAL OPERATION 优先恢复 蓝绿部署 提前准备 服务降级 kill 慢SQL、摘节点、线 程栈和内存堆现场保留 反 向 代 理 反 向 代 理 APP1 APP2 APP3 APP1 APP2 APP3 APP1 APP2 和第三方接口交互,需要考虑设置合适的work线程符合第三方并发数量限制 二 安全规范 1.页面请求参数严格限制或者校验处理,防止SQL注入 2.页面URL请求做细粒度的权限拦截,防止访问权限过大 3.部署在公网的应用做好防止XSS攻击的防范措施 4.和第三方系统交互需要互加白名单确保安全 5.系统全站提供HTTPS服务 6.和第三方系统交互报文需要加密传输 7.用户敏感数据做数据脱敏 8.预防页面被频繁请求,占用系统资源 随着业务量的增加,考虑功能拆分和数据库表拆分,除此支付系统建议按照通道 拆分,不同的通道指定独立的work线程,分而治之,避免相互之间影响;提高并发的一个思路就是拆分, 拆分后通过异步提高并发效率 金融系统最大的成功是部署了一套可靠的、稳定的解决方案, 而不是什么新奇的东西。0 码力 | 35 页 | 6.05 MB | 1 年前3
联想-贺钢架构工作在国际化项目中的应用实例国际化项目的一些不同点 • 目标客户不同: 文化习俗, 客户需求, 用户体验… • 要求不同: 各国法律法规(版权,协议,第三方,accessibility), 安全性和隐私… • 地域不同: 服务器的部署, 用户的访问, 组织架构, 团队沟通… 项目实例 -- XA项目背景及需求 • 多设备协作 PC, Mobile, Pad, Cloud… • 跨设备及云智能搜索 • 语音等多种输入方式 数据库(Mysql)多台(数据在一个数据中心) 千万到亿 增加Web服务器内存缓存,集群,IP负载均衡,基于内 容请求分发,Mysql优化(如减少写,2/8原则),数据在 一个数据中心 亿以上 增加异地部署(建议核心点集中,其它节点分散开),较 难分割或核心数据在同一数据中心,其它分散到不 同的节点 对架构设计的影响II -- 数据库表设计 数据库表早期设计 ID ... Type Name Size0 码力 | 53 页 | 2.36 MB | 1 年前3
从百度文件系统看大型分布式系统设计中的定式与创新分布式系统设计实践 • 总结与致谢 百度的集群环境 • 单个集群通常几千台机器 • 百度文件系统(BFS)、集群调度系统(Galaxy)、分布式协 调服务(Nexus)是核心服务 • 实时任务与批量任务混合部署 Galaxy master BFS master Nexus lock service 分布式软件栈中的BFS The Baidu Stack 网络通信框架Sofa-pbrpc 分布式文件系统 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度 • 锁和信号量 - Nexus - 分布式锁 - 分布式通知 • 文件系统 - The Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的0 码力 | 24 页 | 937.45 KB | 1 年前3
共 19 条
- 1
- 2













