1. 前言
隨著云計(jì)算的不斷普及,很多傳統(tǒng)行業(yè)也都在轉(zhuǎn)型,筆者在傳統(tǒng)銀行和互聯(lián)網(wǎng)電商都經(jīng)歷過從傳統(tǒng)IDC遷移到公有云或者私有云的過程,如果沒有深入了解過云計(jì)算的架構(gòu)師來說,可能覺得傳統(tǒng)IDC的遷移上云只不過是將應(yīng)用系統(tǒng)和中間件、數(shù)據(jù)庫部署到云虛擬資源上就可以了,這其實(shí)沒那么簡單,按照筆者和同行做過遷移公有云操作的員工交流也基本得出一致的結(jié)果,那就是如果只是將云資源作為原來的基礎(chǔ)IDC來使用,那么整體的使用效果不會太好,因?yàn)槿绻麘?yīng)用在不做任何改造的前提下,只能將應(yīng)用和相關(guān)中間件數(shù)據(jù)庫簡單部署在虛擬資源上,但是公有云的虛擬資源在很多方面是沒辦法和我們私有的IDC來比擬的,從網(wǎng)絡(luò)速度、系統(tǒng)隔離、數(shù)據(jù)安全、負(fù)載均衡、硬件加密等很多方面都會存在問題,原先在私有IDC可能都不存在的問題,在公有云環(huán)境都會是很大的問題,都需要有很好的解決方案。為了能利用好云服務(wù)商的云資源,一定要充分利用好云服務(wù)商提供的其他配套的PaaS、DaaS產(chǎn)品,才能在幫助我們節(jié)約硬件成本、運(yùn)維成本的同時(shí),提高我們的整體開發(fā)、測試和Devops的效率。
下面就拋磚引玉的介紹下傳統(tǒng)IDC上云的經(jīng)驗(yàn)和過渡期的不同級別系統(tǒng)的架構(gòu)方案。
2. 上云的經(jīng)驗(yàn)之談
對于系統(tǒng)上云這里也總結(jié)了一些經(jīng)驗(yàn),有些是自己總結(jié)的,有些是和朋友交流了解到的一些經(jīng)驗(yàn)。
2.1上云順序
上云采取循序漸進(jìn)和系統(tǒng)重要性的原則分批上云。
1)開發(fā)測試環(huán)境優(yōu)先上公有云;
2)邊緣非交易系統(tǒng)上云;
3)選取一個(gè)關(guān)鍵業(yè)務(wù)交易系統(tǒng)上云試點(diǎn);
4)大面積推廣業(yè)務(wù)系統(tǒng)上云;
5)搭建私有云,將公有云和私有云組成混合云。
2.2應(yīng)對監(jiān)管
監(jiān)管對金融機(jī)構(gòu)的監(jiān)管要求較明確,保證客戶4要素信息不上云,為了應(yīng)對監(jiān)管采取的措施是監(jiān)管定期檢查的系統(tǒng)采取分區(qū)部署和域名隔離,將一個(gè)系統(tǒng)中小部分應(yīng)用節(jié)點(diǎn)還是部署在公司內(nèi)數(shù)據(jù)中心,大部分應(yīng)用服務(wù)器節(jié)點(diǎn)還是部署在公有云,采用不同域名在DNS分流,如果有監(jiān)管檢查,引導(dǎo)監(jiān)管檢查公司內(nèi)數(shù)據(jù)中心部署的系統(tǒng)和交易數(shù)據(jù)。
對監(jiān)管不進(jìn)行主動報(bào)備。
2.3網(wǎng)絡(luò)性能和成本
保證訪問性能采取的是關(guān)鍵系統(tǒng)近云方案,例如公司的核心交易系統(tǒng)都部署在萬國數(shù)據(jù)中心,阿里云的華東2機(jī)房也在萬國,直接與萬國簽署協(xié)議在萬國內(nèi)部將部署在阿里云華東2的機(jī)器和公司自有機(jī)器網(wǎng)絡(luò)內(nèi)部專線打通。這樣一方面可以大幅降低專線成本,還能保證和內(nèi)網(wǎng)一樣的網(wǎng)絡(luò)訪問速度。
2.4安全下云方案
為了保證后續(xù)安全下云采用了私有云+PaaS中間件隔離層兩個(gè)手段來保證,如果后續(xù)監(jiān)管要求不能有系統(tǒng)上云或者云供應(yīng)商倒閉等極端情況,也可以保證交易在降級的情況下使用私有云繼續(xù)提供服務(wù)。因?yàn)榇竺娣e使用了云供應(yīng)商的PaaS中間件和數(shù)據(jù)庫產(chǎn)品,為了以后能安全下云和不被一家云供應(yīng)商綁架,對應(yīng)用層代碼和云PaaS中間件之間自己開發(fā)了一套中間件隔離層,這樣后續(xù)換供應(yīng)商或者遷移私有云都可以不涉及到應(yīng)用層代碼的改動,可以比較簡單的遷移系統(tǒng)。
2.5中間件使用
中間件在使用過程中,阿里云經(jīng)常更新中間件版本,導(dǎo)致經(jīng)常在生產(chǎn)上遇到一些阿里中間件導(dǎo)致的問題,不過阿里在過程中修復(fù)比較及時(shí)。
中間件推薦使用云服務(wù)商現(xiàn)成產(chǎn)品,這樣可以讓項(xiàng)目組不用關(guān)心中間件數(shù)據(jù)庫的高可用、高性能等基礎(chǔ)問題,直接拿來就用,但是為了安全下云,可以在中間件之間做一層隔離層解耦。
盡量不要使用云服務(wù)商的開發(fā)框架尤其是微服務(wù)框架,容易導(dǎo)致強(qiáng)耦合后續(xù)無法下云或更換服務(wù)商。
2.6容器化經(jīng)驗(yàn)
在開發(fā)測試環(huán)境使用容器化,這樣可以大幅降低環(huán)境使用成本,通過定期檢查監(jiān)控環(huán)境使用率來督促項(xiàng)目組回收資源,對于使用率低的環(huán)境讓項(xiàng)目組自己備份docker鏡像,后續(xù)在需要使用的時(shí)候直接恢復(fù),這樣在保證資源利用率的情況下,還可以讓項(xiàng)目組后續(xù)要使用的時(shí)候能夠做到秒級環(huán)境恢復(fù),大幅節(jié)約資源成本。容器資源都通過公司內(nèi)的k8s去管理,不使用阿里云的容器管理平臺,大幅降低使用成本。
2.7成本
采用公有云每年資源硬件和維護(hù)成本降低30%,采用團(tuán)體云方案成本會比公有云增加80%成本,采用私有云基礎(chǔ)設(shè)施搭建費(fèi)用4000w。
2.8多地多中心
通過云服務(wù)商多地?cái)?shù)據(jù)中心很方便的實(shí)現(xiàn)3地5中心,減少災(zāi)備環(huán)境的資源浪費(fèi)采用多中心多活方案充分利用資源。
3. 傳統(tǒng)IDC遷移阿里云的過渡方案
對于將IDC進(jìn)行云環(huán)境遷移,其實(shí)整個(gè)過程是需要有過渡期的,除了一些邊緣非交易系統(tǒng)可以做到一次性環(huán)境遷移,對于大多數(shù)業(yè)務(wù)系統(tǒng)來說是無法做到一次性遷移的,都要有合理的云遷移過渡方案,下面就按照業(yè)務(wù)重要性分為兩類系統(tǒng)介紹下遷移方案。
我們按照業(yè)務(wù)優(yōu)先級將系統(tǒng)分為兩大類,一類是系統(tǒng)出現(xiàn)故障后也不會導(dǎo)致全公司業(yè)務(wù)全部中止,只會影響到部分用戶或者是部分業(yè)務(wù)渠道;另一類是系統(tǒng)出現(xiàn)故障后將會導(dǎo)致全渠道核心業(yè)務(wù)無法辦理。下面筆者就拿銀行系統(tǒng)來舉例,渠道類的系統(tǒng)例如移動銀行、開放平臺、柜面等等這些渠道系統(tǒng)優(yōu)先級就可以定義為重要性低一級的系統(tǒng),而像客戶信息系統(tǒng)(ECIF)就是重要性非常高的一級系統(tǒng),一旦系統(tǒng)出現(xiàn)嚴(yán)重故障那么將導(dǎo)致全行所有渠道都無法開立客戶,作為一家銀行無法開客戶開卡,那么這將是非常嚴(yán)重的生產(chǎn)事故。可以按照例子中的系統(tǒng)重要性進(jìn)行分析系統(tǒng)在自己公司中的重要性,對于像銀行、證券這些金融機(jī)構(gòu),監(jiān)管會對系統(tǒng)和數(shù)據(jù)安全有一定的要求,這里在遷移的過程中也需要考慮這些監(jiān)管問題,對于保存了客戶核心信息和關(guān)鍵交易信息的系統(tǒng)可能要分多次進(jìn)行遷移。
3.1 低重要性系統(tǒng)遷移過渡方案
這里直接通過例子來表達(dá)會更加直觀:
低重要性系統(tǒng)這里拿移動銀行來舉例,對于移動銀行系統(tǒng)來說主要有幾部分組成,web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫,移動銀行的web服務(wù)器主要是用來存放一些頁面靜態(tài)資源和作為反向代理,應(yīng)用服務(wù)器其實(shí)承擔(dān)了移動銀行渠道網(wǎng)關(guān)的職責(zé)主要是進(jìn)行報(bào)文的加解密、token管理等職責(zé),移動銀行的核心業(yè)務(wù)邏輯都在渠道中臺,在渠道中臺進(jìn)行了復(fù)雜業(yè)務(wù)邏輯的組合。
根據(jù)移動銀行的特性我們分為兩階段進(jìn)行云環(huán)境遷移:
第一階段:移動銀行Web服務(wù)器和應(yīng)用服務(wù)器上云,數(shù)據(jù)庫使用云服務(wù)商的RDS(需要單獨(dú)采購云數(shù)據(jù)庫加密產(chǎn)品對持久化數(shù)據(jù)進(jìn)行加密),數(shù)據(jù)庫中不涉及交易信息和客戶敏感信息。
第二階段:在監(jiān)管報(bào)備允許的前提下,將全渠道中臺應(yīng)用服務(wù)器上云,數(shù)據(jù)庫使用云服務(wù)商的RDS(需要單獨(dú)采購云數(shù)據(jù)庫加密產(chǎn)品對持久化數(shù)據(jù)進(jìn)行加密)。
3.2 重要性系統(tǒng)遷移過渡方案
對于重要性高的系統(tǒng)的云遷移過渡方案我們用客戶信息系統(tǒng)來舉例,客戶信息系統(tǒng)在銀行中是非常重要的一級系統(tǒng),如果客戶信息系統(tǒng)出現(xiàn)問題,那么將導(dǎo)致嚴(yán)重的生產(chǎn)事故。
因?yàn)镋CIF系統(tǒng)屬于重要一級系統(tǒng),在保證高可用和客戶數(shù)據(jù)安全的前提下分3階段實(shí)施:
一階段:將部分應(yīng)用服務(wù)器部署在云上,部分應(yīng)用服務(wù)器部署在行內(nèi)數(shù)據(jù)中心;調(diào)用方通過SLB進(jìn)行負(fù)載分流到云上和云下的ECIF應(yīng)用服務(wù)器;ECIF所有數(shù)據(jù)統(tǒng)一保存在行內(nèi)數(shù)據(jù)中心的數(shù)據(jù)庫中,云上應(yīng)用服務(wù)器的數(shù)據(jù)庫連接通過專線連接到行內(nèi)ECIF數(shù)據(jù)庫。這樣實(shí)施的目的可以防止在云供應(yīng)商出現(xiàn)系統(tǒng)性事故的時(shí)候,可以將請求負(fù)載分流到行內(nèi)服務(wù)器來提供服務(wù),數(shù)據(jù)還是統(tǒng)一保存在IDC機(jī)房的數(shù)據(jù)庫中,這樣可以保證客戶數(shù)據(jù)在行內(nèi)滿足監(jiān)管需求。
二階段:將所有應(yīng)用服務(wù)器部署在云上;ECIF所有數(shù)據(jù)統(tǒng)一保存在行內(nèi)數(shù)據(jù)中心的數(shù)據(jù)庫中,云上應(yīng)用服務(wù)器的數(shù)據(jù)庫連接通過專線連接到行內(nèi)ECIF數(shù)據(jù)庫。第二階段客戶數(shù)據(jù)還是保存在IDC的數(shù)據(jù)庫中,目的還是為了應(yīng)對監(jiān)管,對于沒有監(jiān)管的行業(yè)可以省略第二步直接到第三階段,完全使用云服務(wù)商的RDS。
三階段:在監(jiān)管允許客戶數(shù)據(jù)上云的前提下,將ECIF應(yīng)用服務(wù)器和數(shù)據(jù)庫全部上云。對于不涉及監(jiān)管的系統(tǒng)可以直接從第一階段邁進(jìn)第三階段,第一階段的云上云下分散部署的目的還是給運(yùn)維和云服務(wù)商產(chǎn)品能夠有個(gè)適應(yīng)踩坑的過程,目前隨著云服務(wù)商技術(shù)的不斷迭代更新,出故障的幾率也在逐步下降,所以第三階段實(shí)現(xiàn)的應(yīng)用系統(tǒng)全部上云也是一個(gè)趨勢,不然還是要安排人去維護(hù)IDC的設(shè)備和軟件。
總結(jié)
傳統(tǒng)數(shù)據(jù)中心搭建和維持正常運(yùn)營的成本較高,所以現(xiàn)在不單單是小的創(chuàng)業(yè)公司將系統(tǒng)使用公有云來降低成本,很多大型互聯(lián)網(wǎng)公司和銀行、支付公司這些金融機(jī)構(gòu)也都在將原來部署在IDC機(jī)房里的系統(tǒng)往云上遷移,一方面是為了降低成本,另一方面是能夠在交易出現(xiàn)潮汐的場景下能夠快速彈性伸縮。總的來說系統(tǒng)上云將是一個(gè)未來數(shù)據(jù)中心發(fā)展的大趨勢。