如何將上億人持續使用的電信IT平臺架構,從單套式架構轉移到微服務(wù)架構,美國電信巨頭Verizon只花了60天,關(guān)鍵就是靠容器技術(shù)實(shí)現平移搬遷策略

Verizon采取工作負載平移(Lift and Shift)策略,來(lái)進(jìn)行IT架構大翻新。先將系統元件利用容器打包,部署在PaaS平臺上執行,讓檔案及外部整合介面繼續在舊有平臺上執行。圖片來(lái)源/Verizon
早在15年前,Verizon就已經(jīng)開(kāi)始著(zhù)手數位轉型,瞄準改善通話(huà)品質(zhì)以及語(yǔ)音服務(wù)。這家在2016年營(yíng)收1,260億美元、全美國使用人數1.14億人的美國電信巨頭Verizon,很早就開(kāi)始翻新IT架構,采用現代化IT技術(shù),來(lái)取代舊有的大型主機架構。
對Verizon,現代化IT架構有4大優(yōu)點(diǎn)。第一是應用程式部署頻率增加,更能順應市場(chǎng)變化。再者,當系統停擺之時(shí),恢復正常運作的速度也更快。第三是更新、翻修系統時(shí),可減少失敗的次數,最后一項好處是縮短應用程式交付時(shí)間。IT架構能更有彈性,開(kāi)發(fā)人員可以實(shí)驗新功能,也為轉型奠定基礎。
不過(guò),要撐起超過(guò)1億人電信服務(wù)的IT架構,改變何嘗簡(jiǎn)單,可預期的是投入大筆時(shí)間及金錢(qián),卻無(wú)法預料隨之而來(lái)的風(fēng)險及實(shí)際效益。即使如此,Verizon仍決定再一次翻新資訊架構,將這個(gè)花了十多年打造的單套式(Monolithic)應用程式IT架構,轉移至微服務(wù)架構。
Verizon數位基礎架構資深經(jīng)理Malik Sayed解釋?zhuān)琕erizon決定從入口服務(wù)搜尋服務(wù)VZSearch開(kāi)始,作為導入微服務(wù)的切入點(diǎn)。雖然VZSearch只是一個(gè)基礎搜尋服務(wù),但是對旗下用戶(hù)體驗卻有相當重要影響,「不希望用戶(hù)因為搜尋功能無(wú)法滿(mǎn)足其需求而聯(lián)絡(luò )客服人員。」
這個(gè)搜尋應用程式就像許多傳統應用程式,不僅是單套式架構,也建置在封閉商用軟體平臺上運作。Malik Sayed表示,既有平臺為營(yíng)運帶來(lái)了三大挑戰。第一挑戰是應用程式環(huán)境被綁死,即使現在已經(jīng)許多企業(yè)開(kāi)始使用DevOps、敏捷開(kāi)發(fā),該功能的開(kāi)發(fā)人員還是得靠瀑布式開(kāi)發(fā)流程,「這也讓Verizon的開(kāi)發(fā)流程很難導入自動(dòng)化。」他表示。
再者是難以利用云端帶來(lái)的便利,Malik Sayed表示,許多老舊應用程式都有各自的固定IP位址,不能享受隨需水平擴充功能外,想要更新應用程式也很困難,「開(kāi)發(fā)者必須將所有環(huán)境組態(tài)都調整為一致。」最后是應用程式架構在封閉平臺所帶來(lái)的封閉性,讓架構轉型成云端原生應用的任務(wù)經(jīng)常碰壁。
Verizon決定從入口服務(wù)搜尋服務(wù)VZSearch開(kāi)始,作為導入微服務(wù)的切入點(diǎn),肩負將這個(gè)應用程式現代化任務(wù)的Verizon數位基礎架構資深經(jīng)理Malik Sayed表示,在系統架構翻修上,考慮成本及時(shí)間權衡,Verzion決定導入工作負載平移的革新策略,將此應用程式劃分成各個(gè)微服務(wù),打包成容器后在OpenShift上執行。
靠容器解決軟體相依性,并改善硬體使用效率
也因此,肩負這個(gè)應用程式現代化任務(wù)的Malik Sayed,有許多重要目標得完成。首先是減輕各軟體相依性,靠容器技術(shù)將各應用程式可獨自運作,「在搬遷到云端時(shí),不要花費過(guò)多時(shí)間重新撰寫(xiě)程式碼。」再者是加速開(kāi)發(fā)流程的進(jìn)行。除了快速建立開(kāi)發(fā)、正式環(huán)境,導入CI/CD工作流程,還要讓打造自助式IT服務(wù),增加開(kāi)發(fā)人員的工作效率。
同時(shí)還要改善資源使用效率,「正式環(huán)境80%時(shí)間都處于最小使用量,浪費許多硬體資源,這是個(gè)嚴重的問(wèn)題。」
最后則是大幅度引入開(kāi)源技術(shù),避免Verizon被特定廠(chǎng)商所綁死,降低應用程式與基礎架構相依性,加速應用程式在公有云、私有云間的搬遷作業(yè)。
3種架構轉換方式,Verizon選擇平移策略
在系統架構翻修上,Verizon總共考慮過(guò)3種策略。第一種是將工作負載平移(Lift and Shift)到新平臺運作,將系統元件利用容器打包,部署在PaaS平臺上執行,讓檔案及外部整合介面繼續在舊有平臺上執行。第一種策略的優(yōu)點(diǎn)在于,以不大型變動(dòng)為前提下,讓各個(gè)系統也能獨立進(jìn)行部署。
第二個(gè)策略則是將現有系統重構(Refactoring),不更動(dòng)舊有系統,而是靠額外實(shí)作的應用程式層補足新功能。但Verizon分析,老舊系統很難進(jìn)行些微更動(dòng),部分元件修改就會(huì )影響到系統整體架構。最后則是整套系統重新開(kāi)發(fā),舍棄掉舊功能,所有系統介面都得重寫(xiě)。但此做法最大的問(wèn)題在于,新平臺將不再獲得任何技術(shù)支援,而開(kāi)發(fā)人員過(guò)去累積的能力等同歸零。同時(shí)這個(gè)策略,也會(huì )耗費最多金錢(qián)及時(shí)間。
考慮成本及時(shí)間權衡下,Verzion決定導入工作負載平移的革新策略,將此應用程式劃分成各個(gè)微服務(wù),打包成容器后在OpenShift上執行。
而此搜尋應用程式VZSearch重新架構成微服務(wù)的過(guò)程,可以細分成3個(gè)關(guān)鍵步驟。首先,開(kāi)發(fā)團隊要將既有的應用程式分別拆開(kāi),將其轉換成Docker容器以及Dockerfile。Verizon認為,這個(gè)步驟耗費最多功夫,必須大量花費時(shí)間,重新定義容器映像檔每層的內容,重頭開(kāi)始替每個(gè)系統元件開(kāi)發(fā)專(zhuān)屬的Dockerfile。
將應用程式劃分之后,就是一一部署至OpenShift平臺之上。值得注意的是,每一個(gè)應用程式節點(diǎn)都部署了一個(gè)專(zhuān)屬容器。Verizon解釋?zhuān)辉趯胄录夹g(shù)的初期,必須讓內部人員了解運行容器的優(yōu)點(diǎn),「藉此加速業(yè)務(wù)的交付速度。」最后一個(gè)步驟,就是讓Docker映像檔,轉換成相容OpenShift Pod的格式。在此,Verizon的作法是使用OpenShift提供的通用模板進(jìn)行編寫(xiě),「讓模板在專(zhuān)案開(kāi)發(fā)中可被重復利用。」
靠容器實(shí)現自助式IT,部署時(shí)間從周縮短到秒
雖然Verizon的微服務(wù)架構從這個(gè)基本的搜尋功能起頭,總共花費了2個(gè)月時(shí)間重新架構,不過(guò)Malik Sayed認為,它的確達到最初所規畫(huà)的目標。他表示,劃分各個(gè)系統元件部署在Docker容器中執行,「帶來(lái)最大的好處是可以隨需建置系統環(huán)境。」另外,開(kāi)發(fā)者也可以使用自助服務(wù),大幅降低基礎架構的建立時(shí)間。Malik Sayed表示,在傳統應用程式環(huán)境中,光是申請基礎架構,到最后完成建置,就必須花上1個(gè)禮拜至1個(gè)月,「現在只需要輕松點(diǎn)幾個(gè)按鍵,就能完成容器基礎架構建置,這才是真正的隨需擴充。」
同時(shí),將系統切割成各獨立運作的微服務(wù)后,也直接減低Verizon維持基礎架構運作的成本。在白天時(shí),基礎架構需要調配更多資源應付系統請求,反之,夜晚時(shí)只需要部分伺服器就足夠,「水平擴充功能直接對營(yíng)運成本產(chǎn)生影響。」Malik Sayed表示。最后則是利用容器技術(shù),讓Verizon可以免除被特定廠(chǎng)商綁定的風(fēng)險,「容器讓我們可以跨云運作。」
在Verizon踏入微服務(wù)架構的過(guò)程中,其中兩個(gè)關(guān)鍵是將系統劃分成各子系統,并且利用容器打包,再者是利用外部廠(chǎng)商PaaS解決方案執行容器,達到跨云運作。Verizon表示,面對相異環(huán)境及應用程式,導入容器化都不是件容易的事,「它有很多好處,但最初導入仍相當是困難。」