Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
蔡学镛架构设计方法
Search
Zoom.Quiet
March 23, 2014
Design
840
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
蔡学镛架构设计方法
来自weibo 感谢总布道师...
Zoom.Quiet
March 23, 2014
More Decks by Zoom.Quiet
See All by Zoom.Quiet
PyCon2014China-Zhuhai-high performance
zoomquiet
0
200
PyCon2014China-Zhuhai-meta programming
zoomquiet
1
180
PyCon2014China-Zhuhai-bpm.py
zoomquiet
0
160
PyCon2014China-Zhuhai-luna kv db
zoomquiet
0
150
PyCon2014China-Zhuhai-seed studio
zoomquiet
0
150
PyCon2014China-Zhuhai-Docker Registry Build By Python
zoomquiet
0
170
PyCon2014China-Zhuhai-jeff
zoomquiet
0
160
PyCon2014China-Zhuhai-pythonic front-end
zoomquiet
0
190
DevFest2014-Zhuhai-Polymer
zoomquiet
0
490
Other Decks in Design
See All in Design
PLATEAUで白い街を作る
aikautau
0
190
プレゼンスライド作成で意識していること
kimichan
0
110
工房としてのAI ── デザイナー、作家、ビルダー
hiranotomoki
0
460
なぜ、インサイトを貯めるのか?
tajima_kaho
3
2.7k
タイル紹介サイト「タイルだもんで」
calpin
0
190
Kouseki | CREATIVE CLASS成果物
yuri9911
0
220
noteらしさを織り込むハーネスエンジニアリング
uto
0
1.2k
全員がアウトプットを出せる時代、 誰を採用する?
nishame
0
660
Look Dev Meetup #50
baku89
1
500
(2026 FlowCon Keynote) Sociotechnical Architecture Finding Flow
xinyao
0
120
ポートフォリオ_あやの
ngyenmazt1412
0
1.8k
20260422_Midosuji_Tech
takuyay0ne
2
110
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
For a Future-Friendly Web
brad_frost
183
10k
Thoughts on Productivity
jonyablonski
76
5.4k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
410
Done Done
chrislema
186
16k
Designing for Timeless Needs
cassininazir
1
480
The World Runs on Bad Software
bkeepers
PRO
72
12k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
520
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Transcript
蔡学镛
产品创新需要技术⽀支撑 技术 创新产品 企业竞争⼒力 促 进 ⽀支 撑 唯有持续推出创新的产品, 才能维持企业竞争⼒力
滞后的技术,⽆无法⽀支撑产品 的创新 但…
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. 电邮
[email protected]
微信公众号:JerryTsai1218