CD-第十章節心得-2

[文章目录]
  1. 第十章節:提示與技巧
    1. 提示與技巧 P.271 ~
    2. 記錄部署活動
    3. 不要刪除舊擋,而是移動到別的位置
    4. 部署是整個團隊的責任
    5. 伺服器應用程式不應該有GUI
    6. 為新部署預留熱期
    7. 快速失敗
    8. 不要直接對生產環境進行修改
  2. 小結

第十章節:提示與技巧

提示與技巧 P.271 ~

常常~部署團隊去部署不熟悉的系統或服務,就是產生不愉快經驗的開始。
因此~讓真正執行部署的人,應該參與部署流程的建立。從頭建立團隊情感。
部署的流程文件,也就可以從頭開始建立、修正、驗證,達到正確有效率的部署基礎。

記錄部署活動

如果軟體開發出的自動化部署,記錄那些環境因素、套件需求、檔案與目錄權限是非常重要的。
部署後日誌、部署清單也是必要留下的。

不要刪除舊擋,而是移動到別的位置

如前一篇提到:應該要保留一份舊版本的副本區~相同的基本原則,還沒升級、部署完成之前,務必留下後路,不要置於自己不義的情況下。
UNIX環境中最佳實踐:把應用程式每個版本部署到單獨的目錄中,再透過軟連結來指向目標版本。
如此,版本的切換(還原)變得更加容易。

部署是整個團隊的責任

團隊中的每個成員都應該知道如何部署,及如何維護部署腳本。藉由每次部署工作都使用相同且真正的部署腳本(公版概念)。

伺服器應用程式不應該有GUI

反差:這叫 Windows 情何以堪~

書中這麼下標題,其說法是:過去GUI類型應用程式,設置資訊沒有腳本化、應用程式位於哪個目錄非常敏感。
其主要原因是不少應用程式依賴著使用者登入狀態情境下,才能啟動應用程式。

為新部署預留熱期

當網站在官方發布時,就應該已經執行了一段時間,足以讓應用程式的伺服器和資料庫建立好他們的緩存,準備好全部的連線,完成了預熱階段。

謎之音:系統需要預熱我第一次聽到,CDN 系統中的快取需要預熱預存,倒是很常見。

書中提到,那隻鳥~利用金絲雀發佈,算是達到預熱的目標。
新伺服器服務經過一小部分的請求後,確認無誤證明了沒有異常,方可持續切換線上流量到新系統上。

快速失敗

部署腳本,應該也要納入測試計畫中~
為了確保部署順利,這些測試應該被當作部署的驗證一環;理想下,當遇到問題,就應該立即停止。

不要直接對生產環境進行修改

前面章節,都有提到版控的重要性,非常不建議在線上生產環境中進行任何的修改。
生產環境裡當被定義為「鎖定」概念,不會因未受控制的修改,讓系統呈現不穩定、未知的風險階段。
如此的限制,才能促進走向「持續部署」的光明大道。

小結

  • 部署流水線的幾個階段,比較常關注測試環境與生產環境的部署。
  • 這些階段的差別在於一定要有自動化測試階段,只有測試許可與正確,部署流水線就應該能夠透過「點擊按鈕」進行後續部署階段。
  • 部署的歷程,應該能夠讓團隊明確看出哪個版本被部署到哪個環境中。版本差異的透明度也需要。
  • 降低部署失敗風險,最佳方式就是落實持續發佈,每當有版本修訂,就該照流程完成部署到個階段測試環境中。
  • 頻繁的部署,越能縮小“有問題”的範圍,持續部署任務就越趨近100%成功。
  • 部署流程應該在最開始就實現與進行,並且持續迭代的改善流程。不應該在接近最後重要時刻才想到部署流程。
  • 只要參與開發、業務、測試、DBA、支援、維運等等團隊,這些人需要持續交流、合作,共同促使交付公司產品服務更有效率。