碳足跡

我們致力於減少碳足跡。

蘭卡斯特大學最近的一項研究顯示,全球計算造成的溫室氣體 (GHG) 排放量可能比先前認為的要高。資訊與通訊科技 (ICT) 產業,若將從製造到計算的完整生命週期都納入考量,其產生的溫室氣體排放量高達總排放量的 3.9%。如果這是正確的,這甚至高於航空業,航空業的排放量約為 2%

OCaml 維護者非常清楚其基礎設施對環境的影響,尤其是用於建置 Docker 基礎映像檔、執行持續整合 (CI) 檢查,以及建置和部署此網站的機器。全球各地不同資料中心託管的近 1000 個 CPU 核心執行這些任務。雖然 OCaml 是開源的,但這些機器並非免費運作。製造和維護這些機器的成本,更不用說為它們供電所消耗的大量能源,都是相當可觀的。

維護者正在探索減少 OCaml 碳足跡的方法,最終目標是達到碳中和。碳中和是指抵消自身碳足跡的做法。例如,在計算出產生的排放量後,會透過投資旨在減少排放的項目來抵消相同的排放量。再生能源和其他類似的措施顯示出實現此目標的希望。在他們做出任何艱難的決定之前,必須先更了解 OCaml 對環境的影響。這項工作已經在進行中。透過使用 OCluster(一種叢集管理工具),他們將收到更完整的報告,並利用這些資訊做出可產生可衡量影響的決策。

一些可能性

  • 更好地快取和共享成品,以減少重疊工作的多次執行。目前,OCaml 基礎架構會嘗試在同一台機器上重新執行工作,這樣更容易命中快取。
  • 儘管如此,有時工作會不必要地重新執行,因此有人在討論插入一個選擇性重新執行的選項,而不是自動重建。
  • 將報告呈現出來。由於有許多工作不斷執行,使用者能從基礎設施產生的大量資料中獲得越多越好。
  • 向 OCaml 使用者顯示環境指標

持續整合 (CI) 是一個自動化流程,可在程式碼撰寫或修改時檢查程式碼,以確保一切仍能順利執行。這會消耗大量的計算能力,因此也會消耗大量能源。OCaml 的「健康檢查」是一種 CI,每次修改程式碼時,都會針對多個編譯器重新建置數百個套件。雖然這些測試很有用且在某種程度上是必要的,但擁有更好的指標和報告將有助於維護者了解如何最好地管理和節約能源。

雖然這些解決方案正在不斷演進以改善我們的碳足跡,但 OCaml 維護者在此期間會支付可靠的碳抵消費用來幫助緩解這個問題。

除了上述解決方案之外,將排放量分類為必要排放和非必要排放,並最終抵消或消除後者也很有幫助。網站功能和 Opam 套件建置所需的計算會產生必要的排放量;但是,如果架構在做一些浪費的事情,例如重複建置套件然後丟棄結果,這些任務就會產生非必要排放量,如果不是完全停止,則應修改這些排放量。透過統一和規範各種服務的資料結構、新增快取以避免重複計算,並確保不可變內容的有效 HTTP 快取控制標頭,可以消除不必要的排放,這將減少伺服器負載。

解決 OCaml 碳足跡的另一種方法是選擇具有自身進步性碳中和政策的「綠色」資料中心,彙整資料並確保電力使用盡可能健康,並盡可能使用再生能源。

image info