
設計持續交付架構 |
41
開發者必讀的 Release It!
Michael Nygard 的
Release It!
(
https://pragprog.com/book/mnee2/release-it-second-
edition
)( Pragmatic Bookshelf)已經出第二版了,但仍然有些開發者忽略這
本書,因為他們不知道這本書的主題是什麼。但是如果你要設計與部署高可用
性與容錯的準生產軟體,這是一本首選的參考書。我們認為,每一位想要建構
以服務為基礎的現代 app 或將它部署至(分散式)雲端計算環境的 Java 開發者
都必須閱讀這本書。
鬆耦合的系統通常比較容易測試,因為你可以更輕鬆地隔離元件,而高內聚可協助你在
除錯時了解事情的來龍去脈。本節的重點是,持續交付管道必須能夠讓你盡快在實際的
類生產環境進行部署與測試,你也必須模擬與測試軟體的性能與故障情況。
移往小型服務
現今每一篇軟體開發文章幾乎都會談到微服務,數量之多,讓人幾乎忘了還有其他架構
類型的存在。這種架構可將大型且複雜的 app 分解成小型、互聯的服務,這當然有許多
好處,但是也會讓我們面臨一些挑戰。
交付單體 app 的挑戰
無論軟體開發文章說什麼,設計與建構單體 app 本身沒有什麼問題,它只是一種架構類
型,而且如同任何一種架構,它一定有優缺點。以服務為基礎的 app 越來越流行的主因
是單體 app 有三個限制:
• 增加開發基礎程式與系統的工作量
• 需要隔離子系統才能進行獨立部署
• 無法靈活地(獨立地、彈性地且依需求地)擴展 ...