2022-10-04 分類: 網(wǎng)站建設(shè)
前言
容器云項(xiàng)目是我司規(guī)劃建設(shè)的基礎(chǔ)設(shè)施云計算PaaS平臺的嘗試,希望通過容器化PaaS平臺的建設(shè),支持正在建設(shè)的微服務(wù)架構(gòu)應(yīng)用,同時也為適應(yīng)公司互聯(lián)網(wǎng)業(yè)務(wù)發(fā)展,滿足業(yè)務(wù)快速開發(fā)和迭代的需求,逐步建立標(biāo)準(zhǔn)化的開發(fā)、測試、運(yùn)維環(huán)境,形成適用于公司的DevOps(開發(fā)運(yùn)維一體化)過程,完善開發(fā)、測試、部署、運(yùn)維監(jiān)控工具鏈和自動化流程,提升自主敏捷研發(fā)、持續(xù)集成的能力;同時基于容器云平臺,逐步建立起企業(yè)級的服務(wù)中臺,實(shí)現(xiàn)大中臺-小前端的基礎(chǔ)架構(gòu),更好的支持公司業(yè)務(wù)應(yīng)用的開發(fā),專注于業(yè)務(wù)應(yīng)用的研發(fā),提升IT對業(yè)務(wù)變化需求的快速響應(yīng)能力。解決傳統(tǒng)單體應(yīng)用之間難以集成和共享的問題;通過采用標(biāo)準(zhǔn)化的容器技術(shù)和標(biāo)準(zhǔn)化的鏡像輸出,為開發(fā)測試生產(chǎn)提供一致性的環(huán)境;利用容器云的彈性伸縮能力實(shí)現(xiàn)對互聯(lián)網(wǎng)金融業(yè)務(wù)流量快速變化的支持。
一、背景和原因
目前我司已經(jīng)完成IaaS(Infrastructure as a Service)虛擬化建設(shè),采用了Vmware和超融合技術(shù);IaaS虛擬化層提供了對存儲、網(wǎng)絡(luò)、計算資源的管理,但無法提供對公司軟件、工具、中間件等的管理。按照云計算的三種類型,建設(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平臺——容器云平臺的可行性。
1. 容器云定義、作用
容器云,是輕量化PaaS平臺的一種容器化實(shí)現(xiàn)方式。是基于容器技術(shù)、容器調(diào)度編排技術(shù)和支撐容器運(yùn)行操作系統(tǒng)技術(shù)、分布式技術(shù)上構(gòu)建的云計算平臺。
從PaaS功能來說,PaaS提供應(yīng)用開發(fā)、應(yīng)用托管、應(yīng)用運(yùn)維等能力。也就是說在PaaS上,客戶可以開發(fā)、測試應(yīng)用,用戶可以托管應(yīng)用到PaaS的運(yùn)行時環(huán)境,同時PaaS提供給客戶應(yīng)用服務(wù)運(yùn)維的能力(比如應(yīng)用管理、監(jiān)控、日志、安全等)。
PaaS平臺是以應(yīng)用開發(fā)為中心,以解決應(yīng)用全生命周期管理、中間件云服務(wù)、基礎(chǔ)資源的高效利用。從應(yīng)用的開發(fā)、部署,到運(yùn)維的全流程生命周期管理,實(shí)現(xiàn)應(yīng)用的自動伸縮、彈性擴(kuò)展、灰度發(fā)布以及監(jiān)控告警、故障分析、自動遷移、自動恢復(fù);提供豐富的預(yù)集成服務(wù), 把通用的軟件能力服務(wù)化,使得應(yīng)用能快速擁有分布式的高可用性、高可擴(kuò)展性;通過對底層資源的抽象和資源層的隔離,盡可能地共享或平攤資源,以提高資源整體使用率,從而降低基礎(chǔ)設(shè)施的投入。
要實(shí)現(xiàn)這么多能力,PaaS技術(shù)存在一些難點(diǎn),比如如何把IaaS層的能力更無縫的融合到PaaS;如何把開發(fā)能力,特別是IDE工具部署到云上(eclipse 提供云上開發(fā)服務(wù));數(shù)據(jù)存儲和動態(tài)遷移的問題等。容器技術(shù)提供了一種選擇,可以首先構(gòu)建輕量化PaaS,實(shí)現(xiàn)應(yīng)用托管、應(yīng)用運(yùn)維能力,同時可以建立持續(xù)集成的環(huán)境,無縫對接容器云平臺。
2. 容器云帶來什么新技術(shù)新思想
容器云是輕量化PaaS的一種實(shí)現(xiàn)方式,容器技術(shù)的發(fā)展促進(jìn)了PaaS平臺的落地,部分的解決了PaaS平臺的技術(shù)難點(diǎn)問題。隨著容器技術(shù)和PaaS平臺技術(shù)的發(fā)展,容器云將會更加成熟。
容器技術(shù)特點(diǎn)又非常適合微服務(wù)架構(gòu),使微服務(wù)架構(gòu)應(yīng)用的部署和運(yùn)維更加便利,并且可以很好的解決彈性伸縮、灰度發(fā)布等運(yùn)維難點(diǎn)。
容器和容器云更促進(jìn)了DevOps思想的發(fā)展成熟,并找到了落地的途徑。容器云為持續(xù)集成和持續(xù)部署提供了便利的方式,也提供了開發(fā)、測試、生產(chǎn)等環(huán)境一致性的途徑。
容器技術(shù)改變了應(yīng)用部署和管理的方式。容器云平臺、微服務(wù)架構(gòu)和DevOps方法論相輔相成,相互促進(jìn),帶來了應(yīng)用開發(fā)、應(yīng)用部署、應(yīng)用運(yùn)維等全生命周期管理的新方法和新手段,也為大數(shù)據(jù)應(yīng)用、AI應(yīng)用等在云計算平臺的大規(guī)模部署提供了便利。以云計算平臺為基礎(chǔ)設(shè)施,支撐基礎(chǔ)業(yè)務(wù)應(yīng)用,大數(shù)據(jù)應(yīng)用、AI應(yīng)用等,建立全局的系統(tǒng)和服務(wù)體系,可以更好的服務(wù)于客戶,更好的贏得客戶的信任。
3.企業(yè)業(yè)面臨的問題和挑戰(zhàn)--現(xià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ù)。先進(jìn)的思想引進(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ā)出來的可能已經(jīng)不是最初的樣子了,似是而非,一線員工不滿意,IT人員覺得委屈,客戶失望流失。這種傳統(tǒng)的IT研發(fā)方式已經(jīng)無法適應(yīng)新業(yè)務(wù)發(fā)展的要求。
我們提出建設(shè)容器云平臺也是基于現(xiàn)實(shí)的挑戰(zhàn):
1) 受廠商影響,開發(fā)測試部署交付等環(huán)節(jié)各不相同,各Team有各異的環(huán)境、工具、方法、規(guī)范,團(tuán)隊之間難以實(shí)現(xiàn)共享和高效合作。
2) 傳統(tǒng)單體應(yīng)用各系統(tǒng)獨(dú)立,互連互通、共享難,雖有ESB可以實(shí)現(xiàn)集成,但對一些需求無法滿足性能、擴(kuò)展、低延遲、快速上線等要求。
3) 自動化測試、自動化運(yùn)維程度低;一個系統(tǒng)通常從立項(xiàng)到運(yùn)維都是由一個人來負(fù)責(zé),形成了大大小小上百個系統(tǒng),占用大量的人力資源。在系統(tǒng)出現(xiàn)異常時定位問題慢,經(jīng)常受到多個系統(tǒng)的影響,處理起來很慢。
4) 一臺PC一套環(huán)境,資源利用率低,而且PC有限;虛擬化后虛擬機(jī)OS消耗大量的計算、存儲資源;虛擬機(jī)OS實(shí)際運(yùn)維管理成本等同于物理服務(wù)器,虛擬機(jī)數(shù)量增加導(dǎo)致管理成本增加。
5) 不易復(fù)制,搭建環(huán)境麻煩。生產(chǎn)與測試環(huán)境不一致,臟環(huán)境的問題,無法保證每次運(yùn)行的環(huán)境完全一致。在測試環(huán)境可以,在生產(chǎn)環(huán)境可能怎么都不行。
6) 擴(kuò)容慢,遇到突發(fā)流量,疲于奔命;遷移慢且比較繁瑣。
7) 系統(tǒng)重載,應(yīng)用伸縮周期長,對VM做伸縮,系統(tǒng)負(fù)載大,APP的VM環(huán)境無法快速復(fù)制,無法滿足應(yīng)用的大規(guī)模快速彈性部署需求。
8) 不支持快速迭代,業(yè)務(wù)上線效率低,不支持在線應(yīng)用環(huán)境申請和配置及切換、頻繁發(fā)布、頻繁升級背后的人力投入巨大,缺少在線驗(yàn)證機(jī)制、難以快速定位修復(fù)線上問題。出現(xiàn)問題后的解決問題的手段非常有限,且低效;
4.實(shí)施容器云項(xiàng)目的原因
為了解決面臨的問題和挑戰(zhàn),重要的是在快速變化的時代生存下去,要變革,要與時俱進(jìn)。
首先要改變思想,重視IT技術(shù)投入,認(rèn)識到科學(xué)技術(shù)是第一生產(chǎn)力。已經(jīng)不能靠人海戰(zhàn)術(shù)來贏得未來。IT系統(tǒng)和平臺是業(yè)務(wù)的基礎(chǔ),可以極大的協(xié)助人來提高業(yè)務(wù)處理能力?;ヂ?lián)網(wǎng)、移動業(yè)務(wù)、物聯(lián)網(wǎng)的發(fā)展,必須靠強(qiáng)大的基礎(chǔ)設(shè)施來支撐,需要強(qiáng)大的互連互通能力、強(qiáng)大的運(yùn)算分析能力、針對性的服務(wù)能力、瞬時的響應(yīng)能力、舒適的客戶體驗(yàn)?zāi)芰Φ鹊?,這些都需要IT系統(tǒng)和平臺的支撐。
業(yè)務(wù)建立在平臺之上!沒有好的平臺就難以推出好的業(yè)務(wù)。傳統(tǒng)單體應(yīng)用彼此獨(dú)立,所采用的技術(shù)、開發(fā)語言、開發(fā)框架各不相同;數(shù)據(jù)分離,各自有自己的一套數(shù)據(jù)庫;數(shù)據(jù)冗余導(dǎo)致浪費(fèi),最重要的是數(shù)據(jù)不一致造成很多問題。數(shù)據(jù)是一個企業(yè)的核心資產(chǎn),所以企業(yè)的重要數(shù)據(jù)不能輕易放到公有云,需要建設(shè)自己的私有云平臺、建設(shè)企業(yè)內(nèi)的基礎(chǔ)設(shè)施平臺來支撐企業(yè)業(yè)務(wù)的運(yùn)行和發(fā)展。從而實(shí)現(xiàn)基礎(chǔ)設(shè)施平臺為數(shù)據(jù)和業(yè)務(wù)服務(wù);數(shù)據(jù)層建立通用數(shù)據(jù)模型,實(shí)現(xiàn)全局唯一數(shù)據(jù)源,解決數(shù)據(jù)不通、不一致、冗余等問題;業(yè)務(wù)層實(shí)現(xiàn)服務(wù)共享,在基礎(chǔ)服務(wù)的基礎(chǔ)上快速構(gòu)建業(yè)務(wù)應(yīng)用,快速部署發(fā)布投入運(yùn)營。
SOA技術(shù)的發(fā)展,微服務(wù)被大家接受并受到推崇。其解決了單體應(yīng)用系統(tǒng)大而重的問題,也很好的避免了ESB集成存在的瓶頸。其采用組件服務(wù)化、分布式的部署方式,非常貼合容器技術(shù)的特點(diǎn),小而輕量,以小拼大。
具體的,為了配合正在進(jìn)行中的客戶中心、賬戶中心、產(chǎn)品中心等的建設(shè),適應(yīng)公司互聯(lián)網(wǎng)業(yè)務(wù)發(fā)展,滿足業(yè)務(wù)應(yīng)用快速開發(fā)及迭代的需求,采用微服務(wù)架構(gòu),逐步建立標(biāo)準(zhǔn)化的開發(fā)、測試、運(yùn)維環(huán)境,形成適用于公司的DevOps(開發(fā)和運(yùn)維一體化)過程,完善開發(fā)、測試、部署、運(yùn)維監(jiān)控工具鏈,提升自主開發(fā)技術(shù)和管理水平。
5.項(xiàng)目可能帶來的好處
實(shí)現(xiàn)了共享,適應(yīng)快速的業(yè)務(wù)變化,企業(yè)能生存、能發(fā)展、員工能有高收入,為社會公眾帶來便利和利益:
1) 技術(shù)上,初步搭建容器云平臺,建立統(tǒng)一的服務(wù)托管、部署、運(yùn)維平臺,逐步建立并完善統(tǒng)一的權(quán)限管理體系、授權(quán)認(rèn)證體系、服務(wù)配置治理體系、日志收集分析體系、監(jiān)控告警預(yù)警體系等,實(shí)現(xiàn)公司內(nèi)統(tǒng)一的應(yīng)用服務(wù)部署運(yùn)維監(jiān)控生態(tài)系統(tǒng)。
2) 管理上,通過引入DevOps理念,根據(jù)公司實(shí)際逐步建立開發(fā)、測試、運(yùn)維等適合自身發(fā)展需要的流程,定義相關(guān)數(shù)據(jù)、業(yè)務(wù)、技術(shù)等標(biāo)準(zhǔn)、規(guī)范,實(shí)現(xiàn)開發(fā)、測試、生產(chǎn)環(huán)境的一致性,提升敏捷開發(fā)的能力,提升自動化運(yùn)維的水平。
3) 業(yè)務(wù)上,提供快速業(yè)務(wù)原型的開發(fā)以支持業(yè)務(wù)變化需求,讓業(yè)務(wù)人員更早的介入,熟悉使用并有效持續(xù)反饋,形成業(yè)務(wù)和開發(fā)的良性循環(huán)。
總的來說,容器輕量化PaaS平臺可以利用容器技術(shù)的特點(diǎn),其技術(shù)特點(diǎn)非常適合互聯(lián)網(wǎng)化應(yīng)用的快速迭代開發(fā)、彈性伸縮部署、基于標(biāo)簽體系的灰度發(fā)布機(jī)制等需求。我們同時考慮采用目前分布式的微服務(wù)架構(gòu),結(jié)合容器云平臺,實(shí)現(xiàn)提高開發(fā)端的響應(yīng)能力,自主開發(fā);統(tǒng)一技術(shù)路線,逐步實(shí)現(xiàn)技術(shù)積累和共享;實(shí)現(xiàn)持續(xù)集成,開發(fā)測試與生產(chǎn)環(huán)境一致;持續(xù)部署能力,提高發(fā)布速度;實(shí)現(xiàn)彈性伸縮能力,快速的實(shí)現(xiàn)擴(kuò)容和縮容;解放運(yùn)維、實(shí)行自動化運(yùn)維等以滿足公司互聯(lián)網(wǎng)應(yīng)用業(yè)務(wù)發(fā)展的需要以及傳統(tǒng)應(yīng)用改造和集成的需求。
6.行業(yè)內(nèi)應(yīng)用情況現(xiàn)狀調(diào)查及趨勢預(yù)測--市場調(diào)研
目前公司的業(yè)務(wù)系統(tǒng)開發(fā)、測試、部署及運(yùn)維還以傳統(tǒng)模式為主,開發(fā)人員在應(yīng)用開發(fā)測試及部署階段還需要準(zhǔn)備操作系統(tǒng)、中間件、Web服務(wù)等軟件運(yùn)行環(huán)境并進(jìn)行配置,業(yè)務(wù)應(yīng)用的上線及變更周期較長,不能滿足近幾年興起的互聯(lián)網(wǎng)化應(yīng)用所要求的快速、彈性、敏捷要求,缺少整合、高效的基礎(chǔ)平臺支持。
為此,項(xiàng)目組對行業(yè)內(nèi)容器云的建設(shè)情況進(jìn)行了廣泛調(diào)研。
國內(nèi)銀行采用容器云技術(shù)的相對比較多,證券公司目前大多數(shù)還在調(diào)研和PoC測試階段。也有幾家已應(yīng)用到生產(chǎn)環(huán)境。
某證券從2013年開始研究容器技術(shù),2014年嘗試在生產(chǎn)環(huán)境使用,2015年開始大規(guī)模使用,根據(jù)2017年現(xiàn)場調(diào)研情況,某證券在生產(chǎn)環(huán)境使用的容器實(shí)例個數(shù)行情云4000多個容器實(shí)例,分布在6個機(jī)房。承載實(shí)時并發(fā)超過30萬,整個行情云每秒的吞吐在1.5Gbps左右,服務(wù)客戶超過200萬;
上海證交所也已實(shí)施容器云平臺,自身從頂層規(guī)劃,多廠商參與,應(yīng)用采用微服務(wù)架構(gòu),平臺實(shí)現(xiàn)了容器云、持續(xù)集成持續(xù)部署等,并獲得了2016“開源云計算﹒實(shí)效應(yīng)用”獎。
某證券在測試環(huán)境和生產(chǎn)環(huán)境部署了超過360個容器實(shí)例,應(yīng)用在用戶中心——某e賬通、任務(wù)中心流數(shù)據(jù)處理、支付中心——某內(nèi)部支付服務(wù)等業(yè)務(wù)場景。
某證券容器技術(shù)主要使用在應(yīng)用開發(fā)持續(xù)集成流程方面,實(shí)現(xiàn)自己的研發(fā)流程平臺,目前在開發(fā)測試環(huán)境部署有上百容器,20多個項(xiàng)目開發(fā)及測試流程。
7.建設(shè)目標(biāo)
容器云的建設(shè)目標(biāo)是建設(shè)一個以容器技術(shù)為基礎(chǔ),支持微服務(wù)架構(gòu)應(yīng)用軟件運(yùn)行的基礎(chǔ)平臺,以降低應(yīng)用開發(fā)、測試、部署和運(yùn)維過程中軟件基礎(chǔ)環(huán)境的復(fù)雜度,使開發(fā)人員更關(guān)注業(yè)務(wù)實(shí)現(xiàn),提高開發(fā)、測試、運(yùn)維效率,提升技術(shù)對業(yè)務(wù)需求的相應(yīng)速度。
容器云的建設(shè)以服務(wù)應(yīng)用開發(fā)為中心,將業(yè)務(wù)應(yīng)用中的功能性需求如高可用、彈性伸縮、灰度發(fā)布、監(jiān)控告警、日志存儲等,通過容器云平臺統(tǒng)一實(shí)現(xiàn),并解決應(yīng)用全生命周期管理、中間件云服務(wù)、基礎(chǔ)資源利用率等問題,從而降低基礎(chǔ)設(shè)施的投入,容器云平臺主要對應(yīng)用開發(fā)及運(yùn)維提供以下支持:
? 開發(fā)環(huán)境支持:即開發(fā)人員使用提容器云平臺供的快速部署能力,建立開發(fā)應(yīng)用所需的技術(shù)環(huán)境、編程語言框架、中間件服務(wù)等,實(shí)現(xiàn)開發(fā)環(huán)境的快速準(zhǔn)備。
? 應(yīng)用部署服務(wù):即開發(fā)人員創(chuàng)建的應(yīng)用可通過鏡像方式快速部署到容器云上,在測試環(huán)境和生產(chǎn)環(huán)境實(shí)現(xiàn)應(yīng)用快速部署及更新。
? 微服務(wù)架構(gòu)支持:提供微服務(wù)應(yīng)用的應(yīng)用注冊中心、日志中心、監(jiān)控中心、容器調(diào)度及編排服務(wù),為客戶中心、服務(wù)中心等這類按照微服務(wù)架構(gòu)開發(fā)的應(yīng)用提供基礎(chǔ)環(huán)境支持。
應(yīng)用運(yùn)維支持:應(yīng)用運(yùn)維人員無需管理底層硬件資源、操作系統(tǒng)及中間件等,可以按照統(tǒng)一的鏡像方式部署和變更應(yīng)用,大幅降低應(yīng)用運(yùn)維的復(fù)雜度,逐步實(shí)現(xiàn)應(yīng)用運(yùn)維管理(伸縮、配置、升級等)自動化。
我司容器云平臺建設(shè)的基本目標(biāo)是:提供應(yīng)用托管、應(yīng)用運(yùn)維的統(tǒng)一平臺,通過容器云提供的配置中心、注冊發(fā)現(xiàn)中心、日志中心、監(jiān)控告警中心等為所有業(yè)務(wù)應(yīng)用提供基礎(chǔ)服務(wù),研發(fā)人員專注于業(yè)務(wù)應(yīng)用的研發(fā)而不用關(guān)注應(yīng)用的部署和運(yùn)維?;谠朴嬎愕亩嘧鈶趔w系和權(quán)限管理體系,可以很好的實(shí)現(xiàn)應(yīng)用之間的隔離,提供安全的訪問控制體系。
以建設(shè)容器化PaaS平臺為契機(jī),搭建基礎(chǔ)的統(tǒng)一監(jiān)控、告警、日志、配置、認(rèn)證、API管理等服務(wù)能力,同時結(jié)合大數(shù)據(jù)平臺建設(shè),預(yù)研機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等人工智能應(yīng)用場景,融合各系統(tǒng)的優(yōu)點(diǎn)和能力,避免各個系統(tǒng)的獨(dú)立建設(shè)導(dǎo)致的系統(tǒng)隔離、數(shù)據(jù)分散、數(shù)據(jù)冗余、數(shù)據(jù)不一致等問題,逐步建設(shè)形成統(tǒng)一認(rèn)證中心、監(jiān)控告警中心、服務(wù)注冊中心、服務(wù)配置中心、日志管理中心、API網(wǎng)關(guān)和API管理等能力。
8.PoC測試情況分析--廠家評估
項(xiàng)目組根據(jù)前期調(diào)研和國內(nèi)容器云產(chǎn)品廠商的技術(shù)能力和項(xiàng)目實(shí)施情況,選取了A、B、C、D、E、F、G七家廠商的產(chǎn)品進(jìn)行了PoC測試,目前測試已經(jīng)完成,我們選擇了以下幾個方面作為評估維度:
? 多租戶:考察租戶隔離能力,對組織架構(gòu)、用戶、權(quán)限、角色的支持能力。
? 資源管理:集群、主機(jī)、計算、存儲、網(wǎng)絡(luò)資源的管理分配能力。
? DevOps:敏捷研發(fā)運(yùn)維的能力。持續(xù)集成、持續(xù)部署能力。
? 應(yīng)用管理:包括應(yīng)用發(fā)布(灰度發(fā)布)、部署、應(yīng)用模板、彈性伸縮、應(yīng)用運(yùn)維、服務(wù)、實(shí)例、Pods、容器等管理功能。
? 微服務(wù)支持:包括支持的微服務(wù)框架、服務(wù)編排、服務(wù)治理能力等。
? 鏡像倉庫/中間件支持:鏡像倉庫能力和公用中間件支持能力。
? 基礎(chǔ)組件:日志、監(jiān)控、調(diào)度、權(quán)限、健康檢查等基礎(chǔ)組件的能力。
? 易用性:操作、理解的便捷程度。主要是考慮客戶使用體驗(yàn)。包括安裝配置、部署操作、更新升級、高可用等。命名定義是否貼切、操作是否便利、配置是否復(fù)雜化、是否符合人的習(xí)慣等。
? 廠商情況:背景、技術(shù)實(shí)力、運(yùn)維支持、項(xiàng)目經(jīng)驗(yàn)等。
根據(jù)評估綜合結(jié)果來選擇進(jìn)入招標(biāo)階段廠商。
9.實(shí)施規(guī)劃
按照試點(diǎn)先行、分步推進(jìn)的原則,容器云平臺建設(shè)計劃分為兩個階段:
第一階段:容器云基礎(chǔ)平臺建設(shè)。部署容器引擎和容器管理調(diào)度系統(tǒng),支持客戶中心、服務(wù)中心系統(tǒng)的上線部署,為客戶中心、賬戶中心、產(chǎn)品中心等應(yīng)用和用到的中間件服務(wù)提供托管和運(yùn)行管理平臺;同步搭建微服務(wù)架構(gòu)支撐體系,建立服務(wù)配置中心、服務(wù)注冊中心、服務(wù)日志處理中心、服務(wù)監(jiān)控告警中心等組件,以更好的支持服務(wù)運(yùn)維要求?;谖⒎?wù)架構(gòu)設(shè)計的服務(wù)可以很好的跟容器云結(jié)合,實(shí)現(xiàn)服務(wù)的彈性伸縮、灰度發(fā)布、路由配置、熔斷保護(hù)、應(yīng)用監(jiān)控等能力。同時嘗試在容器云平臺提供公共的中間件服務(wù),如負(fù)載均衡服務(wù)、消息中間件服務(wù)、Redis緩存集群服務(wù)、應(yīng)用服務(wù)器服務(wù)等。第一階段預(yù)計工期N個月。
第二階段:已有服務(wù)開發(fā)遷移及DevOps流程實(shí)現(xiàn)階段。本階段遷移部分適合容器化部署的部分已有應(yīng)用如企業(yè)服務(wù)總線、大數(shù)據(jù)應(yīng)用、OTC、產(chǎn)品中心等,使上述業(yè)務(wù)應(yīng)用具備彈性伸縮能力以及日志收集、日志分析、監(jiān)控告警等運(yùn)維能力;實(shí)現(xiàn)開發(fā)、測試、生產(chǎn)環(huán)境的一致性,完成持續(xù)集成、持續(xù)發(fā)布流程和標(biāo)準(zhǔn)規(guī)范,逐步形成適合公司自身的DevOps體系并持續(xù)改進(jìn),并逐步推廣到其他團(tuán)隊。預(yù)計工期N個月。
二、容器云項(xiàng)目本期工程實(shí)施的預(yù)期具體應(yīng)用效果
前面我們提到,容器云項(xiàng)目實(shí)施采用試點(diǎn)先行、分步實(shí)施的方式,第一階段先建設(shè)容器云基礎(chǔ)平臺,并同步支持微服務(wù)架構(gòu)的應(yīng)用。第二階段實(shí)現(xiàn)DevOps持續(xù)集成、持續(xù)部署、持續(xù)反饋閉環(huán)流程,完成整個工具鏈選擇和集成,同時遷移已有的服務(wù)化應(yīng)用,以及需要改造的單體應(yīng)用等。這些工作完成之后,將對企業(yè)、IT系統(tǒng)建設(shè)、運(yùn)維和開發(fā)人員帶來極大收益。
1.對于企業(yè)的價值
容器云是基礎(chǔ)設(shè)施平臺,就像我們建樓房的地基,樓房結(jié)不結(jié)實(shí)、抗不抗震,地基是關(guān)鍵。對企業(yè)來說,建設(shè)一套企業(yè)應(yīng)用系統(tǒng)的開發(fā)運(yùn)維基礎(chǔ)設(shè)施平臺,將是企業(yè)實(shí)現(xiàn)敏捷應(yīng)用開發(fā)和快速業(yè)務(wù)響應(yīng)的基礎(chǔ)。
傳統(tǒng)單體應(yīng)用的開發(fā)周期基本上都是以半年、年來計算,采用SOA/ESB集成服務(wù)化之后,受制于ESB的設(shè)計思想,雖然可以提高響應(yīng)能力,將應(yīng)用功能解耦合,縮短應(yīng)用開發(fā)周期為月、周甚至天,但性能和低延遲方面常常無法滿足需求。ESB是基于系統(tǒng)的集成,受制于底層各系統(tǒng)的能力,無法自由擴(kuò)展。微服務(wù)架構(gòu)強(qiáng)調(diào)組件從下到上的服務(wù)化,對應(yīng)用系統(tǒng)做徹底的改造,實(shí)現(xiàn)應(yīng)用系統(tǒng)微服務(wù)化。容器云平臺為微服務(wù)應(yīng)用提供環(huán)境,可以方便的建設(shè)企業(yè)的服務(wù)中臺。這是一個企業(yè)的關(guān)鍵能力。有了服務(wù)中臺,才能真正的實(shí)現(xiàn)快速的業(yè)務(wù)響應(yīng)能力和應(yīng)用快速構(gòu)建部署運(yùn)營能力。
容器云彈性伸縮能力,讓基礎(chǔ)的、共用的組件可以真正的解耦出來,不再受制于單臺機(jī)器資源的限制,可以支撐整個企業(yè)的需求。比如日志中心,就可以實(shí)現(xiàn)整個公司所有應(yīng)用系統(tǒng)、應(yīng)用服務(wù)的日志的歸集、分析。容器云多租戶能力有可以很好的滿足不同業(yè)務(wù)、不同部門或團(tuán)隊的隔離需求。
有了這些能力,在響應(yīng)業(yè)務(wù)需求時,將只專注于業(yè)務(wù)的實(shí)現(xiàn),不再考慮平臺、存儲、框架等,服務(wù)中臺的服務(wù)組合和編排可以迅速的實(shí)現(xiàn)業(yè)務(wù)服務(wù),使業(yè)務(wù)人員能抓住業(yè)務(wù)時機(jī),及時為客戶提供合適業(yè)務(wù)服務(wù),留住老客戶,贏得新客戶。
2.對于IT系統(tǒng)的好處
在建設(shè)容器云之后,我們關(guān)注的將是一個個業(yè)務(wù)應(yīng)用,不再是一個個IT系統(tǒng)。所有的業(yè)務(wù)應(yīng)用構(gòu)成一個企業(yè)級的IT系統(tǒng),是一個整體,一個生態(tài)系統(tǒng)。公共的服務(wù)、公共的組件是共享的,不再有重復(fù)的建設(shè)。比如日志,傳統(tǒng)單體應(yīng)用每個系統(tǒng)都需要有日志模塊,導(dǎo)致重復(fù)和冗余,也造成很多的不一致和數(shù)據(jù)隔離,給綜合的長期的業(yè)務(wù)分析造成麻煩?;谌萜髟频腎T生態(tài)系統(tǒng),只有一套日志組件服務(wù),它可能有很多個日志服務(wù)實(shí)例,基于分布式部署在容器云平臺。其他組件服務(wù)和業(yè)務(wù)應(yīng)用服務(wù)也是一樣。比如消息服務(wù),為整個企業(yè)提供消息的發(fā)布、訂閱提供支持,對接不同的渠道,如手機(jī)App、微信、短信、網(wǎng)站應(yīng)用等。任何一個業(yè)務(wù)應(yīng)用或者新的業(yè)務(wù)需求需要用到消息服務(wù),直接就可以通過消息服務(wù)API實(shí)現(xiàn)快速集成,不用再開發(fā)自己的消息服務(wù)。這將節(jié)省大量的工作量,從而提高響應(yīng)速度和節(jié)約成本。
3.對于運(yùn)維人員的好處
采用容器云平臺之后,運(yùn)維人員職責(zé)可能劃分為資源運(yùn)維和應(yīng)用運(yùn)維。資源運(yùn)維人員專注于IT基礎(chǔ)設(shè)施資源的運(yùn)營維護(hù),為應(yīng)用服務(wù)提供計算、存儲、網(wǎng)絡(luò)等資源。應(yīng)用運(yùn)維人員也可能由應(yīng)用開發(fā)人員兼任,實(shí)現(xiàn)業(yè)務(wù)應(yīng)用的自動化運(yùn)維監(jiān)控。健康檢查、日志、監(jiān)控、告警、反饋?zhàn)詣踊Mㄟ^自動化流程和工具來解放運(yùn)維,幫助快速定位異常、快速反饋、快速的解決問題。
這樣各司其職,資源運(yùn)維人員不會因?yàn)閼?yīng)用的缺陷被抱怨,應(yīng)用運(yùn)維人員對自己開發(fā)的業(yè)務(wù)應(yīng)用熟悉,又可利用自身的技術(shù)能力選擇、開發(fā)合適的運(yùn)維工具來支持應(yīng)用運(yùn)維。
4.對研發(fā)人員的好處
容器云平臺為研發(fā)人員提供了持續(xù)集成的平臺和一致性的環(huán)境,不用再花時間去搭建基礎(chǔ)開發(fā)環(huán)境、測試環(huán)境,可能幾天的準(zhǔn)備工作可以在分鐘級內(nèi)完成。開發(fā)人員可以專注于業(yè)務(wù)應(yīng)用的開發(fā),不用考慮底層數(shù)據(jù)的存儲、模型、系統(tǒng)的架構(gòu)、部署方式等等,只需要考慮如何使用服務(wù)中臺的服務(wù)來構(gòu)建業(yè)務(wù)應(yīng)用。不但簡化了開發(fā)、提高了對業(yè)務(wù)響應(yīng)能力,而且標(biāo)準(zhǔn)化、規(guī)范化、一致性的接口服務(wù)對普通開發(fā)人員的能力要求降低,學(xué)習(xí)成本減少。
三、重大風(fēng)險揭示與管理
風(fēng)險總是無處不在。容器云有諸多好處,但采用和實(shí)施容器云也存在不少風(fēng)險。容器技術(shù)是新興開源技術(shù),發(fā)展變化快,首先存在技術(shù)風(fēng)險。發(fā)展變化快意味著很多人可能跟不上技術(shù)的變化,技能和經(jīng)驗(yàn)不足,缺乏深入的認(rèn)知。這是人力風(fēng)險。對于新的開源技術(shù),企業(yè)往往認(rèn)識和投入不足,缺乏好的實(shí)踐案例,從技術(shù)成熟到真正落地,往往需要一到幾年的時間。
1. 技術(shù)風(fēng)險
容器技術(shù)出現(xiàn)也就短短幾年時間,仍在不斷的發(fā)展變化。開源的技術(shù)容易凝聚大家的智慧,但同時也由于考慮問題的角度不同,也造成開源技術(shù)的大雜燴,為技術(shù)選型帶來紛擾。
去年我們考慮采用容器技術(shù)并開始選型時,面臨著Mesos、Docker Swarm、Kubernetes等容器調(diào)度管理框架的選擇。但等我們完成PoC測試、Mesos和Docker Swarm已經(jīng)沒落,國內(nèi)所有的容器廠商都轉(zhuǎn)向Kubernetes??焖俚募夹g(shù)變化,為項(xiàng)目的選型和建設(shè)帶來一些問題。錯誤的選型可能為后期的運(yùn)維帶來難題。
容器技術(shù)是開源技術(shù),開源社區(qū)和商業(yè)企業(yè)關(guān)注點(diǎn)不同,社區(qū)開源版本相對于商業(yè)企業(yè)版本往往缺乏強(qiáng)力的支持。
容器云技術(shù)又涉及眾多的組件,眾多的技術(shù),不僅僅是Docker + Kubernetes,網(wǎng)絡(luò)、存儲、日志、監(jiān)控、安全、微服務(wù)等等,要想一下子全部掌握很難,存在技術(shù)風(fēng)險。
2. 人力風(fēng)險
容器云是一個基礎(chǔ)設(shè)施平臺,需要相應(yīng)的基礎(chǔ)組件服務(wù)支撐才能真正的實(shí)現(xiàn)輕量化PaaS,如果僅僅是Docker + Kubernetes,其不足以支撐企業(yè)的業(yè)務(wù)應(yīng)用開發(fā)和運(yùn)維等需求。但目前國內(nèi)整個一個容器云市場的認(rèn)識還大多停留在Docker + Kubernetes,甚至把Kubernetes等同于容器云。認(rèn)知和技術(shù)的不成熟可能是容器云建設(shè)失敗的主要原因。
人員技能和經(jīng)驗(yàn)不足,使容器云項(xiàng)目實(shí)施存在諸多變量。大部分人都是一知半解,缺少實(shí)踐經(jīng)驗(yàn)。在實(shí)際的項(xiàng)目中,如果沒有一個在過往經(jīng)驗(yàn)上、技術(shù)上和管理上掌控全局的人員,容器云項(xiàng)目是不會成功的。
IT項(xiàng)目上,人是大的不可控因素。項(xiàng)目人員的技能是否匹配、主觀能動性能否發(fā)揮、責(zé)任心是否具備、人員的流動、對項(xiàng)目的理解、認(rèn)知、把控是否到位等等都影響著項(xiàng)目的質(zhì)量。
3. 資金投入不足風(fēng)險
目前大部分企業(yè)對新技術(shù)存在懷疑,投入與支持不足。很多企業(yè)都是在做PoC測試驗(yàn)證,或者實(shí)施一個小項(xiàng)目做個試點(diǎn)。這限制了容器云基礎(chǔ)設(shè)施平臺的完整搭建,也無法真正體現(xiàn)出容器云平臺的優(yōu)勢。只有在有一定規(guī)模的基礎(chǔ)上,實(shí)現(xiàn)了或者部分實(shí)現(xiàn)了服務(wù)中臺的能力,才能真正表現(xiàn)出其價值和能力。
4. 如何避免這些風(fēng)險
為避免上述風(fēng)險,我司建議采用購買或者合作研發(fā)容器云產(chǎn)品的方式來實(shí)施容器云項(xiàng)目。我們可以提供產(chǎn)品研發(fā)的詳細(xì)需求、使用場景、架構(gòu)設(shè)計和詳細(xì)設(shè)計,支持容器云廠商基于這些需求、場景、設(shè)計來實(shí)現(xiàn),如果最終產(chǎn)品滿足要求則進(jìn)入招標(biāo)候選廠商。這樣對容器云廠商來說是一個完善產(chǎn)品,同行的機(jī)會,對我司來說,可以避免一定的風(fēng)險和節(jié)省成本。
1) 產(chǎn)品要求
我們要求廠商提供的產(chǎn)品能基本滿足我們的需求,對于不滿足的部分在后期必須實(shí)現(xiàn)并交付使用。對于我們在使用過程中可能需要做一些定制化更改需求,可以友好協(xié)商,支付一定的額外報酬,后續(xù)分期完善。對產(chǎn)品的缺陷,要及時修正,不能影響到我們業(yè)務(wù)的正常運(yùn)行。對于超出能力不能及時修復(fù)的缺陷,要找到相應(yīng)的解決辦法。另外要求產(chǎn)品各組件之間是松耦合的架構(gòu),方便更新替換。
2) 產(chǎn)品安裝、部署、升級、遷移
容器技術(shù)屬于新興技術(shù),雖然已經(jīng)逐步成熟,但仍在迅速發(fā)展變化之中,各種組件不斷的涌現(xiàn),所以我們要求產(chǎn)品必須能支持不同系統(tǒng)平臺之上的安裝、部署,支持物理機(jī)、虛擬機(jī)等系統(tǒng);容器云容器引擎及容器管理調(diào)度系統(tǒng)能夠及時的提供無縫升級、遷移能力;提供升級、遷移預(yù)案,識別潛在風(fēng)險并能規(guī)避這些風(fēng)險。
3) 后期需求及新特性開發(fā),定制開發(fā)
產(chǎn)品不可能滿足我們所有需求,因此在我們使用一段時候后會根據(jù)各團(tuán)隊使用情況的反饋意見提出新的修改及新特性的需求。對于非缺陷性的新功能需求,我們可以基于協(xié)商的基礎(chǔ)上支付一定的合理的研發(fā)費(fèi)用。
4) 技術(shù)支持
產(chǎn)品使用初期可能需要提供現(xiàn)場服務(wù)支持,后期可提供遠(yuǎn)程服務(wù)支持。在產(chǎn)品使用過程中如果有重大缺陷引起的重大事故,廠商必須安排技術(shù)人員在2小時內(nèi)達(dá)到現(xiàn)場解決問題。并需要在24小時內(nèi)修復(fù)缺陷,完成部署。
5) 高可用要求
對于產(chǎn)品的關(guān)鍵組件實(shí)現(xiàn)高可用部署,同時提供潛在風(fēng)險點(diǎn)的備份機(jī)制。
支持平臺控制節(jié)點(diǎn)高可用;
支持應(yīng)用服務(wù)高可用部署;
支持鏡像倉庫高可用;
支持負(fù)載均衡高可用;
平臺控制節(jié)點(diǎn)宕機(jī)不能影響容器中服務(wù)的正常運(yùn)行
四、預(yù)算評估
本項(xiàng)目預(yù)算XX萬元,用于購置服務(wù)器硬件、容器云軟件產(chǎn)品授權(quán)及實(shí)施服務(wù),詳見下表:
如前所述,我們建議選擇相對成熟的產(chǎn)品,避免項(xiàng)目形式交付,人是大的變量,大的不可控因素,所以盡可能減少人的變量,減小風(fēng)險,從而使成本可控。
經(jīng)過2次詢價和多次溝通交流,容器云產(chǎn)品軟件一套約XX萬元,另外按節(jié)點(diǎn)數(shù)量產(chǎn)生授權(quán)使用費(fèi)用,每節(jié)點(diǎn)約XX萬元,根據(jù)節(jié)點(diǎn)數(shù)的量提供一定的折扣比例。容器云產(chǎn)品部署、配置、測試、調(diào)試等實(shí)施費(fèi)用約XX萬元。服務(wù)器硬件根據(jù)應(yīng)用部署需求確定,目前需要X臺PC服務(wù)器,XXXG內(nèi)存和XX顆Xeon 6150 CPU,以及硬盤、網(wǎng)卡等(如上表)。容器云廠商后期服務(wù)費(fèi)首年免費(fèi),后期約按項(xiàng)目總額的10%-20%收取。經(jīng)過總的測算,以目前的需求,實(shí)施容器云項(xiàng)目總預(yù)算包含軟硬件、實(shí)施和3年維保服務(wù)大概在XX萬。不同的廠商價格會有差別。
五、關(guān)鍵技術(shù)路線選型
在規(guī)劃容器云項(xiàng)目的時候面對多個技術(shù)路線選擇,首先是容器引擎技術(shù),容器編排調(diào)度技術(shù)、微服務(wù)框架等。
1. 容器引擎
容器引擎技術(shù)主要有Docker公司的docker引擎和CentOs的rkt引擎,rkt理論上在安全性和兼容性方面更好,但缺乏生產(chǎn)實(shí)踐,目前用戶大部分使用Docker。Docker社區(qū)也更活躍,這可能跟Docker發(fā)布比較早和參與的人更多有關(guān)。目前大部分容器廠商都選Docker支持,rkt的成熟度仍顯不足,因此容器引擎我們選擇Docker引擎。
2. 容器編排調(diào)度框架
容器編排調(diào)度框架主要有Mesos、Docker Swarm、Kubernetes、Openshift等。
Docker Swarm簡單易用。原生支持Docker,安裝Docker后開啟Swarm模式即可使用。比較適合小型的集群管理。
Kubernetes除支持主流Docker容器(需單獨(dú)安裝Docker組件)以外也支持CoreOS rkt等容器技術(shù),目前社區(qū)最活躍,受廠商支持也最多,基本上所有的容器云廠商都已轉(zhuǎn)向支持Kubernetes。
Mesos上無需安裝docker程序也可以運(yùn)行docker容器,mesos可以自己解析docker鏡像來啟動容器。Mesos應(yīng)該來說更成熟,Kubernetes已經(jīng)測試了數(shù)千個節(jié)點(diǎn),而Mesos已經(jīng)測試了成千上萬的節(jié)點(diǎn)。Mesos社區(qū)不再活躍,對超大集群的支持Mesos更合適。
Openshift是Redhat基于Docker和Kubernetes之上做了封裝的開源容器應(yīng)用平臺。RedHat增加了很多新的特性以支持應(yīng)用的快速開發(fā)、部署、擴(kuò)展等生命周期管理能力。Openshift的實(shí)施一般是由RedHat合作伙伴執(zhí)行。合作伙伴的能力決定著項(xiàng)目的質(zhì)量。
考慮到技術(shù)的快速變化,為了后期升級維護(hù)的需要,適合選擇社區(qū)活躍、支持度高的容器編排調(diào)度框架,綜合考慮,Kubernetes或者Openshift是目前比較好的選擇。
3. 微服務(wù)框架
目前比較流行的微服務(wù)框架是SpringCloud和Dubbo。SpringCloud是Pivotal公司基于SpringBoot框架的基礎(chǔ)上推出的微服務(wù)開發(fā)開源框架,它提供相對完善的服務(wù)配置、注冊發(fā)現(xiàn)、服務(wù)網(wǎng)關(guān)、服務(wù)消息總線、熔斷、日志收集等能力。Dubbo是阿里公司的開源產(chǎn)品,相對簡單,國內(nèi)用的較多,但中斷了一段時間維護(hù),缺乏Pivotal公司系統(tǒng)的支持能力。阿里的產(chǎn)品總的來說是阿里自身需求的結(jié)果,所以往往缺乏標(biāo)準(zhǔn)化規(guī)范化的考慮,只是為了追求某方面的性能。綜合來看,選擇SpringCloud來開發(fā)微服務(wù)是比較好的選擇。
六、可行性評估結(jié)果及建議
基于以上的分析評估,我們建議可以盡快采用容器云技術(shù)實(shí)施容器云。以盡快搭建公司私有容器云基礎(chǔ)設(shè)施平臺,建設(shè)持續(xù)集成、持續(xù)部署、持續(xù)反饋的閉環(huán)應(yīng)用研發(fā)流程。提升公司自主研發(fā)能力,提高對業(yè)務(wù)需求的響應(yīng)能力。采用購買產(chǎn)品的方式來建設(shè)公司容器云平臺,避免項(xiàng)目周期長帶來的技術(shù)風(fēng)險和人力風(fēng)險。
分享題目:容器云平臺如何進(jìn)行風(fēng)險管理和關(guān)鍵技術(shù)路線選型?
文章位置:http://www.rwnh.cn/news19/201469.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、外貿(mào)建站、網(wǎng)站排名、商城網(wǎng)站、App設(shè)計、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容