【系统设计】俭约架构七大法则
目录
- 简约架构(Frugal Architecture)
- 设计阶段(DESIGN)
- 法则一:将成本作为一种非功能性需求
- 法则二:达成最终成本与业务保持一致的系统
- 法则三:架构设计就是一系列权衡
- 测量阶段(MEASURE)
- 法则四:无法观测的系统导致无法估量的成本
- 法则五:依托成本感知架构实现成本控制
- 观察阶段(OBSERVE)
- 法则六:成本优化是个渐进的过程
- 法则七:没经挑战的成功会让人想当然
- 阅读原文
简约架构(Frugal Architecture)
在亚马逊 CTO Werner Vogels 在向企业传达了一条信息:在做架构时,必须要考虑成本。当不考虑成本时,可以做很棒的创新,经济是会改变的,成本效益才是王道。在所描述的**[[简约架构]]** 中,分为三阶段七条法则。
俭约架构法则(The Laws of Frugal Architecture)
Simple laws for building cost-aware, sustainable, and modern architectures.
设计阶段(DESIGN)
法则一:将成本作为一种非功能性需求
Make Cost a Non-functional Requirement.
在系统设计和实现时,除了非功能需求外,还需要考虑到各种非功能需求,常见的就是性能(响应时长、QPS等)、稳定性(可靠性、可用性等)和安全性。在简约架构中,成本也是必须考虑的内容了。成本就是利润。
法则二:达成最终成本与业务保持一致的系统
Systems that Last Align Cost to Business.
The durability of a system depends on how well its costs are aligned to the business model.
不赚钱的业务时很难生存的,如果是由于不考虑系统成本而造成业务不赚钱,那就更冤了。这条法则期望最终完成的系统是成本与业务保持一致的,既很好的支撑了业务,有没有浪费成本。所以,收起那些屎上雕花的手段吧。
法则三:架构设计就是一系列权衡
Architecting is a Series of Trade-offs.
这条应该是架构的基础准则之一了,没有万能的方案,也没有黄金标准,只有基于场景的选择。在各个互相冲突的功能需求和非功能需求间、技术需求和业务需求间,如何
找到“甜蜜点”(sweet spot) 至关重要,这一点非常考验架构师的水平,也有一点考验运气。
测量阶段(MEASURE)
法则四:无法观测的系统导致无法估量的成本
Unobserved Systems Lead to Unknown Cost.
如果系统无法观测,那么对系统的真实情况就是一无所知。成本估量也就是未知数。构建观察能力需要成本,但节约这部分成本是非常短视的。可靠的观测才有可持续的发展。
法则五:依托成本感知架构实现成本控制
Cost Aware Architectures Implement Cost Controls.
可观测的系统才能优化成本。设计良好的系统可以保持持续演进和持续优化。根据关键性程度(criticality)将组件分层:必须、重要、有了更好(nice-to-have)。
观察阶段(OBSERVE)
法则六:成本优化是个渐进的过程
Cost Optimization is Incremental.
既然简约架构将成本放在了重要位置,那么成本优化就是必须做的工作之一了。但罗马不是一天建成的,技术的进步、基础成本的下降等都会成为成本优化的因素,关键是要保持成本优化的思想,并持续观察和优化。
法则七:没经挑战的成功会让人想当然
Unchallenged Success Leads to Assumptions.
一直做得事情并不一定是正确的事情,可能仅仅是因为巧合。由于过去的成功而认为过去的方法、技术、语言、架构等都是绝对正确的,可能就为眼下和未来埋下了危险的种子了。需要时刻以怀疑的心态来寻找方法,从而发现系统中的优化点并保持改进。
阅读原文
除了法则名称,其余部分都是个人感想,并非翻译原文。愿意阅读原文的点击下面地址进入。
原文点这里