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