您是否可以推薦一些關於軟件體系結構模式的文獻,以便在處理軟件更新/版本時組合可提供高度「連續性」的服務。服務連續性體系結構
例如,在一個企業中,有多個應用程序相互連接,並且依賴於它們的資源,當然,就像數據庫一樣,執行更新/發佈時如何實現零停機?典型場景包括一次更改DB設計和多個服務合同。
您是否可以推薦一些關於軟件體系結構模式的文獻,以便在處理軟件更新/版本時組合可提供高度「連續性」的服務。服務連續性體系結構
例如,在一個企業中,有多個應用程序相互連接,並且依賴於它們的資源,當然,就像數據庫一樣,執行更新/發佈時如何實現零停機?典型場景包括一次更改DB設計和多個服務合同。
無狀態可能是構建服務層的唯一最重要的因素,可以通過零宕機進行升級。這使您可以啓動新版本的軟件,執行負載平衡器切換,並關閉舊版本。
這可以通過有狀態系統來實現,但是您必須能夠監視它們的現有連接,並在等待現有會話過期時更仔細地控制負載平衡器。
數據庫設計的變化要複雜得多,通常只包含規劃,以便變更始終向後兼容。您需要確保您的數據庫允許同時運行舊版本和新版本的服務。
這並不意味着你不能做出突破性改變,它只是意味着你通常需要分兩步進行。例如,重命名一個字段變爲:
這是一個巨大的疼痛,BU對於某些您確實需要的系統需要這種正常運行時間要求。當需要很長時間(有時幾周)將數據移動到新位置時,我也必須這樣做。
最後,這部分是非常重要的。確保你的服務是自治的。沒有多個服務讀取/寫入同一張表。這是一個巨大的混亂,同時遷移多個服務是一場噩夢。