新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 程序开发 > 架构

大家都是如何做好架构之架构切分的?

时间:2019-08-13 10:31:47  来源:  作者:

一般碰到问题,我们去梳理架构的过程中,会发现,在大部分情况下,发现的问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。

切分就是利益的调整

我们要非常的清楚,所有的切分调整,都是对相关人的利益的调整。为什么这么说呢,因为维护自己的利益,是每个人的本性,是在骨子里面的,我们不能逃避这一点。我们以第一篇文章里面的例子为例来做解释。

我们已经知道,随着社会的发展,分工是必然的,为什么呢? 这个背后的动力就是每个人自己的利益。每个人都希望能够把自己的利益最大化,比如:生活的更舒适,更轻松,更安全,占用并享有更多的东西。但是每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长的东西。

对比一个人干所有的事情,结果就是大家都能够得到更多,当然也产生了一个互相依赖的社会,互相谁都离不开谁。这就是自然而然而产生的架构切分,背后的原动力就是人们对自己利益的渴望。人们对自己利益的渴望也是推动社会物质发展的原动力。

在这个模式下,比较有意思的是,每个人必须要舍掉自己的东西,才能够得到更多的东西。有些人不愿意和别人进行交换,不想去依赖于别人,这些人的生活就很明显的差很多,也辛苦很多,自然而然的就被社会淘汰了。如果需要在这个社会上立足,判断标准就变成了:如何给这个社会提供更好更有质量的服务。提供的更好更多的服务,自然就能够换取更多更好的生活必需品。实际上这就是我们做人的道理。

为什么需要切分?

当人们认识到要主动的去切分一个系统的时候,毫无疑问,我们不能忘掉利益这个原动力。所有的切分决策都不能够违背这一点,这是大方向。结合前一篇“识别问题”,一旦确定了问题的主体,那么系统的利益相关人(用现代管理学语言叫:stakeholder)就确定了下来。所发现的问题,会有几种情况:

  1. 某个或者某些利益相关人负载太重。
  2. 时间上的负载太重。
  3. 空间上的负载太重,本质上还是时间上的负载太重。
  4. 某个或者某些利益相关人的权利和义务不对等。
大家都是如何做好架构之架构切分的?

 

 

切分的原则

情况1是切分的原因,情况2是切分不合理而导致的新的问题,最终还是要回到情况1。对于情况1,本质上都是时间上的负载。因为每个人的时间是有限的,怎么在有限的时间内做出更多的事情?那么只有把时间上连续的动作,切分成时间上可以并行的动作,在空间上横向扩展。所以切分就要有几个原则:

  1. 必须在连续时间内发生的一个活动,不能切分。比如孕妇怀孕,必须要10月怀胎,不能够切成10个人一个月完成。
  2. 切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。比方说妈妈10月怀胎,妈妈有权利处置小孩的出生和抚养,同样也对小孩的出生和抚养负责。为什么必须是这样呢? 因为如果权利和义务是不对等的话,会伤害每个个体的利益,分出来执行的效率会比没有分出来还要低,实际上也损害了整体的利益,这违背了提升整体利益的初衷。
  3. 切分出来的部分,不应该超出一个自然人的负载。当然对于每个人的能力不同,负载能力也不一样,需要不断的根据实际情况调整,这实际上就是运营。
  4. 切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。如果因为切分导致整个系统解决的问题发生了变化,那么这个变化不属于架构的活动。当然很多时候当我们把问题分析的比较清楚的时候,整个系统的边界会进一步的完善,这就会形成螺旋式的进化。但这不属于架构所应该解决的问题。进化的发生,也会导致新的架构的切分。

原则2是确保我们不能违反人性,因为维护自己的利益,是每个人的本性。只有权利和义务对等才能做到这一点。从原则2的也可以推理,所有的架构分拆,都应该是形成树状的结果,不应该变成有向图,更不应该是无向图。很多人一谈架构,必谈分层,但是基本上都没意识到,是因为把一个整体分拆为了一棵树,因为有了树,才有层。

从某种意义上来说,谈架构就是谈分层,似乎也没有错,但是还是知道为什么比较好。从根节点下来,深度相同的是同一层。这个是数学概念,我就不展开了,感兴趣可以去复习一下数学。

