Jenkins最新公告稱將與Microsoft合作基于Azure運行自己的項目基礎結構。其中包括但不限于Jenkins開發者基礎結構,例如該公司旗下的開發者維基、問題跟蹤管理軟件、數據庫,以及靜態內容。遷移至Azure可為自己的工作負載提供更高靈活性,同時能為Jenkins的諸多服務提供額外的資源。
該公司目前的基礎結構由大量物理和虛擬計算機組成,其核心計算機托管在OSUOSL,其余系統分散托管在AWS、Rackspace,以及物理數據中心內。InfoQ就此次合作對Jenkins的意義等細節問題采訪了Jenkins社區領導人R. Tyler Croy。
項目的有機增長逐漸成為常態,Jenkins的基礎結構在各方面也有了顯著增長,根據Croy的介紹,整合至一個云平臺可以在不同方面為該公司帶來巨大的收益。這樣的整合是否需要對整個基礎結構服務的工作方式進行大規重新設計?Croy稱他們正在“重新評估分發/下載中心,以及為內核和插件開發者提供構建/測試服務的基礎結構設計(例如Jenkins on Jenkins),”同時他還補充說:
遷移工作本身可以帶來諸多收益,大量服務可以默認實現更大的縮放規模,能為各種數據庫端服務提供托管式/可縮放的數據庫后端,并能通過寫代碼的方式定義實際采用的基礎結構拓撲,畢竟一切都能通過API的方式使用。通過使用現成的服務(例如CDN、Azure容器服務、SQL Server),還能省略我們基礎結構中的部分內容,降低我們必須自行承擔的運營工作負擔。
遷移到云端還能更好地應對難以預測的流量。對Jenkins來說,流量的多少取決于具體服務。諸如開發者基礎結構(維基、問題跟蹤管理軟件、其他服務)等服務會隨著社區規模的增長以可預測的形式增長,但諸如分發網絡或構建/發布基礎結構等服務的工作負載對彈性要求更高,Croy如是說。計算和網絡吞吐率的需求也存在這樣的彈性。最近發布的Jenkins 2已經導致分發網絡請求數激增。
在將負載遷移至云端的過程中,還需要考慮安全問題。Jenkins上個月就報告過一次可能的安全事件。造成此次事件的原因正是因為目前基礎結構中同一個組件運行了太多服務。
Croy針對這個問題進一步補充說:“項目基礎結構資源的缺乏導致Jenkins需要用同一臺服務器同時運行太多服務。通過Azure對我們基礎結構的不同職能進行分割,使用最少量(適當規模)的實例,由每個實例提供一種服務,這樣的做法對我們很有幫助,此外我們還可以對多個虛擬網絡進行分層,這有助于隔離和預防任何潛在的后續問題。”
查看英文原文:Microsoft and Jenkins Partner to Run Project Infrastructure on Azure