2019年6月20日,由Rancher Labs(以下簡稱Rancher)主辦的第三屆企業(yè)容器創(chuàng)新大會(Enterprise Container Innovation Conference, 以下簡稱ECIC)在北京喜來登大酒店盛大舉行。本屆ECIC規(guī)模宏大,全天共設(shè)置了17場主題演講,吸引了近千名容器技術(shù)愛好者參加,超過10000名觀眾在線上直播平臺觀看了本次盛會。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的平陸網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!來自Rancher、阿里云、百度云、平安科技、中國聯(lián)通、飛貸金融科技、中國人壽、SmartX、華泰保險、廈門航空、JFrog、新東方、Cisco等十多家企業(yè)的技術(shù)負(fù)責(zé)人出席了本屆ECIC,現(xiàn)場帶來關(guān)于企業(yè)容器項目實踐經(jīng)驗的精彩分享,為參會的容器技術(shù)愛好者帶來企業(yè)容器化的經(jīng)驗分享。
大會現(xiàn)場,飛貸金融科技作為金融行業(yè)數(shù)據(jù)庫容器化的典型案例,為現(xiàn)場的容器愛好者帶來了題為《金融領(lǐng)域數(shù)據(jù)庫生產(chǎn)容器化及Istio應(yīng)用》的實踐經(jīng)驗分享。
對于飛貸金融科技而言,生產(chǎn)容器化及數(shù)據(jù)庫應(yīng)用的難點在于,如何針對金融領(lǐng)域生產(chǎn)容器化及數(shù)據(jù)庫容器應(yīng)用進(jìn)行實踐創(chuàng)新,如何結(jié)合研發(fā)及業(yè)務(wù)場景落地,提升資源利用效率、提升產(chǎn)品研發(fā)、運維管理效率。
飛貸金融科技副總裁陳定瑋表示:“金融行業(yè)數(shù)據(jù)具有相較于其他行業(yè)更為嚴(yán)格的安全高標(biāo)準(zhǔn),在安全合規(guī)的情況下用飛貸自研中間件,解決金融領(lǐng)域DB應(yīng)用場景難題,帶來10x的DB交付效率,極致的彈性擴容能力?!?
飛貸金融科技成立于2010年,是移動信貸整體技術(shù)服務(wù)商。我們以科技創(chuàng)新作為企業(yè)發(fā)展的動力,在科技創(chuàng)新的道路上不斷前行。
2011年到2015年,飛貸做的是傳統(tǒng)的小微金融業(yè)務(wù)。2015年,我們決定進(jìn)行線上互聯(lián)網(wǎng)化轉(zhuǎn)型。到2017年,我們整個公司進(jìn)行了戰(zhàn)略升級,為金融行業(yè)客戶提供互聯(lián)網(wǎng)服務(wù)。迄今為止,飛貸為人保、北京銀行、華潤信托、通聯(lián)支付等多家金融行業(yè)企業(yè)提供了全鏈路的科技服務(wù)。
2018年,我們登上了美國《時代周刊》,被《時代周刊》稱為“全球金融科技最佳實踐”。同年,我們還拿到了世界銀行和G20共同推出的首屆全球小微金融獎高榮譽——“年度產(chǎn)品創(chuàng)新”鉑金獎。
接下來,我會和大家詳細(xì)介紹一下,飛貸作為一家互聯(lián)網(wǎng)金融科技企業(yè),是怎樣和容器化相結(jié)合,又是怎么在業(yè)務(wù)上應(yīng)用容器化的。
飛貸應(yīng)用容器化與前面分享的企業(yè)一致,同樣也是基于整個企業(yè)的容器化應(yīng)用。值得一提的是,飛貸做的是金融領(lǐng)域,所以我們對安全、對容錯、對高恢復(fù)的部分相較于其他行業(yè)的企業(yè)而言更加在意。我們關(guān)注的不僅僅是應(yīng)用,更多的會關(guān)注到如何迅速地進(jìn)行災(zāi)難的恢復(fù)。
我們利用容器進(jìn)行了整體的架構(gòu)部署,從大家比較熟悉的DevOps,到我稍后會重點介紹的DB Mesh的部分。我們劃分了幾大平臺,包括容器化平臺、產(chǎn)品研發(fā)平臺和數(shù)據(jù)平臺。下面的是應(yīng)用安全、數(shù)據(jù)安全、網(wǎng)絡(luò)安全、容器安全、運維安全等部分。容器對我們而言幫助非常大,現(xiàn)在我們的RD都是基于容器Kubernetes做應(yīng)用開發(fā)。在這一部分,飛貸在金融領(lǐng)域已經(jīng)達(dá)到了領(lǐng)先的水平。
下圖是飛貸的容器發(fā)展路線圖。我們從2015年開始研究容器,2016年開始投產(chǎn)在RD環(huán)境上。在當(dāng)時我們還沒能完全選定Kubernetes還是另外一個容器技術(shù),所以暫時停留在RD階段。2017年,Kubernetes技術(shù)越來越成熟、越來越穩(wěn)定,我們就把整體的方向往Kubernetes方向進(jìn)行遷移。到了今年,我們的生產(chǎn)環(huán)境已經(jīng)可以大量運用容器技術(shù)進(jìn)行多個方向上的應(yīng)用了。
剛才Rancher的CEO梁勝博士提到,現(xiàn)在Rancher已經(jīng)可以做到多K8S集群管理和部署,多數(shù)據(jù)中心。這是和我們的業(yè)務(wù)發(fā)展比較貼合的。我們提供基于飛貸的金融云服務(wù),同時我們有多租戶集群管理的業(yè)務(wù)需求。目前,我們已經(jīng)可以針對K8S多集群進(jìn)行應(yīng)用服務(wù)、中心服務(wù)、數(shù)據(jù)庫服務(wù)等多個方向的多集群管理,同樣,我們也可以做到多租戶網(wǎng)絡(luò)隔離。
從客戶的角度來說,在客戶和我們合作之前或者是過程當(dāng)中,他們先前可能并不了解小貸的業(yè)務(wù)運營是這樣的,所以銀行會把他們的整體服務(wù)放在我們公司,飛貸就變成了一家金融云廠商。而飛貸的特殊之處就在于,我們專注于和我們業(yè)務(wù)發(fā)展相關(guān)的內(nèi)容,我們?yōu)榭蛻籼峁┑牟皇且粋€整體的平臺,而是應(yīng)用。
剛才提到的所有內(nèi)容都是和容器息息相關(guān)的,容器的特性包括安全審計、動態(tài)存儲、高可用灰度發(fā)布等等,我們把容器的特性應(yīng)用到了飛貸生產(chǎn)環(huán)境上,并且發(fā)揮到了極致。
下圖是飛貸容器化的平臺組件。無論是我們的RD還是外面的人員,飛貸會為他們提供應(yīng)用商店,他們要做什么事情,就在我們的管理平臺點擊一下,我們會自動生產(chǎn)一個容器的應(yīng)用幫他們進(jìn)行處理。我們鏡像倉庫的部分是在一起的。
除了這幾個部分,我們還有Prometheus和Jenkins,這些體系和我們研發(fā)的相關(guān)度比較高,現(xiàn)在飛貸能實現(xiàn)自動集成、自動打包、自動發(fā)布和自動部署,這是我們研究了兩年多的平臺組件成果。
飛貸為什么要讓DB容器化?因為微服務(wù)部分的應(yīng)用層已經(jīng)發(fā)展得比較好了,但是對于DB而言還有很多的問題。假如DB宕機了,我想要迅速恢復(fù)這個DB,讓業(yè)務(wù)生產(chǎn)能夠正常運行,我們需要花費多長的時間呢?如果DB非常大,這個啟動時間是非常久的。這就是為什么銀行或者是大型金融機構(gòu)沒有小型機,不敢用開源的MySQL或者是MangoDB等資料庫,因為他們要保證安全和持續(xù)運作,這是一個比較大的挑戰(zhàn)。
這就是我今天要重點講述的幾個問題,為什么要MySQL容器化?MySQL容器化安全穩(wěn)定嗎?容器化MySQL的具體實現(xiàn)是樣的?
我們剛才介紹了飛貸要做多集群管理的容器,里面存在一些限制以及要求。第一,會涉及非常復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu);第二,故障要頻繁地切換,我們認(rèn)為這在金融行業(yè)是非常重要的一個部分,因為一旦發(fā)生故障,金融行業(yè)的業(yè)務(wù)基本上就會停擺了;第三,要控制容量大??;第四則是要依賴網(wǎng)絡(luò)存儲。
我們之所以要做這個部分,有三個方面的原因。第一,我們需要實現(xiàn)標(biāo)準(zhǔn)化快速部署,因為應(yīng)用快速部署完之后,如果DB部署很慢的話,對于我們而言,整體效率還是一樣地低,這是站在整體效率的部分而言的;第二就是微服務(wù)場景,我們現(xiàn)在的系統(tǒng)已經(jīng)是全部為服務(wù)化進(jìn)行終端的調(diào)整,在這種場景下,如果數(shù)據(jù)場景不能微服務(wù)化,那我上層所做的內(nèi)容毫無意義,我們不希望數(shù)據(jù)庫成為業(yè)務(wù)彈性伸縮以及管理的短板;第三就是MySQL服務(wù)化、自動化、網(wǎng)絡(luò)化和智能化的需求。
我們進(jìn)行MySQL容器化的效果很明顯。第一,我們可以實現(xiàn)高效彈性伸縮、擴容、備份、導(dǎo)入、導(dǎo)出、恢復(fù)、快照、遷移;第二,我們可以實現(xiàn)整體數(shù)據(jù)庫的性能監(jiān)控和審計;第三,分布式存儲、資源、數(shù)據(jù)多副本可以實現(xiàn)實時同步。我們在大數(shù)據(jù)應(yīng)用的部分可能和一般的公司也有所區(qū)別,我們生產(chǎn)環(huán)境的一些數(shù)據(jù)和大數(shù)據(jù)實時數(shù)據(jù)是拆分開的,但我們做到了實時同步;第四就是計算資源分布式,多節(jié)點,技術(shù)設(shè)施高可用;第五是擁有故障自愈的功能。我的MySQL如果宕機,我們可以迅速恢復(fù)。
下圖是我們MySQL DB的架構(gòu),底下的應(yīng)用服務(wù)對應(yīng)的是中間件,我們所有的中間件對應(yīng)每一個單獨的庫。我們?yōu)榱藢崿F(xiàn)DB容器,把庫做到了非常大的空間壓縮,并且把庫進(jìn)行了容量限制,這樣才有可能在庫故障的時候,可以迅速的啟動它。這部分考驗了我們整體的業(yè)務(wù)運作部分,數(shù)據(jù)分表分庫的能力、讀寫分離的能力。而這部分都是通過我們自行研發(fā)的中間件完成的。如果沒有我們自行研發(fā)的中間件,DB Mesh這部分內(nèi)容是我們也無法完成的。
以上基本就是飛貸DB的網(wǎng)絡(luò)發(fā)散圖,架構(gòu)特征包括幾個部分,一是高并發(fā)、低延遲,每秒10000事務(wù)處理,延遲小于100毫秒;二是支持IDC多活;三是支持?jǐn)?shù)據(jù)路由;四是可以自動化或者人格化決策切換;五是數(shù)據(jù)多副本。
截至目前,飛貸的DB量級是PB級別的,我們大概是十幾個PB這種應(yīng)用數(shù)量,可對外同步實施,故障容器數(shù)目大于二分之一可以自動回復(fù),這就是為什么我們要做DB Mesh的原因。
另一部分是關(guān)于我們?nèi)萜骰螴stio的,右邊是我們生產(chǎn)應(yīng)用的圖形界面,可以看到注冊進(jìn)去之后,我們就可以進(jìn)行自動追蹤,了解庫的健康程度。但是里面還有一些小問題,當(dāng)DB斷掉再恢復(fù)之后,這個服務(wù)就不見了,需要再次手工注入。關(guān)于這個問題,我們研究了Istio的很多文檔,但還沒有克服這一問題。所以在DB這一部分,我們只做到在生產(chǎn)的時候,一開始可以注入,但是當(dāng)它掛掉之后,我們還是需要手工處理,暫時沒有辦法自動恢復(fù)。
而在應(yīng)用和管理服務(wù)的部分,我們已經(jīng)做到了完全自動化,整合Istio實現(xiàn)微服務(wù)Service Mesh,實現(xiàn)了微服務(wù)訪問、安全加固、控制、觀察。服務(wù)追蹤、限速、熔斷、調(diào)度、負(fù)載等部分。
以上是飛貸整體服務(wù)的應(yīng)用部署,從應(yīng)用服務(wù)到中間件,這是我們整體部署的發(fā)布圖,所以現(xiàn)在我們的RD人員基本上只負(fù)責(zé)開發(fā),開發(fā)之后,所有一切都通過我們的平臺去進(jìn)行集成、發(fā)布和管理,上了生產(chǎn)環(huán)境之后,也會由我們的運維來處理,不會由RD來處理。在這一點上,我們做的還比較符合銀行的要求。
最后,我想介紹一下飛貸容器化帶來的成果:
第一是提升飛貸整體生產(chǎn)力。飛貸80%的基礎(chǔ)運維都是自動化的;其次,交付能力也有所提升,一小時我們可以交付上百套的服務(wù)應(yīng)用,目前來說有上千臺容器在我們整個生產(chǎn)環(huán)境上面運作,如果我們沒有進(jìn)行微服務(wù)容器化的話,微服務(wù)架構(gòu)部署時間會非常長;最后一個是我們具備生產(chǎn)環(huán)境上數(shù)百個MySQL的實例,這也是我們的一個容器化成果;
第二就是研發(fā)和擴展,可以按照容器的pod、物理主機節(jié)點、機柜及數(shù)據(jù)中心級別做擴展,這塊我們也結(jié)合了很多CMDB的內(nèi)容,但在這里就不詳表了;
第三是IT成本的投入,這也是我們企業(yè)比較關(guān)注的一個內(nèi)容,我們之前的私有云是用CloudStack作為平臺去搭建的,現(xiàn)在我們?nèi)繐Q成了容器。這大約節(jié)約了我們40%的資源,節(jié)省了60%的人力投入。以前我們要部署一個應(yīng)用還需要提供虛擬主機在RD上面部署,現(xiàn)在容器一鍵部署就可以完成了。另外項目研發(fā)投入時間也節(jié)省了40%,因為部署應(yīng)用之類的內(nèi)容現(xiàn)在已經(jīng)不需要RD人員來處理了,都是由我們平臺自動化處理的;
第四是安全、敏捷、高效,這部分業(yè)余數(shù)據(jù)的全量備份我們也是分鐘級的,我們的庫縮得足夠小,所以我們可以在幾分鐘內(nèi)迅速備份;第二在容災(zāi)故障的時候,我們的業(yè)務(wù)運用一鍵恢復(fù)也是分鐘級的,數(shù)據(jù)快照是秒級的,資源利用率提升10倍,數(shù)據(jù)庫交付能力提升近百倍,我們整個應(yīng)用有上百個MySQL節(jié)點,如果一個個部署非常慢,我們現(xiàn)在已經(jīng)把鏡像做起來了,所以部署是非常迅速的;
最后一點是運維變得非常簡單,自動化、極致的、彈性容器的調(diào)度,灰度發(fā)布、預(yù)發(fā)布、藍(lán)綠部署、持續(xù)交付。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。