架构师的成长之路
3年
技术和经验的积累,每天都能感受到成长带来的快乐 如饥似渴的学习各种技术,开源项目如spring、hibernate等成为最佳的食粮 在项目中各种折腾,经常会灵光乍现,感觉自己是个天才 各种设计模式运用从生涩到娴熟,持续了两三年,突然发现自己提升遇到了瓶颈
思维和做事风格的转变 校园填鸭教育模式转变为自学成才模式 考核标准不再是作业或期末考试,而是一个个真正的社会工程
• 现象
• 考虑技术而不是真实需求。 • 堆砌不同的产品,整合成系统。
架构设计要回归本源
• 美国的高科技笔与俄罗斯的铅笔。 • 历史的真相。
非技术设计
• 暂时不考虑技术 • 聚焦在用户需求 • 设计原理
• 创新 • 简单
过度设计 I - 设计的系统超过实际需求
把事情做得过于复杂和以复杂的方式去完成一个任务。简单地说, 它包括让某些事物超过实际需要过度工作,让用户费不必要的劲儿 去完成一件事,让工程师付出很大的努力去理解不必要的需求。
建筑师是如何工作的?
最好的建筑师从来不用供应商的名称来描述梁、 支撑、桁架、外墙,而是用这些部件的大小,负 载和组成等。
架构师如何工作?
• 以产品替代技术
• Apache Tomcat 网络服务器 • Java 语言 • mySQL 数据库 • Dell 服务器 • EMC 存储 • Cisco 路由器
提炼 7年以上
智慧 跨部门影响力
技能 部门内影响力
组内影响力
无影响力
架构师成长案例一
菜鸟 累积 成熟 升华
2年
对架构设计有了深刻的理解 技术运用也不再拘泥于形式 迷茫时,阅读书籍,领悟传统工程学的魅力
2年
环境和挑战非常重要,需要环境的支撑及敢于挑战的精神 易宝技术栈的技术变革帮助我完成了从知识掌握到融汇贯通的转身 海归CTO,带来了PayPal先进的技术理念。 在实施这些理念中,也遇到很多挑战。
架构师成长案例二
自己 协作 规模 指导
6年
对架构设计有了深刻的理解 技术运用也不再拘泥于形式 迷茫时,阅读书籍,领悟传统工程学的魅力
4年
规模作战:掌握权衡原则,达到总体协同 扩大知识体系,掌握系统各部分的能力、局限,通过合理规划和取舍 ,达到全局的最优
3年
掌握设计技能,能够团队作战 关注应用设计,掌握设计思想、方法和工具,熟练进行系统分析、模块分解,定义与 外部的交互,以及模块间交互及流程等,以便团队成员共同开发。
超过实际需要过度工作 • 杂货铺满载而归
• select (*) from table 异曲同工
导出到
▶︎ PDF
PowerPoint QuickTime HTML KeyNote WAV MP3 FLAC
为保持灵活性,把多且不常用的功能塞进系统
把软件写得异常复杂以至于其他人无法 轻而易举地理解
国际C语言混乱代码大赛冠军
低 2实施 I
高 3-20倍
中 低到中
1.5X
部署 D
中 1.5-3倍 低到中 高到很高
简化范围、设计和实施
简化范围 ➜ 80:20原则与最小化可行产品
简化设计 ➜
消除复杂性
简化实施 ➜ 采用经过验证的解决方案
最小化可行产品
MVP - Minimum Viable Product 开发产品时先做出一个简单的原型——最小化可行产品(Minimum Viable Product, MVP),然后通过测试并收集用户的反馈,快速迭代, 不断修正产品,最终适应市场的需求。
保障系统扩展的50个架构原则
从事务处理中清除BI
小心昂贵的关系
重中之重
正确使用数据库锁 禁用分步提交
慎用Select for Update
避免选择所有列
用泳道隔离故障
有备无患
保障系统扩展的50个架构原则
大道至简
避免过度设计 方案中包括扩展 三次简化方案 减少域名解析 减少页面目标 采用同构网络
缓存为王
利用CDN缓存 灵活管理缓存 利用Ajax缓存 利用页面缓存 利用应用缓存 利用对象缓存 独立对象缓存
分而治之
X轴扩展 Y轴拆分 Z轴拆分
水平扩展 先利其器 画龙点睛
向外扩展 用商品化硬件 托管方案扩展 利用云计算 适当使用数据库 慎重使用防火墙 积极使用日志 避免画蛇添足 停止重定向 放宽时间约束
架构师的成长之路
2018年5月19日
架构概念来自于建筑学
古玛雅ChiChen Itza大金字塔
系统和软件的架构借鉴建筑学的架构
建筑师的作用
分析需求
总体设计
选择技术
指导沟通
架构师成长路径
研发 测试 网络 安全 配置 系统 数据
架构
高级
初级 学习 1-2年 知识
中级
积累 2-4年
应用 4-7年 经验
最少功能
最快速度
最低成本
十五个普遍适用的架构原则
1 N+1设计 2 回滚设计 3 禁用设计 4 监控设计
5 多活数据中心设计
6 采用成熟的技术 7 异步设计 8 无状态设计
9 前瞻性设计 10 水平扩展 11 非核心则购买 12 使用商品化硬件
13 小构建、小发布、快试错
14 隔离故障 15 自动化
过度设计 II - 设计的产品过于复杂
设计一款家用空调,要求在 室外可以达到绝对温度0 度 ,在室内可以达到华氏300 度,这种设计是在浪费资源 ,毫无用途。
与此相对的是,设计和制造一 款空调机,能够在室外温度华 氏零下20 度时,把室内加热到 可以舒适生活的环境温度。
DID方法
20X
设计 D
技术成本 扩展目标 智力成本 资产成本
架构师的素质:七要素
业务理解
技术广度
美学素养
架构师
技术深度
动手能力
沟通能力
丰富经验
架构师成长的观察与总结
高 扩大参照系,提高认识问题的高度,从整体观察事物。 深 善于钻研,知其然,更知其所以然,深入掌握技术细节。 通 锻炼沟通能力,能一句话把复杂问题说得简单明白。 广 参加行业会议,扩大视野,让青蛙从井底爬上来。 新 保持好奇心,不断学习新技术、新知识和新事物。
自给自足:掌握开发技能,能够独立开发 关注编码实现,掌握编程语言和相关开发工具,灵活运用,独立开发
架构师成长案例三
改行 菜鸟 积累 实践
增加影响力在更大范围的实践 2年
疯狂积累经验
2年
运用所学到实践
工作之外大量读书学习 3年
从军校的物理教员改行
架构师的素质:三商
智商
情商
悟商
智商:运用知识的能力 情商:沟通协调的能力 悟商:学习理解的能力