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

蔡学镛架构设计方法

Avatar for Zoom.Quiet Zoom.Quiet
March 23, 2014

 蔡学镛架构设计方法

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

Avatar for Zoom.Quiet

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