为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

蔡学镛架构设计方法

2014-04-06 42页 pdf 9MB 26阅读

用户头像

is_745755

暂无简介

举报
蔡学镛架构设计方法 蔡学镛��� 稜鏡軟件架构法 PRISM: A Methodology of Software Architecture Design 摘要版 产品创新需要技术⽀支撑 技术 创新产品 企业竞争⼒力 促 进 ⽀支 撑 唯有持续推出创新的产品, 才能维持企业竞争⼒力 滞后的技术,⽆无法⽀支撑产品 的创新 但… 1.  【产品重构】可增加既有产品的竞争⼒力 2.  【内部平台】可加快新产品推出速度 3.  【云平台】弹性灵活的运算能⼒力 4.  【...
蔡学镛架构设计方法
蔡学镛��� 稜鏡軟件架构法 PRISM: A Methodology of Software Architecture Design 摘要版 产品创新需要技术⽀支撑 技术 创新产品 企业竞争⼒力 促 进 ⽀支 撑 唯有持续推出创新的产品, 才能维持企业竞争⼒力 滞后的技术,⽆无法⽀支撑产品 的创新 但… 1.  【产品重构】可增加既有产品的竞争⼒力 2.  【内部平台】可加快新产品推出速度 3.  【云平台】弹性灵活的运算能⼒力 4.  【数据平台】可充分发挥数据的价值 5.  【开放平台】可⿎鼓励与外部企业合作 6.  【创新孵化】孵化有业务创意的⼩小团队 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 六阶段加强技术建设,以成为产品创新的后盾 … 云 平台 平台化 ?   重构 重构前,系统 内部错综复杂, 难以修改 重构后,系统 内部模块化。 可以因应后续 业务需求 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化 平台 产品 产品 数据库 平台 产品 产品 数据库 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化 完 整 数 据 平 台 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化 平台 产品 产品 数据库 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化 完 整 数 据 平 台 平台 产品 产品 数据库 外部 产品 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化 完 整 数 据 平 台 平台 孵化 产品 产品 数据库 外部 产品 ⾸首席架构师的架构能⼒力 依靠的是 … 想要做到 … 产品 重构 业务 平台 数据 平台 开放 平台 创新 孵化 云 平台 平台化 代理 核⼼心 服务 应⽤用 界⾯面 ⽤用户 接出 接⼊入 数据 框架 七 层 架 构  、 用 色  规 范  、  依 赖  关 系  黑色是外部系统(包括人)   红橙黄绿蓝靛紫示抽象程度   业 务 资 源 领 域 交 互 箭头表示依赖,都是由上往下   这条线就是开放平台   服务和代理允许水平依赖  服务和代理允许水平依赖   架构的流程 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 (Step 1)業務建模 商业公司应该是业务 驱动 项⺫⽬目⼀一开始由业务架 构师设计业务架构图 业务架构图描述各种 业务系统之间的关系 以及与外部系统之间 的关系 每個業務系統应该详 细描述各个业务系统 的业务功能 每个系统都可以产⽣生 ⼀一个以上的⼦子系统 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 画一个大框。把黑色的外 部角色放到边界外:   •  用户角色放上面   •  接入系统角色放两侧   •  接出系统角色放下面     思考跟这些外部角色相关 的内部系统有哪些,归纳 出初步的边界关系     绘制业务架构图(1)边界关系 思考这些内部系统是否有 调用依赖,为这些依赖画 上箭头:   •  用户角色放上面   •  接入系统角色放两侧   •  接出系统角色(与数据 库)放下面     思考跟这些外部角色相关 的内部系统有哪些,归纳 出初步的边界关系     绘制业务架构图(2)内部关系 思考这些内部系统是否有 调用依赖,为这些依赖画 上箭头:   •  用户角色放上面   •  接入系统角色放两侧   •  接出系统角色放下面     思考跟这些外部角色相关 的内部系统有哪些,归纳 出初步的边界关系     用户沿著箭头,会走出一 道彩虹     绘制业务架构图(3)内部分解 最后得到的结果会把业务 系统分为顶层、上层、下 层、底层。依序摆放。     可以双色表示   绘制业务架构图(4)最终结果 (Step2)领域建模 先做业务建模,再做领域 建模,可以避免「瘫 痪症」。直接做领域建模 容易导致分析瘫痪。 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 (Step 3)技术建模 业务架构交给技术架 构师,进⾏行抽象架构 的规划。 技术架构师设计对于 不够清楚甚⾄至技术实 现有难度的部分,与 业务架构师进⾏行反复 研讨 每个⼦子系统都可以拆 分出⼀一个以上的模块 最后产出可实现的模 块详细规格 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 边界模型 内部模型 代码模型 嵌   套   必要的话,继续分层。 每层内找出模块,模 块的特点是「内聚力 强」。     定义每个模块的接口, 找出模块间的接口依 赖。   绘制模块架构图:接⼝口与调⽤用 接⼝口规范的定义流程 从上往下,详细定义每 个接⼝口的参数与返回值 【接出系统】的接⼝口是 外部定义的,我们只能 接受其定义。 代理层刚好夹在两层之 间,担任转接的任务 ⼀一个⽤用户使⽤用⼀一到多个界⾯面 ⼀一个应⽤用衍⽣生出⼀一到多个界⾯面 ⼀一个框架衍⽣生出⼀一到多个应⽤用 ⼀一个框架调⽤用⼀一到多个服务 ⼀一个服务调⽤用⼀一到多个核⼼心 ⼀一个核⼼心调⽤用⼀一到多个代理 ⼀一个代理调⽤用⼀一到多个数据或外部 (Step 4)数据建模 数据架构师从模块的 详细规格可以得知需 要存储的数据有哪些 数据架构师要特别关 注每个数据种类的属 性: •  增删改查频率 •  ⼀一致性要求 •  保密性要求 •  重要性 •  权限 数据架构师任务: •  数据库技术选型 •  数据库设计 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 多数人提到大数据 时,都是指来自这 里(数据库)的数 据。而系统运行过 程中的许多有价值 的数据,都被丢弃 忽略了。   比方说:当多数用 户到了某页面后, 就不往下进行,可 能页面设计有问, 只要改善页面用户 体验,业绩就会大 幅提升。但只通过 数据库,无法分析 出这点   数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架 构 与 五 个 事 件 钩 子  事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 业务系统的层与层之间,都可设 置事件钩子,避免系统改造。     事件钩子可以将事件原地处理, 也可将事件送到其他服务器处理     事件钩子同时具备日志的效果, 关键事件可以送到统一日志中心       注意:代理层的事件钩子是 设置在代理层下方,而不是 上方   外部 外部 事 件 信 息 流 向 与 数 据  分 析 系 统  商业智能系统 业务活动监控系统 ⽤用户体验分析系统 ⺴⽹网络攻击分析系统 商业⻛风险控制系统 数据备份系统 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 事件 钩⼦子 数据 ⼤大 数 据 分 析 从代理层的接口,归纳:   •  数据种类   •  数据关系   •  查询关系     从更上层的模块以及业务需求,归纳出:   •  数据的属性   代理层+数据层 代理层提供访问接⼝口,内部将 数据 库驱动程序与 SQL 等数据库语句隐 藏起来 (Step 5)⺴⽹网络建模 ⺴⽹网络架构师根据前⾯面 所有分析与设计的结 果,进⾏行⺴⽹网络规划 ⺴⽹网络架构必须考虑系 统的⾼高效率与⾼高可⽤用 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 Lang Runtime 容器 模块 容器 程序库 模块 Guest OS Hypervisor 硬件 Server(通⽤用层) 每 ⼀一 点 都 有 监 控 与 配 置 的 需 求 引擎 规则 代理 核⼼心 服务 应⽤用 界⾯面 ⽤用户 接出 应 ⽤用 优 化 资 源 优 化 接⼊入 平 台 优 化 前 端 优 化 数据 框架 负载均衡服务器 软负载均衡 静态资源服务器 Session服务器 集群 MQ 集群 MQ CDN 反向代理服务器 缓存服务器 业务云 读写分离 同步备份 异步备份 冷备份 缓存服务器 核⼼心云 Session服务器 配置服务器 配置服务器 缓存服务器 (Step 6)⼈人员配置 ⾸首席架构师根据前⾯面 所有的规划设计,进 ⾏行: •  技术选型 •  技术⼈人员招聘 •  ⼈人员职责设计 •  KPI 设置 后三者需要⼈人⼒力资源 部⻔门的协助 KPI 设置很重要。产 品、业务、⼯工程⼈人员 如果没有共同⺫⽬目标, ⽽而是各怀⿁鬼胎,项⺫⽬目 就会失败。 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 七 层 架 构 之 开 发 人 员 素 质  了解市场与用户,且具有审美观   了解市场与用户   了解市场与用户,且擅长归纳总结   了解行业与公司的战略   有比较强的计算机知识与算法能力   了解行业与合作夥伴   了解行业、市场、用户、数据库  数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 ⽤用户 外部 上 层 底 层 外部 下 层 顶 层 数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架 构 与 职 责  【用户体验组】专精交互设计与用户体验   【应用开发组】具有很强的市场嗅觉与产品   设计能力   【通用服务组】具有良好的业务抽象能力与   接口设计经验,可以将业务转化成平台   【核心技术组】精通网络、操作系统、算法   …等计算机专业知识。   数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架 构  与 技 术  【用户体验组】使用Java/JS/HTML5/Obj-­‐C   【应用开发组】使用任何脚本语言或  Java   【通用服务组】使用  Java  语言   【核心技术组】使用  C  语言   数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架 构  与  K  P  I  设 置  【用户体验组】客户是用户,由业绩说话   【应用开发组】客户是【用户体验组】,由   【用户体验组】打  KPI     【通用服务组】客户是【应用开发组】,由   【应用开发组】打  KPI   【核心技术组】客户是【通用服务组】,由   【通用服务组】打  KPI   KPI  对员工的行为影响相当大,通过  KPI,让   每个组都有服务意识,合作意识,而不是对   抗意识   数据 代理 核⼼心 服务 框架 应⽤用 界⾯面 七 层 架 构  与  迭 代 进 度  根据用户反馈,平均每月推新版   根据市场发展与竞争对手的状况,平均   一季推一个新版   系统比较少做大更动,平均每半年推新版   平均每年推出新版   (Step 7) ⾸首席架构师必须让架 构设计反复进⾏行,因 为: •  降低设计复杂度 •  修正⽼老化的架构 架构设计时,复杂度 太⾼高,会导致设计难 以进⾏行。最好先简化 再逐步累加,且重要 的⼦子系统先设计 随著业务持续累积, 架构会⽼老化。这时⾸首 席架构师要发起重构 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 重点复习 如果你记不住今天所有的内容   记得下面两页就好   架构的流程 业务 技术 数据 ⺴⽹网络 ⼈人员 领域 代理 核⼼心 服务 应⽤用 界⾯面 ⽤用户 接出 接⼊入 数据 框架 Lang Runtime 容器 模块 容器 程序库 模块 Guest OS Hypervisor 硬件 Server(通⽤用层) 引擎 规则 谢 谢 Copyright © 2014 by Jerry Tsai (蔡学镛) All Rights Reserved. 电邮 JerryTsai1218@gmail.com 微信公众号:JerryTsai1218
/
本文档为【蔡学镛架构设计方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索