作者:汪照輝 王作敬
一、 摘要容器技術(shù)應(yīng)用雖然越來越廣越來越深入,,但大多數(shù)仍然只是基于開源做一些測試和驗(yàn)證工作?;趯θ萜髌脚_的應(yīng)用和研究,,以及對開源技術(shù)的理解,詳細(xì)探討了容器云平臺的設(shè)計(jì)和實(shí)現(xiàn)架構(gòu),,提出“三視角、四層次,、一閉環(huán)”設(shè)計(jì)方案,,重點(diǎn)在于支撐業(yè)務(wù)應(yīng)用的開發(fā)、托管和運(yùn)營,。(共兩篇詳細(xì)描述容器云平臺設(shè)計(jì),這是第一篇) 二、 關(guān)鍵字容器云,、DevOps,、微服務(wù),、三視角、四層次,、一閉環(huán) 三,、 背景互聯(lián)網(wǎng)金融的出現(xiàn)和迅速發(fā)展,,給予傳統(tǒng)金融企業(yè)極大的壓力,被迫考慮轉(zhuǎn)型和調(diào)整,?;ヂ?lián)網(wǎng)金融,,關(guān)鍵點(diǎn)在于互聯(lián)網(wǎng):互聯(lián)網(wǎng)思維、互聯(lián)網(wǎng)技術(shù),、互聯(lián)網(wǎng)架構(gòu)、互聯(lián)網(wǎng)業(yè)務(wù),、互聯(lián)網(wǎng)客戶……。先進(jìn)的思想引領(lǐng)先進(jìn)的技術(shù),,先進(jìn)的技術(shù)支撐先進(jìn)的架構(gòu),先進(jìn)的架構(gòu)提升先進(jìn)的業(yè)務(wù),,先進(jìn)的業(yè)務(wù)更好的服務(wù)客戶、更多的贏得客戶,! 對于我們傳統(tǒng)的金融企業(yè),還存在傳統(tǒng)的思維,、落后的技術(shù)。一項(xiàng)新業(yè)務(wù)從提出需求到立項(xiàng),、招標(biāo),、實(shí)施,、上線,一年半載已經(jīng)過去了,。最最關(guān)鍵的是,開發(fā)出來的系統(tǒng)功能可能已經(jīng)不是最初需求的樣子了,,似是而非,,一線員工不滿意,IT人員覺得委屈,,客戶失望而流失,。這種傳統(tǒng)的IT研發(fā)方式已經(jīng)無法適應(yīng)當(dāng)前變化的金融業(yè)務(wù)新局面發(fā)展的要求,亟待采用新思想新技術(shù)來支撐新的形勢,。 我司在采用了Vmware技術(shù)完成IaaS(Infrastructure as a Service)虛擬化建設(shè)之后;考慮到IaaS虛擬化層僅提供了對存儲,、網(wǎng)絡(luò)、計(jì)算資源的管理,,無法提供對公司軟件、工具,、中間件等的管理,。按照云計(jì)算的三種類型 ,,建設(shè)PaaS(Platform as a Service)平臺將有助于我們實(shí)現(xiàn)這些目標(biāo),同時提升敏捷開發(fā)能力,,自動化運(yùn)維能力,。但PaaS平臺技術(shù)一直不成熟,,存在諸多技術(shù)難點(diǎn)。隨著以Docker為代表的容器技術(shù)的出現(xiàn)和發(fā)展并逐步成熟,,使我們看到構(gòu)建基于容器技術(shù)的輕量化PaaS平臺——容器云平臺的可行性,。 伸縮性或彈性是云計(jì)算的價值所在,。IaaS解決了基礎(chǔ)設(shè)施資源層的彈性,,PaaS層需要解決支撐業(yè)務(wù)應(yīng)用的平臺的彈性,而SaaS(Software as a Service)服務(wù)則解決業(yè)務(wù)應(yīng)用的彈性,。對于證券企業(yè),,每家企業(yè)都可能推出自己特色的業(yè)務(wù),這些業(yè)務(wù)無法通過SaaS服務(wù)來獲取支持,,需要證券企業(yè)自己去開發(fā)業(yè)務(wù)應(yīng)用系統(tǒng)來支撐這些特色的業(yè)務(wù)。而應(yīng)用開發(fā),、應(yīng)用托管、應(yīng)用運(yùn)維能力是PaaS平臺的核心功能,,構(gòu)建PaaS來快速支撐企業(yè)特色的金融業(yè)務(wù)是企業(yè)業(yè)務(wù)發(fā)展和企業(yè)IT發(fā)展的要求,。基于此,,在充分的調(diào)研和測試基礎(chǔ)上,選擇構(gòu)建以容器技術(shù),、分布式技術(shù)、容器編排調(diào)度技術(shù)為基礎(chǔ)的輕量化PaaS平臺實(shí)現(xiàn)應(yīng)用開發(fā),、托管和運(yùn)維能力,。 四,、 容器云容器云,是輕量化PaaS平臺的一種容器化實(shí)現(xiàn)方式,。是基于容器技術(shù),、容器調(diào)度編排技術(shù)和支撐容器運(yùn)行操作系統(tǒng)技術(shù)、分布式技術(shù)上構(gòu)建的一種云計(jì)算平臺,。 (一) 容器云適用場景PaaS平臺提供應(yīng)用開發(fā)、應(yīng)用托管,、應(yīng)用運(yùn)維的能力。容器云也重點(diǎn)在于實(shí)現(xiàn)這些能力,。因此實(shí)現(xiàn)資源管理、應(yīng)用管理,、持續(xù)集成標(biāo)準(zhǔn)化交付,、持續(xù)部署,、持續(xù)監(jiān)控、持續(xù)反饋,、持續(xù)改進(jìn)能力是容器云平臺需要考慮的需求,。 證券行業(yè)業(yè)務(wù)場景復(fù)雜,需求多樣,,那么容器云可能適用場景有哪些?我們覺得可以從以下這些方面入手: 環(huán)境一致性,。容器平臺交付標(biāo)準(zhǔn)化的鏡像,,通過鏡像倉庫使分發(fā)流程規(guī)范化,,容器引擎使運(yùn)行環(huán)境標(biāo)準(zhǔn)化,而標(biāo)準(zhǔn)化的容器使調(diào)度管理標(biāo)準(zhǔn)化,,這就提供了證券企業(yè)開發(fā)測試生產(chǎn)環(huán)境的一致性,對于自主研發(fā)能力和效率的提升會有極大的幫助,。 彈性伸縮能力。容器平臺最重要的特性和價值就是彈性,。這也是采用微服務(wù)架構(gòu)部署微服務(wù)到容器云平臺的重要原因,。如果僅僅是遷移原業(yè)務(wù)應(yīng)用到容器平臺而不能實(shí)現(xiàn)彈性伸縮,那就沒有什么價值,。很多人強(qiáng)調(diào)云原生,,也是在于云的彈性能力,,這是滿足證券企業(yè)應(yīng)用和服務(wù)容量快速變化的要求。 灰度發(fā)布能力,。灰度發(fā)布多應(yīng)用于移動App,,移動App發(fā)布頻率比較高,,為了更快驗(yàn)證功能,,需要導(dǎo)一部分實(shí)際的請求流量到新的版本測試確認(rèn)。在確認(rèn)沒有異常和缺陷之后,,發(fā)布替換原來的舊版本;灰度發(fā)布也可以用于特定的用戶群體,,不同的用戶群體所使用的版本不同,提供定向或?qū)m?xiàng)服務(wù),,比如為某些大客戶提供某專項(xiàng)業(yè)務(wù)服務(wù),。這是證券個性化服務(wù)要求,。 構(gòu)建基礎(chǔ)設(shè)施云計(jì)算平臺。云計(jì)算提供各種云服務(wù),,云服務(wù)可以看作是一種資源。不管IaaS,、PaaS,、或SaaS,,都是提供資源服務(wù)。利用容器構(gòu)建PaaS平臺提供開發(fā),、測試,、部署、運(yùn)維等基礎(chǔ)設(shè)施平臺服務(wù),。這是證券企業(yè)統(tǒng)一基礎(chǔ)設(shè)施服務(wù)的需要,。 基于基礎(chǔ)設(shè)施平臺使用微服務(wù)架構(gòu)重構(gòu)業(yè)務(wù)應(yīng)用。有了統(tǒng)一的基礎(chǔ)設(shè)施平臺,,就可以方便的構(gòu)建業(yè)務(wù)應(yīng)用。以微服務(wù)架構(gòu)開發(fā)的業(yè)務(wù)應(yīng)用具備天然的云原生屬性,,跟容器平臺融合統(tǒng)一,,相輔相成。有了基礎(chǔ)平臺,、有了服務(wù)架構(gòu),為了實(shí)現(xiàn)數(shù)據(jù)以及業(yè)務(wù)的統(tǒng)一,,很多遺留系統(tǒng)和單體應(yīng)用需要逐步的重構(gòu),,實(shí)現(xiàn)企業(yè)服務(wù)中臺能力。這是證券企業(yè)可持續(xù)發(fā)展的需要,。
容器云平臺說到底只是工具,最終還是要服務(wù)于企業(yè)業(yè)務(wù)應(yīng)用的,。容器云平臺是來承載業(yè)務(wù)應(yīng)用的,所以應(yīng)用管理才是容器云平臺能力的核心,,所有的能力都是圍繞應(yīng)用管理來建設(shè)的。不管容器云平臺的資源管理,,容器云平臺的多租戶隔離機(jī)制,以及容器云平臺的安全,、監(jiān)控,、日志等組件,都要圍繞應(yīng)用管理來建設(shè)的,。
圖1 應(yīng)用管理為中心 (二) 容器云的價值基于容器輕量、標(biāo)準(zhǔn),、彈性等特性的容器云平臺提供了相應(yīng)的能力。容器云平臺可以構(gòu)建標(biāo)準(zhǔn)化的基礎(chǔ)設(shè)施環(huán)境,、敏捷的工具鏈流程、快速的彈性擴(kuò)展能力等,。 提供統(tǒng)一的標(biāo)準(zhǔn)化的基礎(chǔ)設(shè)施平臺。首先容器云平臺提供了統(tǒng)一的標(biāo)準(zhǔn)化的基礎(chǔ)設(shè)施平臺,,實(shí)現(xiàn)了環(huán)境的一致性。所有業(yè)務(wù)應(yīng)用服務(wù)打包為鏡像運(yùn)行于標(biāo)準(zhǔn)化的容器中,。標(biāo)準(zhǔn)化為業(yè)務(wù)應(yīng)用全生命周期管理帶來了便利和敏捷。 提供敏捷的研發(fā)部署運(yùn)維流程,。容器云平臺交付和交換標(biāo)準(zhǔn)化的鏡像來實(shí)現(xiàn)持續(xù)集成和持續(xù)部署等流程的自動化和敏捷,提升了開發(fā)效率,。 提供便利的彈性擴(kuò)展能力,、可用性,。容器云平臺的彈性是其核心價值之一,非常適合變化迅速,、請求流量難以準(zhǔn)確預(yù)測、業(yè)務(wù)生命周期短等場景,。 利用API網(wǎng)關(guān)可以方便的實(shí)現(xiàn)服務(wù)治理能力,。API網(wǎng)關(guān)是容器云平臺重要的一個組件,,其擔(dān)負(fù)著業(yè)務(wù)應(yīng)用的安全屏障職責(zé),,是實(shí)現(xiàn)訪問控制,、安全檢查、限流限額,、路由轉(zhuǎn)換,、過濾熔斷等非業(yè)務(wù)邏輯能力的關(guān)鍵層次,也是在容器云平臺實(shí)現(xiàn)微服務(wù)治理能力的核心組件,。 基于容器云平臺和微服務(wù)架構(gòu)構(gòu)建企業(yè)服務(wù)中臺。容器云不只是滿足于支撐互聯(lián)網(wǎng)應(yīng)用和移動應(yīng)用的彈性需求,,基于微服務(wù)的架構(gòu),我們可以逐步把單體應(yīng)用的組件逐步的分離出來,,比如日志服務(wù),、監(jiān)控服務(wù),、權(quán)限服務(wù)、認(rèn)證服務(wù),、配置服務(wù)、短信服務(wù),、微信服務(wù)、郵件服務(wù),、告警服務(wù)等等,這些服務(wù)分離的越多,,在實(shí)現(xiàn)新的業(yè)務(wù)應(yīng)用時就越省時省力,。逐步可以建立起支撐整個公司業(yè)務(wù)應(yīng)用的服務(wù)中臺能力。構(gòu)建服務(wù)中臺才是采用容器云和微服務(wù)的核心價值所在,。
(三) 容器云的不足容器云有很多優(yōu)點(diǎn),,但我們也要認(rèn)識到容器云也有不足,。一枚硬幣有正反兩面,一件事物有其優(yōu)點(diǎn)也必有其缺點(diǎn),需要辯證全面的看待它,。 首先容器云適合無狀態(tài)、輕量,、彈性的業(yè)務(wù)場景,它不太適合笨重的應(yīng)用服務(wù),,比如WebSphere、Oracle DB,,就不適合。不要拿容器當(dāng)虛擬機(jī)用,,容器不是虛擬機(jī)。試想一個鏡像十幾 G甚至幾十G大小的文件,,如何去打包分發(fā)部署?一次部署的代價有多大,? 其次容器是弱安全的,所以在容器云平臺設(shè)計(jì)實(shí)現(xiàn)時,,需要考慮盡可能的減少不安全接觸面,盡量隔離潛在不安全操作,。比如限制容器終端命令交互方式。安全有時可能會犧牲一些性能,。 五、 容器云平臺設(shè)計(jì)容器云平臺是為了承載企業(yè)業(yè)務(wù)應(yīng)用服務(wù)的,,業(yè)務(wù)應(yīng)用管理是其核心能力。云計(jì)算很重要的一個特性是多租戶,,每個業(yè)務(wù)應(yīng)用都可能是一個租戶,,每個租戶關(guān)注的是自己的業(yè)務(wù)應(yīng)用,。比如建設(shè)的客戶中心可以是一個租戶,服務(wù)中心是一個租戶,。但是這些業(yè)務(wù)應(yīng)用需要云計(jì)算資源,,這些資源是在云平臺上統(tǒng)一來維護(hù)的。另外還有就是要構(gòu)建這些業(yè)務(wù)應(yīng)用需要的DevOps工具鏈和標(biāo)準(zhǔn)化交付流程等,。這里就涉及到多租戶應(yīng)用管理的租戶視角,容器云平臺資源管理等的平臺管理員視角,,以及標(biāo)準(zhǔn)化的業(yè)務(wù)應(yīng)用鏡像交付流程標(biāo)準(zhǔn)化交付視角三個視角,。另外基于對容器云的橫向?qū)哟卫斫?,我們將容器云平臺劃分為4層:基礎(chǔ)設(shè)施資源層、基礎(chǔ)設(shè)施資源調(diào)度層,、平臺層和業(yè)務(wù)應(yīng)用層。再者基于DevOps的持續(xù)集成,、持續(xù)部署,、持續(xù)發(fā)布,、持續(xù)監(jiān)控、持續(xù)反饋,、持續(xù)改進(jìn)的需求(服務(wù)和應(yīng)用全生命周期管理),,定義整個DevOps鏈路為一個閉環(huán)?;谶@些探索,我們把容器云平臺能力歸納為“三視角四層次一閉環(huán)”,,簡稱“三縱四橫一回路”,。
圖 2 容器云平臺架構(gòu) 開源雖然免費(fèi),但離真正的生產(chǎn)就緒 還有很長的路要走,,這也是我們重新設(shè)計(jì)實(shí)現(xiàn)容器云平臺架構(gòu)的原因。我們將在下篇文章中詳細(xì)討論容器云平臺“三視角四層次一閉環(huán)”設(shè)計(jì)思想,。
|