GitLab 是如何從 Azure 云遷移到谷歌云的,gitlab云環(huán)境-ESG跨境

GitLab 是如何從 Azure 云遷移到谷歌云的,gitlab云環(huán)境

來源網(wǎng)絡(luò)
來源網(wǎng)絡(luò)
2022-05-31
點贊icon 0
查看icon 694

GitLab 是如何從 Azure 云遷移到谷歌云的,gitlab云環(huán)境GitLab 是如何從 Azure 云遷移到谷歌云的最近 GitLab.com 剛從 Azure 遷移到了谷歌云平臺(GCP),GitLab 認(rèn)為新平臺能更好地處理關(guān)鍵負(fù)載,提供最低的錯誤率和最高的可用性。網(wǎng)站并沒有經(jīng)歷漫長的下線維護(hù)時間就完成了遷......

GitLab 是如何從 Azure 云遷移到谷歌云的,gitlab云環(huán)境




GitLab 是如何從 Azure 云遷移到谷歌云的

最近 GitLab.com 剛從 Azure 遷移到了谷歌云平臺(GCP),GitLab 認(rèn)為新平臺能更好地處理關(guān)鍵負(fù)載,提供最低的錯誤率和最高的可用性。網(wǎng)站并沒有經(jīng)歷漫長的下線維護(hù)時間就完成了遷移工作,而做到這一點背后的關(guān)鍵就是 GitLab 的鏡像切換能力。

GitLab 決定遷移到 GCP 的原因之一是希望新平臺能提升性能和一致性。GitLab 的 Chrissie Buchanan 還提到,GCP 對 Kubernetes 的支持是另一個顯著因素。但將 GitLab 完全轉(zhuǎn)移到 Kubernetes 上來運行的項目被推遲到遷移完成后才繼續(xù)進(jìn)行。

GitLab 團(tuán)隊很早就意識到,簡單地關(guān)掉 GitLab.com,將所有數(shù)據(jù)從 Azure 復(fù)制到 GCP,更改 DNS 以指向新服務(wù)器,然后重新啟動服務(wù)這條遷移路線是不可行的。實際上,光是復(fù)制大約半 PB 的數(shù)據(jù)然后驗證所有數(shù)據(jù)是否正確傳輸就需要漫長的下線維護(hù)時間了。。

因此 GitLab 的工程師走了另一條路子:他們加入了一項新功能,將網(wǎng)站鏡像到了多個自同步的 GitLab 實例上。平時,這些鏡像可以在云服務(wù)內(nèi)分發(fā)數(shù)據(jù)時提升性能和可靠性;而在這次跨云遷移的任務(wù)中,團(tuán)隊只要關(guān)閉基于 Azure 服務(wù)的鏡像,然后啟用在 GCP 服務(wù)上運行的新鏡像(也就是故障切換)就可以了。

這項新功能稱為 Geo,通過它可以在主服務(wù)不下線的前提下遷移 GitLab 的所有數(shù)據(jù)。所有數(shù)據(jù)傳輸完畢后,GitLab 的工程師就開始關(guān)閉 Azure 上的鏡像,啟用 GCP 上的新鏡像,然后將后者設(shè)置為主鏡像。這一過程非常精巧,需要漫長的的迭代、試錯過程才能完美實現(xiàn)目標(biāo)。

InfoQ 采訪了 GitLab 聯(lián)盟副總裁 Brandon Jung 和基礎(chǔ)設(shè)施工程師 Andrew Newdigate,了解了更多細(xì)節(jié)。

InfoQ:你們介紹的遷移流程其實很簡單直觀,核心就是使用鏡像解決問題,只有最后的鏡像切換步驟麻煩一些。能否介紹一下你們遇到了哪些困難,又是如何解決的呢?

Andrew:舉個例子。有一個小問題被我們長期忽視了:

GitLab 公司在幾乎所有工作流程中都用到了 GitLab.com,其中故障轉(zhuǎn)移流程在 GitLab.com 上還用 markdown 做成了方案模板。

因為我們是在對暫存實例進(jìn)行故障轉(zhuǎn)移,而我們的工作流程是在 GitLab.com 的生產(chǎn)實例上運行的,所以后者在前者故障轉(zhuǎn)移期間都是可用的。結(jié)果遷移過程快結(jié)束的時候才有人發(fā)現(xiàn),生產(chǎn)實例故障轉(zhuǎn)移的時候是沒法在 GitLab.com 上繼續(xù)展開工作的。事后看來這是顯而易見的問題,但不知何故我們都忽略了它,可能是因為我們太習(xí)慣使用自家產(chǎn)品了。

解決方案很簡單:我們使用 GitLab 的推快遞鏡像功能在單獨的內(nèi)部 GitLab 實例上維護(hù)遷移項目的副本。對 GitLab.com 所做的任何更改都將復(fù)制到鏡像中。在故障轉(zhuǎn)移期間我們使用這個實例代替生產(chǎn)實例。

