應用情境與案例
功能套件化本質上就可以達到一定的重複利用性,但是再搭配使用NuGet套件的格式,除了可以更容易在開發階段共用,也可以讓在系統佈署時有更多的選擇性與彈性。
共用功能套件
將共用的功能寫成套件化,可以在開發階段取代使用DLL參考的做法,直接由NuGet加入參考,常見的就是將一些共用功能(例如:發送電子郵件、讀取或寫入Excel檔案...)寫成套件,然後其他專案在開發時再引用進專案使用。而在佈署時只要將套件的檔案一起佈署到目錄即可。
容器化(Docker)
不需要重複打包不同系統的容器,只要建置一個加載此架構的基本容器,在建立容器時指定遠端的套件來源,這樣當容器啟動後,自動就會根據套件來源進行載入功能的作業。
開發與維運
架設兩台私有的NuGet Server(一台為測試區、一台為正式區),另外建立一個空的網站並讓此網站使用套件化佈署架構,並將其套件來源設定為由遠端(正式區)取得,作為系統正式環境使用:
- 開發人員將完成的功能發佈至測試區
- 測試人員測試完成後,認為已經可達到正式釋出的要求,由測試區再發佈至正式區
- 維運人員安排更新時程,待重新啟動服務後,系統會自動由正式區的NuGet Server中載入套件,即可完成更新
實際運用
運用這個架構,開發了如上圖的共用套件,根據專案在開發上的需求進行參考並佈署,一開始就可以讓專案進入需求開發,不須將時間花在基礎功能上。