Linux
更新二進製文件的最佳方法?
所以我正在製作一個可以編譯為二進製文件的負載均衡器。這將在多個伺服器上進行擴展。
要更新,程序本身將每 5 分鐘檢查一次 GitHub 儲存庫是否有新版本,如果有新版本,它會下載並覆蓋舊版本,然後執行命令
systemctl restart lb
。現在我的問題是,這是一種不好的做法嗎?這樣做有什麼缺點嗎?除此之外還有更好的更新做法嗎?
–
順便說一句,執行 cronjob 並不理想。
推薦的方法是生成一個作業系統包(.deb/.rpm/etc.)並將其提供給包管理器。
您可以利用 Github 操作來生成包,並將其上傳到二進制儲存庫,該儲存庫為包儲存庫創建必要的元文件。
該軟體包應具有重新啟動服務所需的命令。
這使得更換服務單元、二進製文件和支持文件變得微不足道。大多數包管理器支持某種形式的自動更新。即使在拙劣的更新上回滾到舊版本也是微不足道的。
您可以將系統設置為在上傳到包儲存庫後響應通過 Github 操作(webhook)呼叫的 HTTP 請求,從而從基於拉的輪詢方法切換到僅在更新 git 時觸發的基於推送的方法儲存庫。