2018年8月15日,由中國信息通信研究院、中國通信學(xué)會(huì )、中國通信標準化協(xié)會(huì )共同主辦的“2018可信云大會(huì )”在北京國際會(huì )議中心圓滿(mǎn)落幕。會(huì )上,行業(yè)內多位大咖與權重人物就可信云與云計算的創(chuàng )新發(fā)展新路徑進(jìn)行了共同探索與分析。
以下是中國銀聯(lián)信息總中心數據庫團隊負責人曾玉成老師關(guān)于“基于容器技術(shù)的金融生產(chǎn)級的DBaaS的建設經(jīng)驗”的分享。
大家下午好,我是來(lái)自銀聯(lián)的曾玉成,我今天給大家分享的主題是基于容器的金融數據庫云平臺DBaaS實(shí)踐,這是我們今天這個(gè)主題有狀態(tài)云的很重要的一個(gè)數據庫的情況。
我今天分享主要有四方面:
第一,我們?yōu)楹螘?huì )走做數據庫云化這個(gè)方向?
第二,我們在走這個(gè)方向的過(guò)程當中一些解決方案。
第三,我們在做的過(guò)程當中碰到的一些問(wèn)題和經(jīng)驗。
第四,我們這個(gè)產(chǎn)品和平臺后期的一些遠景規劃。
在一些金融行業(yè)里面或者是傳統企業(yè)里面,都是關(guān)于Oracle數據庫的,比如商業(yè)數據庫或者商業(yè)的服務(wù)器,在產(chǎn)品設計上也是集裝式的架構,運維就是手工和腳本形式運維。
為什么會(huì )慢慢引發(fā)到這個(gè)地方來(lái)呢?
第一,是在一些開(kāi)源技術(shù)的推動(dòng)和國產(chǎn)化的要求下,這些幾年國家也在強調自主可控,要做國產(chǎn)化這塊。
第二,隨著(zhù)技術(shù)架構的發(fā)展,現在的技術(shù)發(fā)展慢慢出現了微服務(wù)化,分布式化、平臺化這樣一些特性。在這樣一個(gè)發(fā)展趨勢下,加上業(yè)務(wù)上的需求驅動(dòng),Mysql、Hadoop等慢慢就用起來(lái)了。結構慢慢由集中式走向分布式的特性,走向了開(kāi)源自主可控的這樣一個(gè)發(fā)展。
這是我們覺(jué)得在傳統金融行業(yè)里面技術(shù)發(fā)展的一個(gè)趨勢,我相信大部分的企業(yè)都在這個(gè)過(guò)程當中。
具體到銀聯(lián)發(fā)展這塊業(yè)務(wù)驅動(dòng),首先我們剛開(kāi)始主要是做一些POS、ATM,是傳統的現象服務(wù)。隨著(zhù)移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)的快速發(fā)展,比如很多Pay的APP,更多呈現的是互聯(lián)網(wǎng)的業(yè)務(wù)特點(diǎn),有一些大規模的用戶(hù),要求快速響應、要求比較彈性、靈活。需要做有更高的交付能力、更高效的資源利用、更靈活的彈性調度以及大規模的高效管理的產(chǎn)品,要求我們技術(shù)適應這塊的發(fā)展。
所以我們就要想辦法找到一個(gè)解決方案,怎么來(lái)解決我們大規模的這種服務(wù)能力的這套技術(shù)方案。很重要一點(diǎn)就是在彈性這塊,做技術(shù)的應該很清楚,最難做彈性的就是數據庫,因為跟數據相關(guān),要做好彈性首先就要把數據庫做好。所以,當時(shí)就想到類(lèi)似做快速交付的平臺,DBaaS的平臺,這個(gè)平臺有幾個(gè)目標:第一要有分鐘級大規模交付能力、靈活的資源彈性調度能力、高效的資源利用率、服務(wù)安全可靠;以及具備大規模、多中心的服務(wù)管理能力。
確定好目標以后我們怎么做呢?在2014年的時(shí)候,我們做了一些平臺性的東西,主要是做了一些自動(dòng)化的工作,把手工腳本的工作做成了平臺的點(diǎn)對點(diǎn)的自動(dòng)化。當時(shí),我們做了第一代的DBaaS平臺,做了多租戶(hù)隔離等等一些,同年還做了彈性管理。
2016年我們想把容器和數據庫結合做一些事情,當時(shí)大規模的應用都在應用場(chǎng)景里面,數據庫和容器化結合是非常非常少的。在網(wǎng)上流行的一些文章都是數據庫未來(lái)容器化的七個(gè)理由。同時(shí)我們也看到容器這個(gè)東西帶來(lái)了它的很多的好處的,如果這兩個(gè)結合起來(lái)的話(huà),對于數據庫大規模的部署管理和彈性調度這塊是一個(gè)非常大的一個(gè)好處,所以我們開(kāi)始調研,做一些測算,就做了一些方案。2014年的時(shí)候我們就開(kāi)始做這些方面的調研。
2015年我們拉富麥一起做了一些POC的測算,當時(shí)覺(jué)得容器化確實(shí)不成熟,他們講的也是很有道理的,為什么?在數據庫方面我們面臨最大的問(wèn)題,就是怎樣提高數據庫的響應能力,在原來(lái)的容器的體系底下,更多的是一些無(wú)狀態(tài)的,數據量不大的情況下的場(chǎng)景設計。在大規模的網(wǎng)絡(luò )交互的情況下,性能非常差的。后來(lái)我們想只有把它改進(jìn),使之適應數據庫,于是決定去做這個(gè)事。
一年多的時(shí)間,2015年我們終于把基于其的DBaaS做出來(lái)了,2015年直接上了我們生產(chǎn)的環(huán)節,而且是應用于生產(chǎn)的很多核心的業(yè)務(wù)。在這個(gè)版本里面,基本上基于我們容器的框架去做。當時(shí)選擇的是Swarm做的,主要是由銀聯(lián)定制的MySQL跟MySQL定制的數據庫。這個(gè)版本實(shí)現了分布式化彈性管理的一些特性。
這個(gè)我們叫金融級數據庫的PaaS平臺,為什么是說(shuō)金融級的呢?這里面有很多結合金融場(chǎng)景的一些設置,其中包括提供的服務(wù)UPSQL和UPREDIS,是針對場(chǎng)景定制的東西。目前已經(jīng)可以做到自動(dòng)可控、彈性伸縮等等功能。在國內金融行業(yè)里面據我了解是我們是第一家,我們是2015年底到2016年初在生產(chǎn)環(huán)境下大規模部署的。
用Docker分裝數據庫有五方面的問(wèn)題需要解決:第一,選擇什么容器管理框架,因為容器管理框架也挺多的。有狀態(tài)服務(wù)的網(wǎng)絡(luò )模式應該怎么做?存儲管理模式怎么去做?集群服務(wù)管理能力,規模應該是集群組成的服務(wù),這個(gè)集群服務(wù)本身的平臺不提供這些東西的,你要自己去管理服務(wù)集群的能力。另外還有橫向擴展方面。
關(guān)于容器管理框架,我們?yōu)槭裁催x擇Swarm而不是K8s,當時(shí)不管是Swarm和K8s兩種方案都不行,當時(shí)為什么選擇Swmarm,因為是輕量級的容器框架,開(kāi)發(fā)難度低一些,當時(shí)在K8s流行的情況下選擇了Swarm,不管做哪個(gè)我們都要自己開(kāi)發(fā),把我們已經(jīng)實(shí)現好的解決方案用K8s的方式集成出來(lái),這兩種我們都可以支持并且落地。
關(guān)于網(wǎng)絡(luò )方面,有狀態(tài)服務(wù)區別于無(wú)狀態(tài)服務(wù)非常重要的一點(diǎn),就是怎么樣把網(wǎng)絡(luò )和存儲這塊的解決方案解決好。
在傳統的Docker的網(wǎng)絡(luò )模式下,要么就是安全不行,無(wú)法提供獨立IP,另外就是數據庫損耗比較大。有沒(méi)有辦法網(wǎng)絡(luò )安全隔離,而且是沒(méi)有損耗的,而且支持大規模部署的,當時(shí)我們就找到SR_IOV的硬件虛擬化的技術(shù),這也是網(wǎng)卡上的功能,可以把王擴虛擬成180顆物理卡,把這些物理卡怎么給容器獨立使用,在上面做QOS隔離這塊,我們把這套方案做出來(lái)了,實(shí)際的效果是這套技術(shù)非常好,可以解決有狀態(tài)服務(wù)的情況下網(wǎng)絡(luò )的需求,而且物理環(huán)境下是無(wú)損耗的。兩塊物理卡虛擬128,在里面挑兩個(gè)VF,在里面做,端口都是一樣的,可以提供網(wǎng)絡(luò )性能的保證。
而存儲這方面是金融行業(yè)里面有區別于其他的一些互聯(lián)網(wǎng)公司的做法,這里比較重要的是我們做了存儲管理的Plugin,可以把金融行業(yè)的儲備用的扇存儲做起來(lái)了。
在大量的虛擬化、容器化做隔離這方面,存儲做的是不好的,但是用了三個(gè)存儲,有天然的隔離性,這完全是可以隔開(kāi)的,所以是滿(mǎn)足了這兩個(gè)比較好的特性。所以我們做了這樣一個(gè)存儲管理的管理器,既可以支持SSD,又可以支持SaaS盤(pán),也可以支持存儲,可以根據你的業(yè)務(wù)需求選擇存儲,去做這個(gè)動(dòng)作,所以我們專(zhuān)門(mén)做了StorageMGM,很好地解決了存儲的選擇。我們應用場(chǎng)景里面大規模應用了扇存儲。
我們的SSD也是針對不同的場(chǎng)景選擇不同的存儲。
另外我們自己定制了UPSQL的數據庫,是銀聯(lián)定制版的MySQL,是結合我們金融行業(yè)要求去做的,比如在國密算法這塊,還有一些復制容錯這塊,復制容錯這部分是大家碰到很頭痛的問(wèn)題,還有高并發(fā)及復制性能優(yōu)化,我們在這塊也做了很多的定制。同時(shí)我們還做了Proxy層,這個(gè)是基于中間件的一個(gè)數據庫的分布的解決方案,提供分布式數據庫解決方案,這是我們自己研發(fā)的叫分布式數據庫的中間件,我們現在已經(jīng)實(shí)現了在生產(chǎn)環(huán)境實(shí)施投產(chǎn),云閃付、掃碼系統這塊都已經(jīng)應用,還有微信無(wú)卡的重要的接入系統我們都是用的這個(gè)系統。
在安全方面,我們有黑白名單、國密算法,SQL監督,都是我們定制的。
我們定制的緩存,也是完全分布式的架構緩存,這里面也是有一些特別的場(chǎng)景,比如說(shuō)在安全方面,因為在金融環(huán)境這塊講究安全,所以定制了很多安全的功能。這是在我們平臺上提供的服務(wù),提供的都是自主可控的。
DBaaS平臺我們做了有兩、三年了,我們覺(jué)得做下來(lái)也是有一些挑戰和需要有一些投入的,從技術(shù)上來(lái)講,這是一個(gè)新技術(shù),一些傳統的我們企業(yè)里面大部分接觸到的都是一些傳統的技術(shù),現在新出現的技術(shù)可能是相關(guān)的一些技術(shù)儲備這塊還是有一些欠缺的,這個(gè)是需要在人力要做好規劃。
在管理上,因為平臺化、云化是分布式架構底下,一些管理方案和措施還是要針對一些特點(diǎn)去做一些調整,比如說(shuō)有一個(gè)總的意識,就是這個(gè)模塊每個(gè)里面都是不可靠的,你在設置上要去滿(mǎn)足它,可以允許啟動(dòng)任何一個(gè)節點(diǎn)。
在應用場(chǎng)景上,我們這個(gè)平臺,平臺新上線(xiàn)的系統都是在DBaaS平臺上的,創(chuàng )新業(yè)務(wù)和重要的業(yè)務(wù)都是這樣的,我們做的規模也是很快的?,F在我們是北京和上海的中心都是部署的,托管都是基于這個(gè)提供服務(wù)的。
我們現在做中心級的災備,將來(lái)要實(shí)現災備業(yè)務(wù),我們平臺可以快速地提供災備解決方案,幫助你實(shí)現雙中心和災備數據,我們現在災備方案已經(jīng)做完了,現在馬上要上線(xiàn)了。我們的產(chǎn)品會(huì )不斷地豐富,同時(shí)在縱向、服務(wù)這方面,我們在做智能化,數據庫上去了,我們怎么把它管理好,做一些智能化的分析,同時(shí)做一些自動(dòng)化、智能化資源彈性調度,包括現在搞活動(dòng)的彈性調度,一分鐘之內比如提交多少服務(wù),一個(gè)小時(shí)之內提供一千套服務(wù)能不能做到這一點(diǎn)?這是我們馬上要實(shí)現的東西。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站