介绍软件架构
我们将会讨论DevOps怎样影响应用程序的架构,而不是书里其他部分讨论的软件部署系统的架构。
在讨论软件架构时,我们通常想到的是软件的非功能性需求方面。非功能性需求指的是软件的不同特性,而非指定行为的需求。
系统能够处理信用卡交易,这是一个功能性需求。系统每秒钟可以处理多少笔交易,
这就是一个非功能性需求。
DevOps和持续交付着眼于软件架构的两个非功能性需求:
我们需要频繁交付小的变更。
我们需要对质量有大的信心。
典型的场景应该是:我们可以持续交付许多的小变更,使其在较短的时间内从开发者的电脑上部署到生产环境。由于意料之外的问题导致回滚某个变更的可能性应该是微乎其微的。
所以,如果暂时把部署系统从这样的场景剔除,我们部署的软件系统架构会发生怎样的变化?