架构解决的问题?
架构解决的问题主要有两类,一类是业务问题,具体的现实生活状态下,没有软件的时候,所解决的问题的主体是谁,解决的是什么问题,是如何解决,如何运作的,一类是计算机问题,例如,如何使用软件模拟现实生活,怎样用硬件完美配合,怎样为下一次更新软件做准备,
第一种是业务的问题,一般软件开发的出发点就在这里。业务问题的本质,是业务所服务的对象的利益问题,明白了这个,就很容易搞清业务的概念和组织方式。再次强调一下,有了软件,可以降低业务的成本,没有软件的情况下,业务是一样跑的。如果只是为了跟风要用软件,说不定反而提高了成本,这个是采用软件之前首先要先搞清楚的。我们经常说软件和技术是业务的enabler,实际就是把原来成本很高的降到到了很低的程度而已,并不是有了什么新的业务。另外,软件也不是降低业务成本的唯一方式。
第二种是软件工程师的问题,要解决业务虚拟化的问题,并且要解决软件开发和运营的生命周期的问题。为了能够让软件很好的跑起来,软件工程师必须理解业务所服务的对象,他们的利益所在,即业务问题。业务面对这些问题是如何分拆解决的? 涉及到了哪些概念? 这些概念分别解决了哪些哪些问题? 我们不能自己按照自己的理解,用自己的一套概念体系来表述
问题所产生的架构
部署的分层:当流量越来越大,软件所部属的机器就会开始按照树状的结构开始分拆,就会形成硬件的部属架构。代码分层:为了把业务在软件中实现并落地,需要前端人员、业务代码人员、存储层等不同技巧的人同时工作,需要切分成代码的架构。软件工程软件:当参与的人员越来越多,就会形成开发体系的组织架构。因为代码开发的过程是一个连续的过程,会用流程来把不同的角色串联起来
参看:架构漫谈