Upgrade to Pro — share decks privately, control downloads, hide ads and more …

蔡学镛架构设计方法

Zoom.Quiet
March 23, 2014

 蔡学镛架构设计方法

来自weibo 感谢总布道师...

Zoom.Quiet

March 23, 2014
Tweet

More Decks by Zoom.Quiet

Other Decks in Design

Transcript

  1. 1.  【产品重构】可增加既有产品的竞争⼒力 2.  【内部平台】可加快新产品推出速度 3.  【云平台】弹性灵活的运算能⼒力 4.  【数据平台】可充分发挥数据的价值 5.  【开放平台】可⿎鼓励与外部企业合作

    6.  【创新孵化】孵化有业务创意的⼩小团队 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 六阶段加强技术建设,以成为产品创新的后盾 … 云 平台 平台化
  2. ?   重构 重构前,系统 内部错综复杂, 难以修改 重构后,系统 内部模块化。 可以因应后续 业务需求

    产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化
  3. 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化

    云 平台 平台化 平台 产品 产品 数据库
  4. 平台 产品 产品 数据库 产品 重构 业务 平台 数据 平台

    开放 平台 创新 孵化 云 平台 平台化
  5. 完 整 数 据 平 台 产品 重构 业务 平台

    数据 平台 开放 平台 创新 孵化 云 平台 平台化 平台 产品 产品 数据库
  6. 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化

    云 平台 平台化 完 整 数 据 平 台 平台 产品 产品 数据库 外部 产品
  7. 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化

    云 平台 平台化 完 整 数 据 平 台 平台 孵化 产品 产品 数据库 外部 产品
  8. 代理 核⼼心 服务 应⽤用 界⾯面 ⽤用户 接出 接⼊入 数据 框架

    七 层 架 构  、 用 色  规 范  、  依 赖  关 系  黑色是外部系统(包括人)   红橙黄绿蓝靛紫表示抽象程度   业 务 资 源 领 域 交 互 箭头表示依赖,都是由上往下   这条线就是开放平台   服务和代理允许水平依赖   服务和代理允许水平依赖  
  9. (Step 1)業務建模 商业公司应该是业务 驱动 项⺫⽬目⼀一开始由业务架 构师设计业务架构图 业务架构图描述各种 业务系统之间的关系 以及与外部系统之间 的关系

    每個業務系統应该详 细描述各个业务系统 的业务功能 每个系统都可以产⽣生 ⼀一个以上的⼦子系统 业务 技术 数据 ⺴⽹网络 ⼈人员 领域
  10. 画一个大框。把黑色的外 部角色放到边界外:   •  用户角色放上面   •  接入系统角色放两侧   • 

    接出系统角色放下面     思考跟这些外部角色相关 的内部系统有哪些,归纳 出初步的边界关系     绘制业务架构图(1)边界关系
  11. 思考这些内部系统是否有 调用依赖,为这些依赖画 上箭头:   •  用户角色放上面   •  接入系统角色放两侧  

    •  接出系统角色(与数据 库)放下面     思考跟这些外部角色相关 的内部系统有哪些,归纳 出初步的边界关系     绘制业务架构图(2)内部关系
  12. 思考这些内部系统是否有 调用依赖,为这些依赖画 上箭头:   •  用户角色放上面   •  接入系统角色放两侧  

    •  接出系统角色放下面     思考跟这些外部角色相关 的内部系统有哪些,归纳 出初步的边界关系     用户沿著箭头,会走出一 道彩虹   绘制业务架构图(3)内部分解
  13. (Step 3)技术建模 业务架构交给技术架 构师,进⾏行抽象架构 的规划。 技术架构师设计对于 不够清楚甚⾄至技术实 现有难度的部分,与 业务架构师进⾏行反复 研讨

    每个⼦子系统都可以拆 分出⼀一个以上的模块 最后产出可实现的模 块详细规格 业务 技术 数据 ⺴⽹网络 ⼈人员 领域
  14. (Step 4)数据建模 数据架构师从模块的 详细规格可以得知需 要存储的数据有哪些 数据架构师要特别关 注每个数据种类的属 性: •  增删改查频率

    •  ⼀一致性要求 •  保密性要求 •  重要性 •  权限 数据架构师任务: •  数据库技术选型 •  数据库设计 业务 技术 数据 ⺴⽹网络 ⼈人员 领域
  15. 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 多数人提到大数据 时,都是指来自这 里(数据库)的数

    据。而系统运行过 程中的许多有价值 的数据,都被丢弃 忽略了。   比方说:当多数用 户到了某页面后, 就不往下进行,可 能页面设计有问题, 只要改善页面用户 体验,业绩就会大 幅提升。但只通过 数据库,无法分析 出这点  
  16. 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架

    构 与 五 个 事 件 钩 子  事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 业务系统的层与层之间,都可设 置事件钩子,避免系统改造。     事件钩子可以将事件原地处理, 也可将事件送到其他服务器处理     事件钩子同时具备日志的效果, 关键事件可以送到统一日志中心       注意:代理层的事件钩子是 设置在代理层下方,而不是 上方   外部 外部
  17. 事 件 信 息 流 向 与 数 据 

    分 析 系 统  商业智能系统 业务活动监控系统 ⽤用户体验分析系统 ⺴⽹网络攻击分析系统 商业⻛风险控制系统 数据备份系统 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 数据 ⼤大 数 据 分 析
  18. 从代理层的接口,归纳:   •  数据种类   •  数据关系   •  查询关系

        从更上层的模块以及业务需求,归纳出: •  数据的属性   代理层+数据层 代理层提供访问接⼝口,内部将 数据 库驱动程序与 SQL 等数据库语句隐 藏起来
  19. Lang Runtime 容器 模块 容器 程序库 模块 Guest OS Hypervisor

    硬件 Server(通⽤用层) 每 ⼀一 点 都 有 监 控 与 配 置 的 需 求 引擎 规则
  20. 代理 核⼼心 服务 应⽤用 界⾯面 ⽤用户 接出 应 ⽤用 优

    化 资 源 优 化 接⼊入 平 台 优 化 前 端 优 化 数据 框架 负载均衡服务器 软负载均衡 静态资源服务器 Session服务器 集群 MQ 集群 MQ CDN 反向代理服务器 缓存服务器 业务云 读写分离 同步备份 异步备份 冷备份 缓存服务器 核⼼心云 Session服务器 配置服务器 配置服务器 缓存服务器
  21. (Step 6)⼈人员配置 ⾸首席架构师根据前⾯面 所有的规划设计,进 ⾏行: •  技术选型 •  技术⼈人员招聘 • 

    ⼈人员职责设计 •  KPI 设置 后三者需要⼈人⼒力资源 部⻔门的协助 KPI 设置很重要。产 品、业务、⼯工程⼈人员 如果没有共同⺫⽬目标, ⽽而是各怀⿁鬼胎,项⺫⽬目 就会失败。 业务 技术 数据 ⺴⽹网络 ⼈人员 领域
  22. 七 层 架 构 之 开 发 人 员 素

    质  了解市场与用户,且具有审美观   了解市场与用户   了解市场与用户,且擅长归纳总结   了解行业与公司的战略   有比较强的计算机知识与算法能力   了解行业与合作夥伴   了解行业、市场、用户、数据库   数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 ⽤用户 外部 上 层 底 层 外部 下 层 顶 层
  23. 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架

    构 与 职 责  【用户体验组】专精交互设计与用户体验   【应用开发组】具有很强的市场嗅觉与产品   设计能力   【通用服务组】具有良好的业务抽象能力与   接口设计经验,可以将业务转化成平台   【核心技术组】精通网络、操作系统、算法   …等计算机专业知识。  
  24. 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架

    构  与 技 术  【用户体验组】使用Java/JS/HTML5/Obj-­‐C   【应用开发组】使用任何脚本语言或  Java   【通用服务组】使用  Java  语言   【核心技术组】使用  C  语言  
  25. 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架

    构  与  K  P  I  设 置  【用户体验组】客户是用户,由业绩说话   【应用开发组】客户是【用户体验组】,由   【用户体验组】打  KPI     【通用服务组】客户是【应用开发组】,由   【应用开发组】打  KPI   【核心技术组】客户是【通用服务组】,由   【通用服务组】打  KPI   KPI  对员工的行为影响相当大,通过  KPI,让   每个组都有服务意识,合作意识,而不是对   抗意识  
  26. 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架

    构  与  迭 代 进 度  根据用户反馈,平均每月推新版   根据市场发展与竞争对手的状况,平均   一季推一个新版   系统比较少做大更动,平均每半年推新版   平均每年推出新版  
  27. (Step 7) ⾸首席架构师必须让架 构设计反复进⾏行,因 为: •  降低设计复杂度 •  修正⽼老化的架构 架构设计时,复杂度

    太⾼高,会导致设计难 以进⾏行。最好先简化 再逐步累加,且重要 的⼦子系统先设计 随著业务持续累积, 架构会⽼老化。这时⾸首 席架构师要发起重构 业务 技术 数据 ⺴⽹网络 ⼈人员 领域
  28. 代理 核⼼心 服务 应⽤用 界⾯面 ⽤用户 接出 接⼊入 数据 框架

    Lang Runtime 容器 模块 容器 程序库 模块 Guest OS Hypervisor 硬件 Server(通⽤用层) 引擎 规则
  29. 谢 谢 Copyright © 2014 by Jerry Tsai (蔡学镛) All

    Rights Reserved. 电邮 [email protected] 微信公众号:JerryTsai1218