程式忍者PGNinja

GitHub Blog

GitHub 公開高流量倉庫遷移 Azure 的 Git 架構改造

· GitHub 工程團隊公開如何用按引用分割仲裁與虛擬副本架構,讓最後一批高流量倉庫順利遷移到 Azure,寫入吞吐量提升達 3 到 4 倍。

GitHub 的工程團隊近日發表文章,說明他們如何把最後一小批流量極高的程式碼倉庫,順利遷移到 Azure 雲端基礎架構上。雖然整體遷移進度已達九成九以上,但少數倉庫因為寫入量龐大,一直受限於跨地區資料中心之間的網路延遲,寫入速度始終無法跟上需求,成為整個遷移計畫中最後也最困難的一塊。

團隊採用兩個核心原則來解決問題:盡量減少系統之間的協調動作,以及把資料儲存與運算邏輯拆開。實際做法包括把仲裁範圍從整個倉庫縮小到單一分支或標籤(reference),讓不同分支的寫入可以同時平行進行;另外引入 Azure Blob Storage 作為「虛擬副本」加入仲裁,讀取動作則完全獨立於仲裁之外、直接從物件儲存抓資料,藉此讓讀與寫各自擴充效能。

這套設計讓內部測試的寫入吞吐量提升了三到四倍,也代表 GitHub 終於能把過去因效能瓶頸而卡住、無法搬遷的高流量倉庫,全部移上新的雲端架構。這類「把系統從頭到尾重新拆解再組裝」的工程故事,在開發者社群裡一向很受歡迎,因為它示範了大型平台在不停機的狀況下完成基礎建設大搬家的真實做法。

這篇文章偏向大型系統架構與雲端工程的實務經驗分享,內容需要一定的資料庫與分散式系統背景才容易理解,比較適合已經對後端架構有興趣、程度較進階的學生參考。對剛開始學程式的孩子來說,這則比較偏產業面,可以先當作「原來大公司的網站是這樣搬家的」小故事來認識。

開發工具雲端架構開源工程

其他新聞