技術(shù)揭秘12306改造(二):探討12306兩地三中心混合云架構(gòu)
注:本文首發(fā)于CSDN,轉(zhuǎn)載請(qǐng)標(biāo)明出處。
【編者按】在年前的「技術(shù)揭秘12306改造」專題中,一位對(duì)12306改造非常關(guān)注的技術(shù)架構(gòu)師,他從技術(shù)的角度,用科學(xué)論證的方式說(shuō)明12306是如何實(shí)現(xiàn)高流量高并發(fā)的關(guān)鍵技術(shù)。今天,他繼續(xù)為大家?guī)?lái)第二章:解析12306兩地三中心混合云架構(gòu)。
以下為正文》》
前言
2015年春節(jié)最大的特色就是“搖一搖”,微信紅包在春晚?yè)u一搖互動(dòng)總量超過(guò)110億次,峰值達(dá)8.1億次/分鐘,有185個(gè)國(guó)家傳遞微信祝福。支付寶錢(qián)包在除夕晚上8點(diǎn)達(dá)峰值,首頁(yè)被點(diǎn)擊的次數(shù)為8.832億次/分鐘。表面上來(lái)看“搖一搖”是在送紅包,但從深層次的互聯(lián)網(wǎng)思維來(lái)看,搖一搖的目的是要?jiǎng)?chuàng)造和凸顯“移動(dòng)支付”在互聯(lián)網(wǎng)金融的價(jià)值鏈,甚至一帶一路,將“移動(dòng)支付”模式的業(yè)務(wù),帶出國(guó)門(mén)推向全球,此舉對(duì)金融行業(yè)未來(lái)的生態(tài)影響意義重大。
搖一搖隱含的商業(yè)模式不是此篇文章討論重點(diǎn),在此要強(qiáng)調(diào)的是在云計(jì)算和大數(shù)據(jù)時(shí)代,任何一個(gè)商業(yè)模式的創(chuàng)新都需要有最先進(jìn)的技術(shù)配合和支撐。從技術(shù)角度來(lái)看,這些看似業(yè)務(wù)邏輯簡(jiǎn)單的“搖一搖”在面對(duì)高流量和高并發(fā)情況下,承載天量的訪問(wèn)量對(duì)系統(tǒng)框架設(shè)計(jì)師來(lái)說(shuō)是巨大的挑戰(zhàn)。當(dāng)面臨“有計(jì)劃、難預(yù)測(cè)、暫時(shí)性”的巨大訪問(wèn)量,該如何解決此問(wèn)題?是花巨資建設(shè)系統(tǒng)呢? 還是將需要“短暫”巨大資源的業(yè)務(wù)托管在云計(jì)算數(shù)據(jù)中心,讓它們提供快速靈活可調(diào)度的資源呢?
本文作者從互聯(lián)網(wǎng)收集大量有關(guān)12306的信息,首先描述12306系統(tǒng)與大型電商交易系統(tǒng)的主要差異和說(shuō)明此差異為何需要巨大的計(jì)算資源來(lái)支撐; 再進(jìn)一步探討12306混合云設(shè)計(jì)的考量 - 安全性和系統(tǒng)資源擴(kuò)展性,并說(shuō)明為何只將“余票查詢業(yè)務(wù)”放在阿里云提供服務(wù)。最后以論證的方式“推測(cè)”12306兩地三中心的混合云架構(gòu)設(shè)計(jì)(有關(guān)12306混合云的架構(gòu)和解析是作者個(gè)人的推測(cè),有誤解地方請(qǐng)求交流和指正)
在此篇文章,不探討火車(chē)運(yùn)能不足,搶不到車(chē)票返鄉(xiāng)引起民怨問(wèn)題,因?yàn)殍F路的基礎(chǔ)建設(shè)需要時(shí)間解決;以Pivotal Gemfire為例, 是因?yàn)?015年12306在兩地三中心部署數(shù)百個(gè)Gemfire節(jié)點(diǎn),這些應(yīng)用節(jié)點(diǎn)(“異于虛機(jī)節(jié)點(diǎn)”)可按需以熱部署方式來(lái)擴(kuò)展,體現(xiàn)“云”的伸縮特性和流動(dòng)性。
一、12306與電商交易系統(tǒng)
很多人喜歡將12306與淘寶網(wǎng)做比較, 認(rèn)為12306互聯(lián)網(wǎng)售票網(wǎng)站從屬性來(lái)說(shuō)是電子商務(wù)B2C的一支;用戶必須登錄,瀏覽,選擇商品,下訂單, 訂單確認(rèn),支付和物流。如果只看整個(gè)交易流程,它們確實(shí)是一樣的。 但從深層次的細(xì)節(jié)探討,12306背后所隱藏的業(yè)務(wù)邏輯是非常復(fù)雜,遠(yuǎn)遠(yuǎn)超過(guò)一般人的想象。
12306網(wǎng)站與電商交易系統(tǒng)業(yè)務(wù)邏輯的差異
如何解決大型網(wǎng)站所面對(duì)的高負(fù)載流量和高并發(fā)訪問(wèn),一直以來(lái)都是全世界公認(rèn)的技術(shù)難題。對(duì)于任何一個(gè)交易系統(tǒng)來(lái)說(shuō)不外乎做兩件事,一是提供查詢,二是數(shù)據(jù)計(jì)算;任何查詢業(yè)務(wù)都有響應(yīng)時(shí)間的要求,從用戶體驗(yàn)最好不要超過(guò)5秒鐘;而數(shù)據(jù)計(jì)算(實(shí)時(shí)計(jì)算或非實(shí)時(shí)批量計(jì)算)與實(shí)際業(yè)務(wù)邏輯有密切的關(guān)系。
對(duì)于電子商務(wù)網(wǎng)站的交易系統(tǒng),例如淘寶網(wǎng),當(dāng)?shù)昙页鍪垡患唐?,?kù)存減一,客戶退貨,庫(kù)存加一,當(dāng)庫(kù)存為零,商品下架,有問(wèn)題線下討論。此類交易系統(tǒng)提供簡(jiǎn)單快速的計(jì)算。因?yàn)椴煌放粕唐返匿N(xiāo)售彼此之間沒(méi)有關(guān)聯(lián)性,不會(huì)因?yàn)槟臣放粕唐返某鍪坳P(guān)聯(lián)到其他品牌商品的庫(kù)存量,它們的商品庫(kù)存是屬于“靜態(tài)庫(kù)存”;所以電商交易系統(tǒng)的主要設(shè)計(jì)重點(diǎn)是提供快速響應(yīng)時(shí)間,高可用性(容災(zāi)和備份)和系統(tǒng)擴(kuò)展性,避免在高峰交易期間,因?yàn)轫憫?yīng)時(shí)間慢或是系統(tǒng)當(dāng)機(jī)而失去龐大的商機(jī)。
12306互聯(lián)網(wǎng)售票系統(tǒng)是業(yè)務(wù)邏輯很復(fù)雜的系統(tǒng),如果將每張可出售的火車(chē)票當(dāng)成一件商品來(lái)看,每張票的銷(xiāo)售都會(huì)關(guān)聯(lián)到整條路線每個(gè)站點(diǎn)可銷(xiāo)售的余票量,有些站點(diǎn)的余票量會(huì)產(chǎn)生變化, 有些站點(diǎn)余票量不會(huì)有變化。由另外一個(gè)角度來(lái)看,當(dāng)銷(xiāo)售一張票, 改簽,或退票時(shí),整條路線每個(gè)站點(diǎn)的余票量都需要重新計(jì)算,也就是說(shuō)每個(gè)站點(diǎn)的余票庫(kù)存是個(gè)“動(dòng)態(tài)變化庫(kù)存”的概念。站點(diǎn)與站點(diǎn)之間的余票庫(kù)存有巨大的關(guān)聯(lián)性,此“動(dòng)態(tài)庫(kù)存”概念的業(yè)務(wù)邏輯是12306與電商網(wǎng)站最大的差異。12306的設(shè)計(jì)重點(diǎn)不但要具有大型電商網(wǎng)站所具備的特性外 (要提供快速響應(yīng)時(shí)間,高可用性(容災(zāi)和備份)和系統(tǒng)的擴(kuò)展性),還需要有強(qiáng)大的CPU計(jì)算資源來(lái)支撐。
12306 系統(tǒng)主要瓶頸 - 余票計(jì)算與配票規(guī)則
由上面所述,每張火車(chē)票的銷(xiāo)售狀態(tài)變化(買(mǎi)票,退票,改簽),都會(huì)影響到整條路線火車(chē)站點(diǎn)可銷(xiāo)售的余票量;例如,某條火車(chē)路線有100個(gè)車(chē)次,每個(gè)車(chē)次可承載1000人,有100個(gè)一等座, 900個(gè)2等座,另外還有50個(gè)火車(chē)??空荆@有多少個(gè)排列組合? 從理論上來(lái)說(shuō),余票計(jì)算是在解答數(shù)學(xué)模型的難題。
在整個(gè)客票系統(tǒng)里,有數(shù)十條行車(chē)路線,有3000多個(gè)車(chē)次(G,D,K,Z,C,..),5000多個(gè)火車(chē)站點(diǎn),有不同的席次(硬座,硬臥, 軟座, 軟臥,無(wú)座),座位等級(jí)(商務(wù), 一等, 二等),和車(chē)票等級(jí)(一般,軍人, 學(xué)生,殘障,小孩)等因素,將這些參數(shù)放在數(shù)學(xué)模型上,至少有數(shù)千億條的排列組合。而目前的客車(chē)運(yùn)量有限,每天不超過(guò)1000萬(wàn)名旅客。 如何將1000萬(wàn)張車(chē)票分配到數(shù)千億條的排列組合里面呢?并且還要考慮公正,公平的合理分配。
如果將整條路線的所有車(chē)票都放在起始站出售的話,乘車(chē)距離最遠(yuǎn)的先購(gòu)票,創(chuàng)造的利潤(rùn)最大,但是下游站點(diǎn)就買(mǎi)不到票,失去公正和公平的分配原則。所以,每個(gè)站點(diǎn)的余票計(jì)算并不是簡(jiǎn)單的兩站之間算好的票數(shù),做加加減減的計(jì)算。
鐵路運(yùn)輸為民眾提供便捷的出行, 如何將有限資源公正公平的合理分配,讓大眾滿意是需要靠智慧解決的。 參考國(guó)內(nèi)外的售票原則,運(yùn)輸部門(mén)一定要制定一套復(fù)雜的分配規(guī)則,這些規(guī)則是與車(chē)次,路線,加班車(chē),席次,座位等級(jí),車(chē)票等級(jí),乘車(chē)區(qū)間,x天預(yù)售期和搭乘時(shí)間等都有密切關(guān)系。 每一個(gè)特定的余票查詢,都會(huì)觸發(fā)余票計(jì)算,每班車(chē)次的余票計(jì)算都有上萬(wàn)條規(guī)則需要匹配,所有經(jīng)過(guò)“乘車(chē)區(qū)間”的車(chē)次都需要做余票計(jì)算;全國(guó)有3000多個(gè)車(chē)次,5000多個(gè)站點(diǎn),這些分配規(guī)則總數(shù)可能達(dá)千萬(wàn)條級(jí)別。例如,以滬寧線為例,在春運(yùn)尖峰期間,經(jīng)過(guò)“上海到南京”區(qū)間的車(chē)次達(dá)300多班次,每次查詢需要計(jì)算300多班車(chē)次的余票量。
這意味著余票查詢/計(jì)算需要使用大量的CPU計(jì)算資源,同時(shí)必須快速反應(yīng)余票查詢的結(jié)果給用戶。在春運(yùn)售票高峰期間,每分鐘都有數(shù)萬(wàn)張車(chē)票的銷(xiāo)售,假如余票查詢的響應(yīng)時(shí)間緩慢,這些信息就失去價(jià)值,會(huì)發(fā)生看得到票,但實(shí)際上買(mǎi)不到票的情況發(fā)生。
二、12306 混合云考慮因素和規(guī)劃
一般的商業(yè)活動(dòng)都有季節(jié)性的旺季和淡季之分,在旺季時(shí)煩惱是否有足夠的庫(kù)存,以免失在商機(jī),在淡季時(shí)就要想辦法促銷(xiāo),降低庫(kù)存。 使成本最小化,利潤(rùn)最大化,是市場(chǎng)經(jīng)濟(jì)的商業(yè)法則。 12306互聯(lián)網(wǎng)售票系統(tǒng),也面臨節(jié)假日和非節(jié)假日高高低低的需求,12306在春運(yùn)售票高峰期間的訪問(wèn)流量(PV值)和平時(shí)訪問(wèn)流量高達(dá)上千倍的差異;如果按原來(lái)的系統(tǒng)架構(gòu),要解決春運(yùn)時(shí)高流量高并發(fā)的問(wèn)題,可能需要擴(kuò)充“數(shù)十倍”或數(shù)百部的Unix服務(wù)器才能滿足需求。 如果12306自建系統(tǒng),但在春運(yùn)以后,又該如何處理服務(wù)器過(guò)剩的問(wèn)題,才不會(huì)造成資源浪費(fèi)呢?
根據(jù)百度百科對(duì)混合云的定義,“混合云是融合公有云和私有云,是近年來(lái)云計(jì)算的主要模式和發(fā)展方向。企業(yè)用戶出于安全考慮,更愿意將數(shù)據(jù)存放在私有云中,但是同時(shí)又希望可以獲得公有云的計(jì)算資源,在這種情況下混合云被越來(lái)越多的采用,它將公有云和私有云進(jìn)行混合和匹配,以獲得最佳的效果,這種個(gè)性化的解決方案,達(dá)到既省錢(qián)又安全的目的”。
混合云托管考慮因素
由上面的定義,混合云服務(wù)模式應(yīng)該是12306最佳的選項(xiàng),可以將“有計(jì)劃,難預(yù)測(cè),暫時(shí)性”需要巨大資源的業(yè)務(wù)放在公有云提供服務(wù)。如果12306采用混合云的服務(wù)模式,有哪些重要因素需要考慮?
-
托管方式:整個(gè)業(yè)務(wù)托管還是部分業(yè)務(wù)托管?
-
安全性的考量:敏感性資料該如何存放和保護(hù)呢?如何規(guī)避風(fēng)險(xiǎn)?
-
業(yè)務(wù)子系統(tǒng)的獨(dú)立性:如果是部分業(yè)務(wù)托管,被指定托管業(yè)務(wù)的子系統(tǒng)是否能獨(dú)立剝離原先系統(tǒng)的業(yè)務(wù)流程?
-
協(xié)同合作:在公有云的業(yè)務(wù)子系統(tǒng)的數(shù)據(jù)又如何回流與私有云的原來(lái)系統(tǒng)在業(yè)務(wù)上配合,協(xié)同合作呢?
-
數(shù)據(jù)源的傳輸和復(fù)制/同步:如何復(fù)制/同步私有云和公有云的數(shù)據(jù)?
-
資源的彈性擴(kuò)展:遷移到公有云的業(yè)務(wù)子系統(tǒng)是否能實(shí)現(xiàn)按需彈性擴(kuò)展,利用云計(jì)算數(shù)據(jù)中心的網(wǎng)絡(luò)和服務(wù)器資源來(lái)提供服務(wù)?
混合云的規(guī)劃——按需彈性擴(kuò)展改造
在 前面一篇文章提到,要解決12306面對(duì)“高流量,高并發(fā)“的難題是需要從軟件平臺(tái)和應(yīng)用系統(tǒng)層面出發(fā),要實(shí)現(xiàn)“可擴(kuò)展的應(yīng)用云平臺(tái)架構(gòu)”,靈活和快速熱部署的機(jī)制,才是真正解決高并發(fā)訪問(wèn)的根本。 12306承建單位-鐵科院在此方面做很多改進(jìn),使用Pivotal Gemfire內(nèi)存數(shù)據(jù)管理平臺(tái),重新設(shè)計(jì)和改造核心子系統(tǒng),從用戶登錄,余票計(jì)算,票價(jià)計(jì)算,實(shí)名身份認(rèn)證,到訂單查詢;這些改造后的業(yè)務(wù)子系統(tǒng)都能支持“按需彈性擴(kuò)展”, 不再受限于原來(lái)關(guān)系型數(shù)據(jù)庫(kù)無(wú)法做分布式擴(kuò)展的問(wèn)題。這些一連串的改造,打通各個(gè)環(huán)節(jié),實(shí)現(xiàn)“質(zhì)”的大躍進(jìn), 也為未來(lái)使用混合云服務(wù)模式的架構(gòu)打下良好的基礎(chǔ)。
信息安全和業(yè)務(wù)子系統(tǒng)托管的選擇原則
下列進(jìn)一步探討如何選擇“業(yè)務(wù)子系統(tǒng)”放在公有云提供服務(wù),主要有兩點(diǎn)考慮因素,一為個(gè)人信息保護(hù), 二為需要“短暫”且強(qiáng)大計(jì)算機(jī)資源支持的子系統(tǒng)業(yè)務(wù)。
1. 購(gòu)票流程和個(gè)人信息:
-
登錄:含個(gè)人信息
-
余票查詢/計(jì)算:不含個(gè)人信息
-
訂單確認(rèn)和訂單查詢:含購(gòu)票人信息和身份確認(rèn)
-
付款:含個(gè)人的支付信息
2. 主要服務(wù)器集群和個(gè)人信息:
-
Web服務(wù)器 - 不含個(gè)人信息
-
應(yīng)用服務(wù)器緩存服務(wù)器 - 不含個(gè)人信息
-
登錄服務(wù)器 - 含個(gè)人信息
-
余票查詢/計(jì)算服務(wù)器- 不含個(gè)人信息
-
訂單確認(rèn)和訂單查詢服務(wù)器 - 含個(gè)人信息
-
實(shí)名制身份確認(rèn)服務(wù)器 - 含個(gè)人信息
-
…
3. 最耗用網(wǎng)絡(luò)資源
-
Web服務(wù)器
-
應(yīng)用服務(wù)器緩存服務(wù)器
-
余票查詢/計(jì)算服務(wù)器
4. 最耗用服務(wù)器資源
-
Web服務(wù)器集群
-
應(yīng)用服務(wù)器緩存集群
-
余票查詢/計(jì)算集群
5.售票高峰期訪問(wèn)量振幅最大業(yè)務(wù)
-
Web服務(wù)器
-
應(yīng)用緩存服務(wù)器
-
余票查詢/計(jì)算服務(wù)器
綜合以上的分析,余票查詢/計(jì)算業(yè)務(wù)符合安全性考慮和售票高峰期訪問(wèn)量振幅最大,最耗系統(tǒng)資源;其他適合放在公有云提供服務(wù)有三大服務(wù)器集群,Web服務(wù)器集群, 應(yīng)用服務(wù)器緩存集群, 和余票查詢/計(jì)算集群。
三、12306混合云架構(gòu)推測(cè)和解析
互聯(lián)網(wǎng)有一篇關(guān)于2015年春運(yùn)12306用戶體驗(yàn)報(bào)導(dǎo),在此篇采訪提到12306網(wǎng)站采取5項(xiàng)措施,制定多套應(yīng)急預(yù)案,以應(yīng)對(duì)突發(fā)情況,來(lái)提高用戶體驗(yàn)。
12306用戶體驗(yàn)有改善,“為了保障春運(yùn)期間正常訂票,12306網(wǎng)站建設(shè)了兩個(gè)生產(chǎn)中心。在中國(guó)鐵路總公司又增加了一套設(shè)備。這樣就增加了一倍的網(wǎng)絡(luò)內(nèi)部處理能力……多建中心的同時(shí),也增加了網(wǎng)絡(luò)的帶寬,帶寬從5G擴(kuò)容至12G。增加帶寬就等于我們多開(kāi)了幾個(gè)門(mén),能讓更多的用戶同時(shí)進(jìn)來(lái)……還不只這些,我們?cè)诖哼\(yùn)高峰期租了個(gè)”云”……在網(wǎng)絡(luò)高峰期間,12306網(wǎng)站的查詢量最大,占到整個(gè)網(wǎng)站的85%,就把75%的查詢業(yè)務(wù)都放在租來(lái)的“云”上…“春運(yùn)高峰期的點(diǎn)擊量、瀏覽量是平時(shí)的幾倍,甚至十幾倍。從經(jīng)濟(jì)角度考慮,一個(gè)網(wǎng)站不太可能以最高峰值的承受力為標(biāo)準(zhǔn)來(lái)建設(shè)。我們只能在滿足日常需求與高峰期售票需求之間尋求一個(gè)最佳點(diǎn),合理進(jìn)行硬件配置?!爆F(xiàn)在云技術(shù)成熟,高峰期租個(gè)云用幾天,價(jià)格合理,安全也有保障。
有這些新設(shè)備、新技術(shù),今年的用戶體驗(yàn)大為改善。據(jù)測(cè)算,今年12306網(wǎng)站的點(diǎn)擊速度和頁(yè)面打開(kāi)速度比去年縮短了一半。
由上面對(duì)話透露的信息,再以專業(yè)IT經(jīng)驗(yàn)來(lái)分析并推測(cè)12306 混合云的架構(gòu)設(shè)計(jì)。
1. 兩個(gè)生產(chǎn)中心和租了個(gè)“云”:
兩個(gè)生產(chǎn)中心應(yīng)該是指鐵路總公司數(shù)據(jù)中心和鐵科院數(shù)據(jù)中心,“云”是指阿里云
2. 75%的查詢業(yè)務(wù)都放在租來(lái)的“云”上:
意謂著12306只將75%流量的查詢業(yè)務(wù)交給阿里云托管,阿里云只提供租賃查詢服務(wù),不涉及任何系統(tǒng)功能的改造。
3. 兩地三中心 高可用性和容災(zāi)設(shè)計(jì):
以專業(yè)的IT來(lái)看,12306提供全國(guó)的網(wǎng)上售票服務(wù),在系統(tǒng)設(shè)計(jì)上一定有高可用性和容災(zāi)的設(shè)計(jì)。
Gemfire平臺(tái)已具備高可用性的設(shè)計(jì), 所以,兩個(gè)生產(chǎn)中心一定運(yùn)行整套業(yè)務(wù)流程服務(wù),彼此作為異地容災(zāi)備份的準(zhǔn)備,而阿里云只提供部分業(yè)務(wù)查詢的服務(wù)。
4. 業(yè)務(wù)連續(xù)性,應(yīng)用不中斷,操作可持續(xù)的設(shè)計(jì):
在2012年12月24號(hào)下午,由于空調(diào)設(shè)備故障,12306中斷服務(wù)數(shù)小時(shí)。這可以看出12306是單數(shù)據(jù)中心的設(shè)計(jì), 沒(méi)有考慮容災(zāi)的設(shè)計(jì)。
為了吸取以前的經(jīng)驗(yàn),假設(shè)12306已經(jīng)考慮業(yè)務(wù)連續(xù)性,應(yīng)用不中斷,操作可持續(xù)的設(shè)計(jì),這意味著雙生產(chǎn)中心是需要并行作業(yè)提供服務(wù);萬(wàn)一有一個(gè)生產(chǎn)中心系統(tǒng)出故障,可以在瞬間將流量導(dǎo)至運(yùn)行良好的數(shù)據(jù)中心,保持服務(wù)的連續(xù)性。
5. 數(shù)據(jù)源的傳輸和數(shù)據(jù)庫(kù)的復(fù)制:
過(guò)去數(shù)據(jù)源的傳輸和數(shù)據(jù)庫(kù)的復(fù)制機(jī)制已經(jīng)證明此技術(shù)是穩(wěn)定和成熟的,所以會(huì)沿用以前的設(shè)計(jì)。
6. 阿里云的余票查詢業(yè)務(wù)托管:
在前一節(jié)已經(jīng)詳述,考慮個(gè)人資料的敏感度和安全性,12306不會(huì)將這些資料放在阿里云,但會(huì)將需要耗費(fèi)巨大資源的余票查詢業(yè)務(wù)放在阿里云提供服務(wù)。另外符合此條件的有3大服務(wù)器集群,Web服務(wù)器集群, 應(yīng)用服務(wù)器緩存集群, 和余票查詢/計(jì)算集群。
綜合上述的分析,推測(cè)和描繪12306混合云的架構(gòu)如下圖:
12306 兩地三中心 混合云架構(gòu)
四、12306兩地三中心混合云探討
12306兩地三中心的混合云架構(gòu)是目前國(guó)內(nèi)規(guī)模最大,業(yè)務(wù)系統(tǒng)最復(fù)雜的混合云服務(wù)。在12306承辦單位 - 鐵科院的領(lǐng)導(dǎo)下,經(jīng)過(guò)精心的設(shè)計(jì),部署和試運(yùn)行,在2015年春運(yùn)上線,它的表現(xiàn)是很令人矚目的。此混合云設(shè)計(jì)的特點(diǎn)歸納如下:
1. 業(yè)務(wù)托管:
從整個(gè)購(gòu)票流程來(lái)說(shuō),12306只是將部分流程的環(huán)節(jié)-“余票查詢”業(yè)務(wù)交由阿里云提供服務(wù),并不是“整個(gè)系統(tǒng)”按需擴(kuò)容的托管,這與一般企業(yè)的業(yè)務(wù)托管有最大的差異。如何將“業(yè)務(wù)子系統(tǒng)“剝離整個(gè)系統(tǒng)獨(dú)立作業(yè), 再將數(shù)據(jù)結(jié)果傳回系統(tǒng),協(xié)同作業(yè),這需要從應(yīng)用系統(tǒng)框架設(shè)計(jì)著手。
2. 敏感資料的存放和安全性:
12306是公共服務(wù)平臺(tái),敏感性資料的保護(hù)和安全性是首要考慮因素。在混合云設(shè)計(jì)上,12306將這些資料存放在私有云的數(shù)據(jù)中心, 確保數(shù)據(jù)安全無(wú)慮。
3. 業(yè)務(wù)連續(xù)性,應(yīng)用不中斷的容災(zāi)設(shè)計(jì):
雙數(shù)據(jù)中心并行作業(yè),不但可以分擔(dān)高負(fù)載運(yùn)行,而且可以相互備份, 保證操作不間斷。
4. 資源動(dòng)態(tài)擴(kuò)展:
將“難預(yù)測(cè),暫時(shí)性”的巨大訪問(wèn)量-余票查詢業(yè)務(wù)放在阿里云,阿里云可以按需動(dòng)態(tài)調(diào)整網(wǎng)絡(luò)帶寬和“虛機(jī)“資源,保證12306的服務(wù)品質(zhì),并解決網(wǎng)絡(luò)傳輸瓶頸問(wèn)題。
5. 關(guān)系型數(shù)據(jù)庫(kù)(SQL) 和非關(guān)系型數(shù)據(jù)庫(kù)(NoSQL)混合應(yīng)用:
12306將熱點(diǎn)數(shù)據(jù)放在NoSQL的Gemfire平臺(tái),提供快速查詢和計(jì)算;將關(guān)鍵數(shù)據(jù)持久化到關(guān)系型數(shù)據(jù)庫(kù)。
總體而言,目前12306混合云架構(gòu)是很合理的設(shè)計(jì),求穩(wěn),求安全,又省錢(qián)。如果追求技術(shù)的完美性來(lái)說(shuō),有如下四點(diǎn)建議:
-
提供同個(gè)車(chē)次不同車(chē)廂的聯(lián)程票 (例如,在同個(gè)車(chē)次, 北京到上海沒(méi)票, 但北京到天津, 天津到南京, 南京到上海有票),和 不同車(chē)次的聯(lián)程票 (中途站點(diǎn)換車(chē)),使旅客出行訂票更方便;
-
思考“數(shù)據(jù)大集中”的模式,摒除路局和12306數(shù)據(jù)中心的數(shù)據(jù)交換,提高處理效率,且易于整個(gè)售票系統(tǒng)的維護(hù);
-
整合12306售票網(wǎng)站和線下作業(yè)系統(tǒng)(窗口購(gòu)票,電話訂票,代售點(diǎn)),提供更快速的服務(wù);
-
大膽采用“軟件定義數(shù)據(jù)中心”的技術(shù),可以做更靈活更快速數(shù)據(jù)中心的遷移/復(fù)制,為將來(lái)多數(shù)據(jù)中心混合云的部署和服務(wù)(分散網(wǎng)絡(luò)流量)或異地容災(zāi)設(shè)計(jì)打基礎(chǔ)。
作者:劉云程 (YC),技術(shù)總監(jiān),任職于資拓宏宇(上海)公司,主要負(fù)責(zé)提供客戶應(yīng)用系統(tǒng)升級(jí), 遷移到高性能和高擴(kuò)展性的“云應(yīng)用平臺(tái)”。 劉云程畢業(yè)于臺(tái)灣清華大學(xué),在美國(guó)拿計(jì)算機(jī)博士學(xué)位,于1994年由IBM外派到北京。他在IT行業(yè)有近30年工作經(jīng)驗(yàn),曾任職于IBM中國(guó)研究中心負(fù)責(zé)電子商務(wù)和移 動(dòng)互聯(lián)網(wǎng)方面的研究。