Cron

將 CI 伺服器用於 cron/計劃任務是不好的做法嗎

  • July 29, 2020

使用 Jenkins 或 Gitlab CI Pipelines 之類的東西來替換 cron 作業是否被認為是不好的做法?

我能想到兩個缺點,讓 CI 伺服器可以訪問所有伺服器,並且存在單點故障(如果 CI 伺服器關閉,則無法執行計劃任務)。

通常,在我們的範例伺服器上執行的 cron 作業與 git 儲存庫相關聯。

這是為了消除開發人員連接到伺服器以檢查和/或管理 cron 和 cron 故障的需要,並且能夠在一個中心位置管理這些。

這會更好地放在配置管理工具(Puppet/Salt/Chef/ansible)中嗎?

對解決問題的工具做出自己的設計決定。沒有一個答案,只有在各種取捨之間做出選擇。

沒有人應該得到一個 shell,但是需要管理一些 cron 作業。因此,編寫自動化程序以在每台主機上安裝和驗證 cron 作業。保持版本控制的自動化,並通過 CI 觸發。

CI 伺服器的可用性和性能可能是一個問題。通過實施高可用性和擴大規模來解決這個問題。

cron 是一個基本的調度程序,雖然它可以可靠地按分鐘執行作業,但它是有限的。考慮實施具有更多功能的系統,包括日誌記錄和診斷。

引用自:https://serverfault.com/questions/1027007