同样我们看一个组织架构,也可以做一个粗略的判断,如果一个企业的组织架构出现了“图”,比方说多线汇报,一定是对stakeholder的利益分析出现了问题,这就会导致问题2的发生。问题2一旦出现,我们必须马上要意识到,如果这个问题持续时间长,会极大的降低企业的运作效率,对相关stakeholder的利益都是非常不利的,同样对于企业的利益也是不利的。必须快速调整相关stakeholder的职责,使得企业的组织架构成为一个完美的树状,并且使得树的层数达到尽可能的低。只有平衡树可以比较好的达到这个效果。

当然如果某个节点的能力很强,也可以达到减小树的高度的结果。技术的提升,也是可以提升每个节点的能力,降低树的层数。很多管理学都在讨论如何降低组织架构的层数,使得管理能够扁平化,原因就在于此,这里就不展开讨论了。从这里也基本可以得出一个结论,一个好的组织的领导,一定也是一个很好的架构师。

切分与建模

实际上切分的过程就是建模的过程,每次对大问题的切分都会生成很多小问题,每个小问题就形成了不同的概念。这也是系列第二篇文章尝试表达的。这些不同的概念大部分时候人们自发的已经建好了,架构师更多的是要去理解这些概念,识别概念背后所代表的的人的利益。比如人类社会按照家庭进行延续,形成了家族,由于共享一片土地资源,慢慢形成了村庄,村庄联合体,不同地域结合,形成了国家。由于利益分配的原因,形成了政权。每次政权的更迭,都是利益重新分配的动力所决定的。

同样对于一个企业也是一样的,一开始一个人干所有的事情。当业务量逐渐变大,就超过了一个人能够处理的容量,这些内容就会被分解出来,开始招聘人进来,把他们组合在一起,帮助处理企业的事务。整个企业的事务,就按照原则2,分出来了很多新的概念:营销,售前,售中,售后,财务,HR等等。企业的创始人的工作就变成了如何组合这些不同的概念完成企业的工作。如果业务再继续增大,这些分出来的部分还要继续分拆,仍然要按照原则2才能够让各方达到利益最大化。如果某个技术的提升,提高了某个角色的生产力,使得某个角色可以同时在承担更多的工作,就会导致职责的合并,降低树的层数。

切分的输出和组织架构

架构切分的输出实际上就是一个系统的模型,对于一个整体问题,有多少的相关方,每个相关方需要承担哪些权利和义务,不同的相关方是如何结合起来完成系统的整体任务的。有的时候是从上往下切(企业),有的时候是从下往上合并,有的时候两者皆有之(人类社会的发展)。而切分的结果最终都会体现在组织架构上,因为我们切分的实际上就是人的利益。

从这方面也可以看出,任何架构调整都会涉及到组织架构,千万不可轻视。同样,如果对于stakeholder的利益分析不够透彻,也会导致架构无法落地,因为没有人愿意去损坏自己的利益。一旦强制去执行,人心就开始溃散。这个也不一定是坏事,只要满足原则2就能够很好的建立一个新的次序和新的利益关系,保持组织的良性发展,长久来看是对所有人的利益都有益的,虽然短期内有对某些既得利益者会有损害。

总结一下

  1. 架构的切分的导火索是人的负载太重。
  2. 架构的切分实际就是对stakeholder的利益进行切分或合并,使得每个stakeholder的权责是对等的,每个stakeholder可以为自己的利益负责。
  3. 架构切分的最终结果都会体现在组织架构上,只有这样才能够让架构落地并推进。
  4. 架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。


