作為國內(nèi)綜合金融卓越典范的中國平安集團,IT引領(lǐng)業(yè)務(wù)發(fā)展是其多年踐行的企業(yè)科技發(fā)展戰(zhàn)略,憑借多年積累的技術(shù)與團隊經(jīng)驗,平安科技強大的IT能力始終為行業(yè)所矚目。而平安的云計算戰(zhàn)略,不僅僅著眼于平安集團自身,更期望立足于整個金融行業(yè)(和國內(nèi)其他一些金融巨頭的定位一樣!),在科技服務(wù)自身發(fā)展的前提下,逐步謀求將先進而豐富的IT能力與基礎(chǔ)設(shè)施資源對外進行輸出,以科技的力量推動行業(yè)整體發(fā)展。而對于行業(yè)中的中小機構(gòu)同業(yè)來說,在符合信息安全要求的前提下,標桿企業(yè)的專業(yè)技術(shù)與強有力的IT基礎(chǔ)設(shè)施平臺,是他們非常樂于學(xué)習(xí)和借力的先進資源,可以更快、更便利地獲得專業(yè)的技術(shù)平臺解決方案,這有利于他們將有限的人力物力更專注地投向業(yè)務(wù)應(yīng)用層面的需求響應(yīng)。
平安科技正是在這一戰(zhàn)略前提下開始致力于打造金融行業(yè)領(lǐng)先的“平安金融云”,恰逢標志著Cloud2.0時代到來的容器技術(shù)傳入中國,其諸多革命性的技術(shù)優(yōu)勢很快引起了平安技術(shù)先行者們的積極關(guān)注。及至2015年下半年,平安科技決定在新的平安云平臺建設(shè)項目中,正式啟動對容器技術(shù)的選型與引進。
項目目標場景
框架選型
在提供容器服務(wù)之前,平安云平臺已經(jīng)在為用戶提供云主機、云存儲等一系列企業(yè)公有服務(wù),為了實現(xiàn)快速對接平安云已有IaaS平臺并提供全面的容器云運營管理能力,平安科技在容器管理平臺框架選型方面提出了以下選型要求:
- 架構(gòu)簡單,能夠快速部署,易維護。
- 開源,貼近主流社區(qū)和原生平臺。
- 支持多租戶,能夠嚴格的隔離和必要的互通。
- 支持VPC網(wǎng)絡(luò)降低對網(wǎng)絡(luò)的依賴。
- 符合容器服務(wù)規(guī)范的Stack、Service、Container領(lǐng)域模型。
- 完備、豐富的RestfulAPI。
- 跨平臺支持好,能夠適應(yīng)混合云部署模式。
經(jīng)過一系列的驗證與測試平安科技最終在K8S,Mesos+Marathon以及Rancher之間選擇了我們的Rancher平臺作為容器服務(wù)平臺基礎(chǔ)框架。
自助服務(wù)
過去,開發(fā)測試人員做應(yīng)用的開發(fā)測試工作時往往需要通過繁雜的內(nèi)部資源申請流程獲取開發(fā)測試環(huán)境。過程中常常需要與運維團隊中負責(zé)各個基礎(chǔ)設(shè)置資源管理以及數(shù)據(jù)庫、中間件管理的成員進行多次溝通。無形中增加了時間成本溝通成本,同時所申請的環(huán)境在使用之后沒有有效的資源回收機制造成了大量的資源浪費。
為了解決上述問題,平安科技通過容器服務(wù)平臺為租戶提供自助開發(fā)測試容器環(huán)境創(chuàng)建服務(wù)。租戶可以自助在平臺上快速部署所需服務(wù)與環(huán)境,并且在平臺所分配的資源池中使用或釋放開發(fā)測試容器環(huán)境作用資源。同時自助的在平臺上完成鏡像管理、應(yīng)用編排、服務(wù)集群管理、容器管理等一系列工作。
持續(xù)交付
提供API對接平安已有的開發(fā)管理平臺Wizard,為CICD流水線提供容器運行環(huán)境,實現(xiàn)全流程部署自動化。
技術(shù)實現(xiàn)方案
服務(wù)架構(gòu)
平安云統(tǒng)一管理區(qū)
容器服務(wù)門戶
- 門戶系統(tǒng),提供容器服務(wù)操作。
- 基于lvs+keepalived部署架構(gòu),外接mysql集群。
統(tǒng)一管理節(jié)點
- 采用Ansible,用于部署多租戶容器環(huán)境,添加主機,初始化Registry等節(jié)點管理。
平安云公共服務(wù)區(qū)
Rancher服務(wù)
- 核心服務(wù)組件,主要用于容器調(diào)度與部署。
- 基于lvs+keepalived部署架構(gòu),外接mysql集群。
Docker節(jié)點
- 用于鏡像制作、上傳、下載,文件傳輸,執(zhí)行Docker命令。
PublicRegistry
- 平安官方公共鏡像倉庫,同時是官方公共租戶的鏡像庫。
- 采取多節(jié)點掛載共享盤部署。
租戶VPC
租戶環(huán)境
- 每個租戶擁有完整容器部署和運行環(huán)境,包括RancherServer、Docker節(jié)點、PrivateRegistry。
- 隔離與其他租戶之間的影響,減少跨租戶的網(wǎng)絡(luò)訪問。
容器網(wǎng)絡(luò)
對外:ContainerBridge,采用端口映射。
對內(nèi):容器之間直接使用容器管理平臺框架Rancher自帶的IPsec隧道實現(xiàn)。
如果某個容器需要對外服務(wù),則采用端口映射方式,連通所在vm,就可以暴露服務(wù)。
如果容器不需要對外提供服務(wù),只需要在同個應(yīng)用內(nèi)提供服務(wù),那么采用ipsec方式,這樣避免浪費過多端口。
容器與容器之間建立私有網(wǎng)絡(luò),只有容器與容器之間可以訪問。每個容器都擁有一個私有網(wǎng)絡(luò)地址:10.42.網(wǎng)段。
容器存儲
根據(jù)Docker官方提供的所有存儲驅(qū)動的成熟度??梢钥吹侥壳癙roduction-Ready的是AUFS和DeviceMapper。
目前平安科技容器服務(wù)統(tǒng)一運行在CentOS,還沒使用其他操作系統(tǒng)。因此選擇DeviceMapper作為容器存儲驅(qū)動。DeviceMapper底層直接使用云磁盤作為pool,采用LVM管理。
除了容器和鏡像存儲外,應(yīng)用數(shù)據(jù)存儲,包括配置文件采用了volume接口或者直接volume映射來解決應(yīng)用容器漂移的數(shù)據(jù)問題。
日志
- 容器服務(wù)平臺日志:本地+云平臺ELK日志服務(wù)。
- 容器自身運行日志:本地云磁盤+云平臺ELK日志服務(wù)。
- 容器內(nèi)應(yīng)用(業(yè)務(wù)方)日志:業(yè)務(wù)自行規(guī)劃,已經(jīng)提供目錄掛載。
容器監(jiān)控
主要依賴Rancher平臺自帶的主機與容器的監(jiān)控功能,同時,通過腳本,定時獲取容器本身的性能監(jiān)控(cpu/mem/network/storage)數(shù)據(jù),能夠在portal上查看。
1、主機監(jiān)控
2、容器監(jiān)控
3、特定的中間件監(jiān)控
平安研發(fā)了基于zabbix/open-falcon的監(jiān)控平臺用來提供常見中間件的性能監(jiān)控(WebLogic/Tomcat/Nginx等),為中間件鏡像制作腳本,中間件監(jiān)控程序整合到Docker鏡像中,容器一啟動,就能即時上報性能數(shù)據(jù)到監(jiān)控平臺,無需任何外部干預(yù)。
鏡像管理
針對鏡像管理,平安科技進行了從單節(jié)點->雙節(jié)點->跨區(qū)域分布式架構(gòu)的演進。
通過自行開發(fā)的服務(wù)組件實現(xiàn)對不同區(qū)域數(shù)據(jù)中心的跨區(qū)域分布式鏡像管理,每個區(qū)域都部署一套,對接本區(qū)域的私有鏡像庫。一方面監(jiān)聽當前區(qū)域的鏡像倉庫事件,然后主動發(fā)起同步操作。另一方面:執(zhí)行Dockcer命令,管理該區(qū)域的所有運行容器的機器。
項目成果
經(jīng)過大半年的設(shè)計、驗證、實施,平安科技以全球領(lǐng)先的容器云開源技術(shù)框架(Rancher)為核心,自主研發(fā)為主,圓滿完成了平安云CaaS容器服務(wù)平臺的建設(shè),實現(xiàn)了為平安集團旗下各個金融類別和擁有不同開發(fā)模式的子公司用戶,提供物理機、虛擬機、容器等滿足不同種類計算需求的計算資源服務(wù)的總體目標。并于2016年嘗試面對公眾市場發(fā)布推廣,成為金融行業(yè)走向容器云平臺公共服務(wù)的第一家機構(gòu)!
結(jié)語
睿云智合(Wise2C)作為Rancher在金融保險行業(yè)的獨家總代理,有幸成為這一歷史性重大項目的合作伙伴,新的一年我們將一如既往地為平安金融云的不斷發(fā)展提供更多專業(yè)、高效的服務(wù)。
同時,我們也非常高興受邀參與到了更多不同運營方向的其他大型金融機構(gòu)的容器云平臺建設(shè)項目,為此我們正不斷完善自身的系列容器技術(shù)平臺產(chǎn)品,希望將我們的項目經(jīng)驗和技術(shù)能力,完整而快捷地交付給更多的企業(yè)用戶!