阿里毕玄:系统设计之系统建设的目标

简介: 本文为系统设计系列的第二篇,目标是否可衡量以及如何跟踪效果,会很大程度决定最后做出来的系统和目的是否能对齐。

作者:毕玄   
文章来源:微信公众号HelloJava

本文为系统设计系列(按照系统建设的目的->系统建设的目标->实现目标面临的核心问题->解决问题的设计->形成设计原则)的第二篇,目标是否可衡量以及如何跟踪效果,会很大程度决定最后做出来的系统和目的是否能对齐。

最近面试了不少架构师,更觉得<系统设计之系统建设的目的>这篇文章是值得再提下的,系统建设的目的是用来理解为什么要建设系统,到底是为了解决目前业务上面临的什么挑战,这是为了避免技术一端纯粹为了技术而技术,以及没和业务面临的主要挑战对齐的现象。

在分析清楚了系统建设的目的后,到了目标这个环节,最重要的是要把前面的目的的描述,转换为可衡量的目标的描述,之所以要形成可衡量的目标,最重要的原因是为了确保最后实现的系统是达成了系统建设的目的的,相信很多人都碰到过设计出来的系统和最后落地的系统很不一致的现象,通常这都是缺乏了可衡量的目标造成的。

举两个例子说下:

第一个是2011年做容器化,建设这套系统的目的是为了应对预计会越来越大的机器成本,目标相应的制定为支撑相同的业务量,机器下降一半。

第二个是2013年做异地多活,建设这套系统的目的是为了能够让业务具备更强的抵御灾害的能力,尽管后面发现因为有了异地多活,有了更多的好处,但那些确实在系统设计之初是完全没放在建设目的里的,后面能做到纯属巧合,例如因为有了异地多活使得后面的弹性借助云资源成为了现实,因为有了异地多活,基础设施技术的演进可以更加快速,在设计之初根据目的相应制定的目标为业务能够部署在中国多个地点(地点间距离>1千公里),多个地点部署的业务都处于承接流量的状态,且流量从A点切换到B点能在30s内完成。

有了清晰的可衡量的系统建设的目标,意味着:

  1. 确保了系统设计过程中可以非常针对性的围绕目标来做,避免偏题;
  2. 更重要也是最容易遗漏的一点,是可以做一个用来跟踪系统建设效果的系统,例如之前做容器化,我们会有一个展示,是容器化后的集群多少机器支撑了多少的业务量,和目前还未容器化的集群的一个对比;异地多活,会有一个管控系统,用来展示系统的部署情况,以及流量切换。 只有有了跟踪系统建设目标是否达标的系统,才能真正确保系统建设完毕后和初心保持了一致,否则很多系统建设的时候是一个目的,最后做完了是另外的状况,所以这个跟踪效果的体系是一定要在系统建设的时候同步就做好的。

从目的->目标这个部分,理论上并不复杂,但也很容易漏掉,导致后面的系统设计环节出问题,关键是要形成可衡量的目标,以及相应的跟踪目标达成情况的系统。

有了目标后,就要进入分析要达到目标,面临的核心问题的环节了,下回接着讲。

这个系列的文章会按照聊聊系统设计的套路来写,写的时候会理论结合实践,实践主要是讲我自己在相应的点上的一些经历:

  1. 系统设计之系统建设的目的
  2. 系统设计之系统建设的目标
  3. 系统设计之达成目标的核心问题 - 本文
  4. 系统设计之解决核心问题的设计
  5. 系统设计之设计原则
相关文章
|
Java 程序员
收藏!阿里毕玄16篇文章,深度讲解Java开发、系统设计、职业发展
阿里毕玄结合自己的经历深度讲解Java开发、系统设计、职业发展等问题,快来一键收藏吧。
35107 1
|
消息中间件 数据挖掘 程序员
【建议收藏】高并发下的分布式事务:如何选择最优方案?
本文介绍了分布式事务的三种常见解决方案。在分布式系统中,事务处理变得复杂,需确保ACID特性。TCC(Try-Confirm-Cancel)方案适用于严格资金要求的场景,如银行转账,通过预留、确认和取消步骤确保一致性。可靠消息最终一致性方案适合一致性要求较低的场景,如电商积分处理,通过消息中间件实现最终一致性。最大努力通知方案则用于允许不一致的场景,如数据分析,通过重复通知尽可能达成一致性。选择合适的方案取决于具体应用场景。
542 5
|
10月前
|
消息中间件 存储 Java
吃透 RocketMQ 消息中间件,看这篇就够了!
本文详细介绍 RocketMQ 的五大要点、核心特性及应用场景,涵盖高并发业务场景下的消息中间件关键知识点。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
吃透 RocketMQ 消息中间件,看这篇就够了!
【计算机网络】常见的编码方式:归零、不归零;曼切斯特、差分曼切斯特
【计算机网络】常见的编码方式:归零、不归零;曼切斯特、差分曼切斯特
702 0
|
消息中间件 Cloud Native 数据库连接
互联网电商大厂的分布式事务使用案例
事务的原子性、持久性可确保在一个事务内,更新多条数据都成功/失败。在一个系统内部,我们可以使用数据库事务来保证数据一致性。那如果一笔交易,涉及到跨多个系统、多个数据库的时候,用单一的数据库事务就没办法解决了。事务的原子性、持久性可确保在一个事务内,更
437 0
阿里毕玄:聊聊系统设计的套路
系统设计我一直觉得是远比Java编程技能更难多了的培训,很容易变成务虚课,全是一堆理论。从和学员的互动中学习到了很多,对系统设计的一些方法论进行抽象总结,所以我和这些捧场的学员们说其实是我们一起在共创系统设计的课程 。
4298 0
|
Java 算法
阿里毕玄:Java编程能力测试-我的回答
这些题目我是完全根据Java编程进阶的思路来设计的,很多同学可能觉得背背答案就能去应对一些面试,先不说为什么这个是很难靠背的,事实上只要面试官稍有点水平,通常在题目的问法上就会有很多的变化,所以我觉得发这些题目,最希望的是大家可以认真的去学习和掌握背后的知识点,这样才能以不变应万变。
8809 0
|
Java
阿里毕玄:来测试下你的Java编程能力
上篇整理了下后面准备更系统化写的Java编程进阶的思路,如果仅看里面的词,很多同学会觉得都懂,但我真心觉得没有多少人是真懂的,所以简单的想了一些题目,感兴趣的同学们可以来做做看,看看自己的Java编程水平怎么样。
19330 0
|
架构师 Java 程序员
阿里P10毕玄:Java大牛程序员的学习成长路线
阿里巴巴P10毕玄:Java大牛程序员的学习成长路线,阿里巴巴基础设施负责人,HSF创始人、T4创始人、HBase负责人。
20750 0
|
新零售 Java 应用服务中间件
毕玄:我在阿里的十年技术感悟
在阿里,我们习惯尊称毕玄老师为“毕大师”。他2007年加入阿里,一手打造了HSF,十多年来更见证、参与了阿里在基础技术上的演进与发展:如淘宝在2007-2009年的分布式应用架构升级、2013-2016年的阿里电商异地多活架构升级等。但很少有人知道,他大学读的是生物专业。
13970 0