Tags:架构   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
一般碰到问题,我们去梳理架构的过程中,会发现,在大部分情况下,发现的问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉...【详细内容】
2019-08-13   架构  点击:(0)  评论:(0)  加入收藏
摘要Spring框架是一个流行的基于轻量级控制反转容器的Java/J2EE应用框架,尤其在数据访问和事务管理方面的能力是众所周知的。Spring的声明性事务分离可以应用到任何POJO目标...【详细内容】
2019-08-13   架构  点击:(1)  评论:(0)  加入收藏
本文主要介绍Android的系统架构,Android使用linux内核(Marco kernel),但是Android的架构又与Linux系统有所不同,因此在介绍Android系统架构之前,我们先一起来了解一下Linux系统的...【详细内容】
2019-08-12   架构  点击:(1)  评论:(0)  加入收藏
MVP 与 MVC 简介MVP 软件架构在现在的应用中, 特别是 Android 端的编程中尤为突出的使用,因为 MVP 架构可以很深层次的去解耦视图、业务逻辑、数据源三者的关系,让它们之间的相...【详细内容】
2019-08-12   架构  点击:(1)  评论:(0)  加入收藏
本文整理了阿里几位技术专家,如架构总监 谢良纯,中间件技术专家 玄难等几位大牛,关于中台架构的几次分享内容,将业务中台形态、中台全局架构、业务中台化、中台架构图、中台建设...【详细内容】
2019-08-12   架构  点击:(21)  评论:(0)  加入收藏
首先说一下B/S架构,所谓B其实就是指浏览器,S就是服务端,浏览器通过HTTP协议访问服务端,一方面用户用着方便,一通百通节约了学习成本;另一方面统一的协议也节省了服务商的开发成本...【详细内容】
2019-08-12   架构  点击:(1)  评论:(0)  加入收藏
一、软件负载均衡概述硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Ng...【详细内容】
2019-08-08   架构  点击:(2)  评论:(0)  加入收藏
正文MySQL的Join到底能不能用经常听到2种观点: join性能低,尽量少用 多表join时,变为多个SQL进行多次查询其实对于上面的观点一定程度上是正确的,但不是完全正确。但之所以流传...【详细内容】
2019-08-07   架构  点击:(4)  评论:(0)  加入收藏
软件的架构是一种抽象的结构,它由软件的各个组成部分和这些部分之间的依赖关系构成。正如你将在本文中看到的,软件的架构是多维的,因此有多种方法可以对其进行描述。架构很重要...【详细内容】
2019-08-07   架构  点击:(5)  评论:(0)  加入收藏
什么是微服务?微服务就是把原本臃肿的一个项目的所有模块拆分开来并做到互相没有关联,甚至可以不使用同一个数据库。 比如:项目里面有User模块和Power模块,但是User模块和Power...【详细内容】
2019-08-06   架构  点击:(9)  评论:(0)  加入收藏
Spring Boot是一个真正的游戏改变者,它的受欢迎程度现在不断增加。让我们看看Spring Boot到底是什么?Spring Boot是一个构建在Spring框架顶部的项目。它提供了一种更简单、...【详细内容】
2019-08-05   架构  点击:(3)  评论:(0)  加入收藏
什么是云2006年8月9日,Google首席执行官Eric Schmidt在搜索引擎大会(SES San Jose 2006)上首次提出云计算概念。云计算是网格计算,分布式计算,并行计算、效...【详细内容】
2019-08-05   架构  点击:(7)  评论:(0)  加入收藏
1、通用架构概述创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构。这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我...【详细内容】
2019-08-05   架构  点击:(4)  评论:(0)  加入收藏
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网...【详细内容】
2019-08-05   架构  点击:(10)  评论:(0)  加入收藏
dubbo是什么dubbo是一个分布式服务中间件,是高性能和透明化的RPC远程服务调用解决方案,主要通过资源调度和服务治理来解决分布式架构下服务资源浪费以提高集群的使用率。核心...【详细内容】
2019-08-05   架构  点击:(2)  评论:(0)  加入收藏
微博日活跃用户1.6亿+,每日访问量达百亿级,面对庞大用户群的海量访问,良好的架构且不断改进的缓存体系具有非常重要的支撑作用。本文大纲1、 微博在运行过程中的数据挑战2、 Fe...【详细内容】
2019-08-02   架构  点击:(15)  评论:(0)  加入收藏
背景360搜索是360的重要产品,目前拥有上万台服务器,每日抓取网页数量高达十亿,引擎索引的优质网页数量超过数百亿。360搜索技术团队通过本文,为大家介绍一下,如此强大的搜索引...【详细内容】
2019-08-02   架构  点击:(12)  评论:(0)  加入收藏
一,需求缘起互联网公司,这样的场景是否似曾相识:场景一:pm要做一个很大的运营活动,技术老大杀过来,问了两个问题:(1)机器能抗住么?(2)如果扛不住,需要加多少台机器?场景二:系统设计阶段,技术...【详细内容】
2019-08-02   架构  点击:(5)  评论:(0)  加入收藏
单机的 redis,能够承载的 QPS 大概就在上万到几万不等。对于缓存来说,一般都是用来支撑读高并发的。因此架构做成主从(master-slave)架构,一主多从,主负责写,并且将数据复制到其...【详细内容】
2019-08-02   架构  点击:(5)  评论:(0)  加入收藏
SpringMVC架构实现原理一、SpringMVC介绍Spring mvc是一个基于mvc的web框架。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。Spring mvc是spring...【详细内容】
2019-08-01   架构  点击:(6)  评论:(0)  加入收藏
推荐资讯
相关文章
栏目更新
栏目热门