謝偉
摘要:文章在分析金融行業(yè)面所臨的挑戰(zhàn)的基礎(chǔ)上,對容器技術(shù)在金融行業(yè)的應(yīng)用現(xiàn)狀進(jìn)行了探討,同時(shí)也分析了容器對金融行業(yè)IT演進(jìn)的作用,為容器在金融行業(yè)的應(yīng)用提供了一些探索性的參考。
關(guān)鍵詞:容器 云計(jì)算 金融行業(yè)
一、前言
(一)傳統(tǒng)金融行業(yè)面臨的挑戰(zhàn)
在“互聯(lián)網(wǎng)+”的時(shí)代背景下,中國金融IT面臨一場規(guī)??涨暗霓D(zhuǎn)型大潮。傳統(tǒng)的IT流程、軟件架構(gòu)和運(yùn)維模式已經(jīng)無法滿足業(yè)務(wù)發(fā)展需要和競爭形態(tài)的轉(zhuǎn)變。傳統(tǒng)金融機(jī)構(gòu)紛紛考慮未來的IT開發(fā)機(jī)制、IT架構(gòu)的變革。
首先,互聯(lián)網(wǎng)對傳統(tǒng)金融IT帶來的沖擊就是應(yīng)用快速上線的要求。在互聯(lián)網(wǎng)+的轉(zhuǎn)型過程中,金融行業(yè)IT建設(shè)的關(guān)鍵變成了如何及時(shí)響應(yīng)業(yè)務(wù)需求、如何快速研發(fā)上線新的產(chǎn)品,在這種現(xiàn)狀下,傳統(tǒng)金融業(yè)IT架構(gòu)已經(jīng)變成應(yīng)用快速交付的瓶頸。
其次,傳統(tǒng)金融企業(yè)應(yīng)用大多是單體式的,其擴(kuò)展方式大多基于硬件配置的縱向擴(kuò)展,其典型特點(diǎn)為體量大、部署慢、難升級、難擴(kuò)展。在傳統(tǒng)的金融業(yè)務(wù)中,業(yè)務(wù)壓力可控、有規(guī)律,采用單體架構(gòu)也能基本適應(yīng)業(yè)務(wù)需求。但互聯(lián)網(wǎng)時(shí)代帶來了新的挑戰(zhàn),如搶紅包、秒殺等應(yīng)用,其特點(diǎn)是隨機(jī)性和海量瞬時(shí)流量。單體式應(yīng)用和縱向擴(kuò)展不再能夠支持此種場景,而只能擁抱云原生、微服務(wù),依靠彈性擴(kuò)展能力才能滿足互聯(lián)網(wǎng)業(yè)務(wù)的需求。
再次,傳統(tǒng)金融企業(yè)IT系統(tǒng)中開發(fā)測試運(yùn)行環(huán)境割裂,無法使用現(xiàn)代互聯(lián)網(wǎng)技術(shù)中的A/B測試、藍(lán)綠部署、灰度發(fā)布等功能,難以應(yīng)對瞬息萬變的線上環(huán)境變化。
最后,金融企業(yè)IT系統(tǒng)對業(yè)務(wù)連續(xù)性和可用性要求嚴(yán)苛。而“互聯(lián)網(wǎng)+”卻是在不斷變化中尋求發(fā)展。如何在“變化”和“穩(wěn)定”兩者間進(jìn)行平衡對系統(tǒng)的運(yùn)維提出了巨大的挑戰(zhàn)。
(二)容器技術(shù)簡介
在新涌現(xiàn)的大批先進(jìn)技術(shù)中,以Docker為代表的容器技術(shù)受到了極大關(guān)注。容器技術(shù)最顯著的特點(diǎn)是容器中不僅包含了應(yīng)用本身,還包括了應(yīng)用運(yùn)行所需的環(huán)境,從而能夠在不同的環(huán)境中遷移并運(yùn)行,做到一次構(gòu)建、多次部署。另外,容器技術(shù)也是一種相對輕量級的虛擬化技術(shù),能夠做到秒級啟動(dòng)和停止?;谶@兩點(diǎn)主要特性,容器技術(shù)有著解決傳統(tǒng)金融行業(yè)IT所面臨問題的先天性優(yōu)勢。
Docker最初是dotCloud公司創(chuàng)始人Solomon Hykes在法國期間發(fā)起的一個(gè)公司內(nèi)部項(xiàng)目,它是基于dotCloud公司多年云服務(wù)技術(shù)的一次革新,并于2013 年3月以Apache 2.0授權(quán)協(xié)議開源,主要項(xiàng)目代碼在GitHub上進(jìn)行維護(hù)。
Docker使用Google公司推出的Go語言進(jìn)行開發(fā)實(shí)現(xiàn),基于Linux內(nèi)核的cgroup,namespace以及AUFS類的Union FS等技術(shù)對進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。
Kubernete是一個(gè)全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案。Kubernetes(k8s)是Google開源的容器集群管理系統(tǒng)。在Docker技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運(yùn)行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動(dòng)態(tài)伸縮等一系列完整功能,提高了大規(guī)模容器集群管理的便捷性。
如今Kubernetes已經(jīng)成為容器編排乃至容器技術(shù)的事實(shí)標(biāo)準(zhǔn),幾乎所有的容器產(chǎn)品均基于Kubernetes構(gòu)建。Kubernetes也是云原生技術(shù)的核心和基石,支撐了DevOps、微服務(wù)等應(yīng)用場景。
二、容器在金融行業(yè)的應(yīng)用現(xiàn)狀
(一)容器技術(shù)的應(yīng)用進(jìn)展
超過三成已使用云計(jì)算技術(shù)的金融機(jī)構(gòu)已將容器技術(shù)用于生產(chǎn)環(huán)境或測試環(huán)境。在調(diào)查中,有14.91%的金融機(jī)構(gòu)已經(jīng)將容器技術(shù)投入生產(chǎn)環(huán)境;20.50%的金融機(jī)構(gòu)僅用于測試環(huán)境。
(二)容器技術(shù)的應(yīng)用需求
能夠?qū)崿F(xiàn)快速部署、有助于微服務(wù)架構(gòu)的實(shí)現(xiàn)是金融機(jī)構(gòu)應(yīng)用容器技術(shù)的主要原因。已經(jīng)應(yīng)用容器技術(shù)的金融機(jī)構(gòu)中,出于能夠快速部署應(yīng)用的目的而應(yīng)用容器技術(shù)的金融機(jī)構(gòu)最多,占比 67.8%;其次,47.2%的金融機(jī)構(gòu)認(rèn)為有助于微服務(wù)架構(gòu)的實(shí)現(xiàn)是金融機(jī)構(gòu)應(yīng)用容器技術(shù)的原因;另外,支持快速彈性擴(kuò)容(43.4%)以及管理便利(41.0%)也是金融機(jī)構(gòu)應(yīng)用容器技術(shù)的重要推動(dòng)力。
(三)容器運(yùn)行技術(shù)的選擇
Docker是金融機(jī)構(gòu)主要選擇的容器運(yùn)行技術(shù)。已經(jīng)應(yīng)用容器技術(shù)的金融機(jī)構(gòu)中(包括測試環(huán)境),有 90.7%選用了 Docker 技術(shù),有 9.3%使用了 RKT 技術(shù)。
(四)容器編排技術(shù)的選擇
目前金融機(jī)構(gòu)主要應(yīng)用的容器編排技術(shù)是 Kubernetes 和 Mesos/DCOS。其中,Kubernetes 占比 39.18%,Mesos/DCOS 占比 36.08%。另外, CloudFoundry(18.56%)也是重要的容器編排技術(shù)。
值得注意的是Kubernetes使用處于快速上升階段,預(yù)計(jì)會完全替代其余編排技術(shù),成為事實(shí)標(biāo)準(zhǔn)。
三、容器助力金融行業(yè)IT持續(xù)演進(jìn)
《云計(jì)算技術(shù)金融應(yīng)用規(guī)范技術(shù)架構(gòu)》中對容器的建議如下:
容器服務(wù)為云服務(wù)使用者提供輕量級的應(yīng)用封裝、管理和運(yùn)行解決方案。容器服務(wù)的功能要求如下:
——應(yīng)支持不同應(yīng)用的邏輯隔離;
——應(yīng)支持容器鏡像管理;
——應(yīng)支持容器網(wǎng)絡(luò)組網(wǎng);
——應(yīng)支持完善的容器調(diào)度伸縮和應(yīng)用集群管理功能;
——宜支持界面化容器編排;
——宜支持基于多租戶的數(shù)據(jù)和權(quán)限管理機(jī)制。
針對金融行業(yè)IT在新時(shí)代面臨的新挑戰(zhàn),通過容器技術(shù)支撐三大場景:應(yīng)用管理、微服務(wù)、DevOps。
容器云:容器云是基于Kubernetes+docker的現(xiàn)代容器平臺,提供容器集群和容器實(shí)例的雙模容器基礎(chǔ)設(shè)施,全面支撐金融行業(yè)IT的應(yīng)用運(yùn)行場景;通過應(yīng)用和節(jié)點(diǎn)二級的彈性擴(kuò)容方案,輕松應(yīng)對瞬時(shí)流量和持續(xù)流量增長;容器云底層適配多種IaaS和裸機(jī)場景,在云化與傳統(tǒng)資源上都能運(yùn)行;底層支持原生多租戶SDN,并能通過開放插件支撐第三方SDN,實(shí)現(xiàn)網(wǎng)絡(luò)統(tǒng)一調(diào)度,統(tǒng)一管理。
三大應(yīng)用場景:
應(yīng)用管理:提供應(yīng)用一站式生命周期管理,包括應(yīng)用的:網(wǎng)絡(luò)、存儲、日志、監(jiān)控、調(diào)度、路由和權(quán)限管理,全面解決由單體式應(yīng)用向分布式微服務(wù)應(yīng)用演進(jìn)中的問題。同時(shí),通過可視化的監(jiān)控和日志功能,實(shí)現(xiàn)數(shù)據(jù)化運(yùn)維,簡化運(yùn)維難度,保障業(yè)務(wù)持續(xù)運(yùn)行。
DevOps:傳統(tǒng)應(yīng)用開發(fā)模式遺留下來的發(fā)布周期長、產(chǎn)品迭代緩慢、測試開發(fā)環(huán)境不一致等問題,都可以通過DevOps得到解決。而容器云下的DevOps更是可以在容器技術(shù)的加持下,使得整個(gè)過程更加快速、輕量和靈活。
微服務(wù):傳統(tǒng)金融行業(yè)IT架構(gòu)下,應(yīng)用的升級回滾、藍(lán)綠發(fā)布、A/B測試等功能需要大量的定制化配置和開發(fā),無法做到靈活的配置,因而也無法大范圍推廣。容器云提供的微服務(wù)治理功能,可以實(shí)現(xiàn)標(biāo)準(zhǔn)化的微服務(wù)治理,通過簡單配置快速實(shí)現(xiàn)內(nèi)容路由、負(fù)載均衡、灰度發(fā)布、故障注入、A/B測試等功能。
四、結(jié)束語
在“互聯(lián)網(wǎng)+”的時(shí)代背景下,傳統(tǒng)金融機(jī)構(gòu)已經(jīng)感受到來自內(nèi)外部的新需求,自身IT體系架構(gòu)的不足也逐漸顯現(xiàn);容器技術(shù)作為云計(jì)算發(fā)展的新階段正改變著IT服務(wù)交付的方式,更影響著云計(jì)算的未來,而金融行業(yè)對系統(tǒng)的可靠性要求要遠(yuǎn)高于互聯(lián)網(wǎng)企業(yè),目前將容器技術(shù)應(yīng)用于生產(chǎn)環(huán)境的金融機(jī)構(gòu)比較少,而是更多應(yīng)用于開發(fā)測試,但就像虛擬機(jī)一樣,之前也只是應(yīng)用于開發(fā)測試,如今已經(jīng)大范圍應(yīng)用于生產(chǎn)系統(tǒng),所以傳統(tǒng)金融機(jī)構(gòu)應(yīng)在充分調(diào)研和測試新興互聯(lián)網(wǎng)技術(shù)的基礎(chǔ)上,積極地去擁抱它們,一方面克服自身體系架構(gòu)的不足,降低成本,另一方面努力適應(yīng)外部快速變化的需求。
(作者單位:江西農(nóng)商銀行信息科技部)