什么是架构师?
基于可质疑的知识源提供的不可靠的数据做精准猜测工作的人。
架构师是解决什么问题的?
1、业务复杂度超出单人(团队)认知能力。(认知)
大规模、高复杂度的业务场景越来越多,上线速度跟不上。
缺乏长期整体设计,短期上线后很多未预料到的问题。
2、大规模团队协作超出单人(团队)协同能力。(协作)
20+团队参与的战役越来越多,更多的系统交互,链路越来越长
缺乏对全局最优做把控的角色
3、技术创新突破业务的天际线。(技术创新)
选择技术的方向,建立技术标准
建立并且推广最佳工程实践
架构师的角色——人人都是架构师
架构师的主要职责:
把一个整体切分成不同的部分,建立协作机制,让不同的角色分工完成,并组成一个有机的整体。
职责范畴核心职责
公司制定公司的标准,技术战略 拥抱云原生
BU 为业务定制战略 自建还是复用中台;
产品线 单系统、模块设计 设计子系统架构,是否使用TMF
模块、子系统 代码设计 数据库表设计、代码详细设计、开发实现。
执行过程闭环:
问题->方案-》决策-》执行-》复盘-》问题
架构师的成长飞轮
领域知识:
定义问题的能力
行业视野开阔
从业务挑战到技术挑战映射的能力
技术能力:
技术上无所畏惧
技术选型能力
模板级的作品
既了解全局又熟悉细节
影响力:
技术架构要落到组织架构
要得到技术团队的认可和尊重
能解决技术团队的问题争论
决策能力:
决策要平衡务实
有前瞻性大局观
终局思维倒推实现路径
如何识别真正的问题?
发现问题、定位问题,永远比解决问题更加重要
比如:业务提错了需求, 最后写完了,发现这个东西是错的,或者上线之后根本没有用,就废弃了,这就是资源的浪费。
定位问题的:five why
打破砂锅问到底
朝着解决问题去提问,而非定责
不要只找到人的原因
要找可控的因素:人、态度、意识是不可控的;工具、流程、标准 是可控的。
前后左右问法:为什么我们以前没有问题?为什么类似的A、B 没有出现?
5Why,案例1,机器停转的原因
丰田汽车公司的前副社长大野,有一次在生产线上发现机器总是停转,虽然修过多次, 但是仍然不见好转,于是他询问工人机器停转的原因。
1、为什么机器当时停了?因为机器超载了,保险丝烧了。
2、为什么机器会超载?因为轴承的润滑不足
3、为什么轴承润滑不足?因为润滑泵失灵了
4、为什么润滑泵失灵?因为轮轴损耗了
5、为什么轮轴会损耗?因为杂质跑到里面了
解决方案:加装润滑油滤网
这个例子可以看出, 之前已经修过几次了 , 但是并没有找到问题的根源。所以要刨根问题。
亲身经历的例子,亚马逊仓库停转的原因
2018年亚马逊会员节期间,北美最大的几个仓库之一停止运转
1、为什么库房停止运转?因为库存系统出问题了, 所以拣货、分货都停止了。
2、为什么库存系统停止了服务?因为数据库down了, 导致服务不可用
3、为什么数据库down了?因为数据库出现了大量的表被锁死了
4、为什么表被锁死了?因为发现带有断点和子查询的SQL性能出问题了。出现大量挂起的事务。也就是带事务的慢SQL
5、为什么会出现慢SQL?云上新的数据库,是不如原来的ORACLE的。
仓库停转8个小时, 事后一周才定位到原因。
其他方面。为什么没有提前发现,为什么没有及时止血,为什么没有预案,等等。
架构决策 之切分
架构的核心决策, 其实就是如何切分-SOLID
当前负责人(团队) 负载过重
当前分工权利和义务不对等
分布式系统的运行要求
架构切分的结果, 要体现在组织结构上,并且权责要对等
架构切分的是业务系统, 背后起飞的是人的利益(权责)
架构决策冲突,背后往往都是权责冲突
要做到权责对等,使每个人可以为自己的利益负责
有的时候,要牺牲一部分人的利益,去达到负载均衡,权责一致。
架构决策 之处境模型——不同的阶段有不同的决策方式
例子:新冠疫情
1、极早期确诊:
这货既不是感冒,也不像典型的肺炎
2、 早期治疗:
可以确诊但是治疗方案需要试验对比
3、爆发期:
先封锁区域、再隔离人群、然后逐批检查
4、稳定期:
早防御、早发现、早隔离
软件项目:
1、混乱期业务Chaotic
例如社区团购刚开始的阶段,抢团长、抢仓资源、划地盘,快速上线,系统边跑边设计边改进。适合使用团队熟悉的技术。
2、创新型业务 Complex
例如阿里云早期:适合多方探索、快速试错。
3、成长期业务 Complicated
网格仓是按照线路分拣还是按照团来分拣?开始综合考虑ROI,适合决策矩阵分析。
4、稳定期Obvious
供应商上线新的系统, 使用中台的最佳实践, 无需过多分析。
架构决策 之 决策矩阵:
可用性扩展性性能成本一致性
方案199.9横向扩展100ms开发、测试、运维、运行最终一致
方案299.9999纵向扩展50ms强一致
对于选择的方案,要提供对其劣势的分析和应对方案。
架构决策 之可逆性:
可逆性:单向门,双向门
单向门:一旦选择,没法回头,比如数据迁移
双向门:快速实验, 在可以承受的风险范围内快速行动
长期主义的5So方法
思考有关决策的短期、中期、长期的后果。 业务长期倒排, 这种中长期的思考能力,非常难能可贵,以及非常需要坚持。有的同学就是会在千钧压顶之际反问业务,这个一定要这么做吗?
基于终局倒推的中短期的实现路径。
架构决策 之推论阶梯——追求最终正确
追求最终做的是正确的事情,而非一开始就判断准确。
常常对的人,会主动寻求信息推翻自己的假设和结论,这是非常反人性的。人们对证据收集往往是反人性的。
很多人在主观认为一个事情正确的时候, 他后面所有的论证, 数据收集, 都是围绕这这个事情是正确的来的。不再是说这个事情到底怎么做事对的。这是一个很常见的人性。
反模式的架构师
很多事情都等着他看、拍,容易成为团队的bottleneck
成功非常依赖个人能力
少数架构师脱离一线,对细节了解不足,很难及时做出有价值的判断
业务技术部门是否需要架构师?早期和后期,拥有更多的架构挑战
架构师把架构决策都做了,如何培养新人做架构?
机制比较松散,需要文化和价值观来驱动