任何软件开发项目都将经历需求获取,系统分析,系统设计,编码研究与开发,系统运行与维护的常规阶段,并且软件系统架构设计介于系统分析与系统设计之间。技术选择是在两个或多个技术解决方案中选择一种适合当前项目情况的技术。技术选择不仅是技术选择,而且是与项目情况密切相关的项目决策。那么到底技术架构是什么?有哪些战略层设计原则?
技术架构是什么?
技术架构,是将产品需求转变为技术实现的过程。技术架构解决的问题包括了如何进行纯技术层面的分层、开发框架选择、语言选择、涉及到各自非功能性需求的技术点。技术架构是确定组成应用系统实际运行的技术组件、技术组件之间的关系,以及部署到硬件的策略。
技术架构面临最大的挑战是“不确定性”。在技术架构上,很多时候就会面临这种选择。是要选择业界最新的技术?还是选择团队最熟悉的技术?如果选择最新的技术,遇到新技术出了问题怎么解决?如果选择目前熟悉的技术,后续技术演进怎么办?这些都是架构师在做技术架构过程中需要考虑的。
业务在千变万化、技术在层出不穷,没有一套通用的技术架构模式来适用所有的系统。那么,我们如何保证在做技术架构时,能够实现一个稳定、出色的系统。面对这些“不确定性”时的架构设计问题,这里从战略和战术两个层面来提供一些设计原则。战略层提供的是技术架构的方法和思路,属于顶层设计;战术层提供的是技术架构的技术实践方式,更偏向详细设计。
技术架构有哪些战略层设计原则?
一、战略层的设计原则就是:合适原则、简单原则、演化原则。
1.合适原则
技术人员有一种很强的技术情怀,就是在做设计的过程中,很希望挑战新的技术、在项目中采用最新的框架、或者自己重造一个比业界的还要牛的轮子。这样才能够显示出自己的优秀,以至于不让自己显的那么平庸。
2.简单原则
我们总是希望能将我们的软件设计的精美、宏大,这样才能彰显我们系统的复杂度和难度。我们是不是会遇到这样的场景,在做设计方案的时候,如果一个解决方案很简单,而且能很快的满足需求。在评审方案时,就会有人觉得这个方案是不是太简单了,没有什么技术含量,是不是需要再设计的复杂一点。
3.演化原则
软件架构和建筑架构很多相同的地方,架构这个词也是从建筑领域借鉴过来的。比如,软件架构描述的是系统的结构、以及各模块之间的关系。而建筑结构描述的是一幢建筑的结构,以及建筑内部各部件如何有机的组成。
但是,软件架构和建筑架构有一个本质上的差异:那就是建筑一旦完成就不会再变,而软件却需要根据业务的发展不断的变化。对于建筑来说,永恒是主题;而对于软件来说,变化才是主题。
二、战术层设计原则
战术层的设计原则分为 3 部分:高并发原则、高可用原则、业务设计原则。这些原则是对技术架构设计过程中提供详细的指导思路,帮助你做技术选型、技术拆分。
1.高并发原则
设计高并发的系统,需要考虑以下几个方面的设计:无状态、拆分、服务化、消息队列、数据异构、缓存。
2.高可用原则
三、技术架构图
技术架构图是将系统的技术方案、技术选型通过视图的方式进行展现。技术架构图分为两类:一类,功能需求技术架构图,是描绘如何通过技术组件来实现系统产品功能的图。另一来,非功能需求技术架构图,是描绘如何通过物理部署的来实现系统运行的图。
以上就是关于技术架构是什么,以及技术架构有哪些战略层设计原则的全部内容,想了解更多关于技术架构的信息,请继续关注中培伟业。