介紹軟件架構
我們將會討論DevOps怎樣影響應用程序的架構,而不是書里其他部分討論的軟件部署系統的架構。
在討論軟件架構時,我們通常想到的是軟件的非功能性需求方面。非功能性需求指的是軟件的不同特性,而非指定行為的需求。
系統能夠處理信用卡交易,這是一個功能性需求。系統每秒鐘可以處理多少筆交易,
這就是一個非功能性需求。
DevOps和持續交付著眼于軟件架構的兩個非功能性需求:
我們需要頻繁交付小的變更。
我們需要對質量有大的信心。
典型的場景應該是:我們可以持續交付許多的小變更,使其在較短的時間內從開發者的電腦上部署到生產環境。由于意料之外的問題導致回滾某個變更的可能性應該是微乎其微的。
所以,如果暫時把部署系統從這樣的場景剔除,我們部署的軟件系統架構會發生怎樣的變化?