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