InfoQ:GitLab.com 報告說每日錯誤率和整體服務(wù)可用性都有了顯著提升。為什么遷移到 GCP 會有這樣的效果?

Brandon:GCP 的一致網(wǎng)絡(luò)是 API 端點性能提升的最大功臣。

Andrew:Brandon 提到了網(wǎng)絡(luò)這一因素。我還在一篇博文中討論了其它 5 項因素,而且不是所有因素都是技術(shù)層面的。

InfoQ:在這些提升中 Geo 可能帶來的貢獻(xiàn)有多大?

Andrew:Geo 是一種數(shù)據(jù)復(fù)制和異地鏡像解決方案,也能用作災(zāi)難恢復(fù)方案,但它本身并不能提升 GitLab.com 的可用性。

事實上故障轉(zhuǎn)移完成后我們就在 GitLab.com 上禁用了 Geo。幾個月前我們又啟用了 Geo,用作異地備份用途。如果發(fā)生數(shù)據(jù)中心層面的重大中斷事故,我們就會開始故障轉(zhuǎn)移到備份鏡像上,但它平時不會直接接收生產(chǎn)流量。

InfoQ:遷移過程并非易事。GitLab 團(tuán)隊從遷移到 GCP 的經(jīng)歷中學(xué)到了什么?

Brandon:總體來說,我們能夠成功地從微軟 Azure 遷移到谷歌云是我們重視開發(fā)和開源的企業(yè)文化的功勞。

Brandon:GitLab 遷移到 GCP 后用戶就能更容易使用 Kubernetes 了,同時網(wǎng)站的性能、可用性和客戶服務(wù)水平都得到了提升。

Andrew:GCP 遷移項目是 GitLab 迄今為止開展的最大工程項目之一。它需要整個組織內(nèi)多個團(tuán)隊之間的協(xié)調(diào)——包括工程(Geo、CI、計劃)團(tuán)隊、QA 團(tuán)隊、基礎(chǔ)架構(gòu)、營銷、支持等。這些團(tuán)隊需要協(xié)調(diào)交付多個工作流。GitLab 有一個非常清晰和成熟的工程交付流程,非常適合我們的遠(yuǎn)程文化;但我們需要調(diào)整并擴展這些流程,以便按時、安全地交付全公司共同參與的項目。由于我們在為 GitLab(產(chǎn)品)做內(nèi)部測試,因此還能向產(chǎn)品經(jīng)理提供反饋來改進(jìn)網(wǎng)站,以使網(wǎng)站能更好地支持大型多團(tuán)隊項目。產(chǎn)品管理團(tuán)隊反應(yīng)迅速,我們的大部分反饋現(xiàn)已獲得網(wǎng)站采納了。


文章推薦
BIGO Ads教你建立應(yīng)用程式
B2B企業(yè)如何做社交媒體營銷,b2b海外社交媒體營銷
AWS EKS中實現(xiàn)應(yīng)用平滑升級,使用aws的ecs構(gòu)建的架構(gòu)圖
Azure 共享文件系統(tǒng)配置之Windows配置,自己制作的鏡像怎么發(fā)布到azure


特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。

搜索 放大鏡
韓國平臺交流群
加入
韓國平臺交流群
掃碼進(jìn)群
歐洲多平臺交流群
加入
歐洲多平臺交流群
掃碼進(jìn)群
美國賣家交流群
加入
美國賣家交流群
掃碼進(jìn)群
ESG跨境專屬福利分享群
加入
ESG跨境專屬福利分享群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
亞馬遜跨境增長交流群
加入
亞馬遜跨境增長交流群
掃碼進(jìn)群
拉美電商交流群
加入
拉美電商交流群
掃碼進(jìn)群
ESG獨家招商-PHH GROUP賣家交流群
加入
ESG獨家招商-PHH GROUP賣家交流群
掃碼進(jìn)群
《TikTok官方運營干貨合集》
《TikTok綜合運營手冊》
《TikTok短視頻運營手冊》
《TikTok直播運營手冊》
《TikTok全球趨勢報告》
《韓國節(jié)日營銷指南》
《開店大全-全球合集》
《開店大全-主流平臺篇》
《開店大全-東南亞篇》
《CD平臺自注冊指南》
通過ESG入駐平臺,您將解鎖
綠色通道,更高的入駐成功率
專業(yè)1v1客戶經(jīng)理服務(wù)
運營實操指導(dǎo)
運營提效資源福利
平臺官方專屬優(yōu)惠
聯(lián)系顧問

平臺顧問

平臺顧問 平臺顧問

微信掃一掃
馬上聯(lián)系在線顧問

icon icon

小程序

微信小程序

ESG跨境小程序
手機入駐更便捷

icon icon

返回頂部