劉林和 鐘聲振 張宇 吳衛(wèi)民 溫海欣 黃小邦 許仁興
摘 要:文章介紹了一種服務(wù)持續(xù)開發(fā)、持續(xù)集成、自動化部署、運維的技術(shù)平臺,該平臺可為各應(yīng)用系統(tǒng)提供研發(fā)、運行的技術(shù)底座,助力各應(yīng)用系統(tǒng)在資源使用率提升、資源彈性伸縮供給、應(yīng)用敏捷開發(fā)與自動化部署交付等方面帶來明顯改善,實現(xiàn)降本增效。
關(guān)鍵詞:容器云;敏捷開發(fā);資源共享
0 引言
相比實現(xiàn)系統(tǒng)級別虛擬化的傳統(tǒng)虛擬機以分鐘為單位的啟動速度,技術(shù)平臺基于輕量級LXC(Linux Containers)的Docker容器實現(xiàn)進程級別的虛擬化,可實現(xiàn)秒級啟動。同時一臺主機上可同時運行數(shù)千個Docker容器。除了其中運行應(yīng)用的資源外,基本不需要消耗額外的系統(tǒng)資源,使得應(yīng)用的性能很高,同時系統(tǒng)的開銷很小。同時,技術(shù)平臺具備高密度應(yīng)用部署能力與高彈性應(yīng)用擴展特性。
1 技術(shù)平臺的架構(gòu)設(shè)計
技術(shù)平臺的架構(gòu)主要包括容器云、中間件、工具鏈、微服務(wù)治理四大模塊,面向應(yīng)用系統(tǒng)提供常用中間件與微服務(wù)治理能力,打造從“需求-設(shè)計-編碼-構(gòu)建-測試-部署-發(fā)布”的端到端研發(fā)工具鏈,及資源彈性伸縮、常見中間件與微服務(wù)治理、研發(fā)工具鏈支持等PaaS服務(wù)。
技術(shù)平臺容器云功能模塊基于原生 Kubernetes ,提供以容器為核心的、高度可擴展的高性能容器管理服務(wù)。技術(shù)平臺容器云服務(wù)完全兼容原生 Kubernetes API ,為容器化的應(yīng)用提供高效部署、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動態(tài)伸縮等一系列完整功能,解決應(yīng)用開發(fā)、測試及運維過程的環(huán)境一致性問題,提高了大規(guī)模容器集群管理的便捷性,幫助用戶降低成本,提高效率。技術(shù)平臺容器服務(wù)提供集群和服務(wù)兩個層級的彈性伸縮能力, 能夠根據(jù)業(yè)務(wù)運行情況,監(jiān)控容器的 CPU、內(nèi)存、帶寬等指標(biāo)進行自動擴縮服務(wù),同時可以根據(jù)容器的部署情況,在容器不夠資源分配,或者有過多剩余資源的情況下自動伸縮集群。
技術(shù)平臺中間件功能模塊根據(jù)公司各系統(tǒng)中間件配置使用規(guī)模及典型互聯(lián)網(wǎng)類系統(tǒng)建設(shè)所需技術(shù)組件,以云服務(wù)方式為各業(yè)務(wù)線統(tǒng)一提供消息類、應(yīng)用服務(wù)、數(shù)據(jù)庫服務(wù)(緩存、關(guān)系數(shù)據(jù)庫)等中間件,避免重復(fù)建設(shè)。實現(xiàn)界面化一鍵快捷部署,部署第三方組件的時間由6小時以上縮短至10分鐘以內(nèi)。
技術(shù)平臺微服務(wù)架構(gòu)功能模塊以云服務(wù)方式為各業(yè)務(wù)線統(tǒng)一提供注冊中心、配置中心、熔斷監(jiān)控、熔斷降級、服務(wù)調(diào)用鏈、分布式事務(wù)等微服務(wù)治理組件,避免重復(fù)建設(shè)。實現(xiàn)統(tǒng)一的全鏈路微服務(wù)治理管控中心。適用于構(gòu)建復(fù)雜的應(yīng)用,將單體式應(yīng)用從不同緯度拆分成多個微服務(wù),每個微服務(wù)的內(nèi)容使用一個鏡像管理。在功能不變的情況,應(yīng)用拆分成了多個可管理的服務(wù),每個單體的服務(wù)容易理解、開發(fā)和維護。
技術(shù)平臺DevOps工具鏈功能模塊為持續(xù)集成與持續(xù)交付提供了優(yōu)秀的 DevOps 環(huán)境,可極大提高軟件的發(fā)布效率。持續(xù)集成強調(diào)開發(fā)人員提交了新代碼之后,立刻進行構(gòu)建、(單元)測試,便于確定新代碼和原有代碼能否正確地打包集成在一起。持續(xù)交付在持續(xù)集成的基礎(chǔ)上,將集成的代碼部署到預(yù)發(fā)布環(huán)境和現(xiàn)網(wǎng)環(huán)境上。
2 技術(shù)平臺的的優(yōu)勢及其技術(shù)原理
1)、切合微服務(wù)架構(gòu)部署特性,更易于微服務(wù)應(yīng)用的實現(xiàn),提升業(yè)務(wù)擴展性
微服務(wù)采用一組服務(wù)的方式來構(gòu)建一個應(yīng)用,服務(wù)獨立部署在不同的進程中。微服務(wù)通常具有相互獨立、原子化、松耦合結(jié)構(gòu)等特點。技術(shù)平臺通過容器云的獨立、輕量和快速編排等特性很好地滿足了微服務(wù)架構(gòu)的良好實現(xiàn)。
2)、像搭積木一樣的進行資源編排,輕易實現(xiàn)負載均衡、彈性伸縮、日志監(jiān)控、滾動升級等高級能力
在技術(shù)平臺容器云中,調(diào)度的最小顆粒不是單純的容器,而是抽象成一個Pod。Pod是一個可以被創(chuàng)建、銷毀、調(diào)度、管理的最小部署單元。所有容器運行在Pod當(dāng)中,一個Pod中可以運行一個或一組容器。技術(shù)平臺通過對Pod的編排和管理,實現(xiàn)了負載均衡,全自動/半自動彈性伸縮,日志監(jiān)控,滾動升級等高級能力,從而實現(xiàn)高效的自動化管理。相比以往大量的管理和修改工作,所有的修改都以增量的方式被分發(fā)和更新。
3)、強大的多平臺兼容特性,易于擴展和遷移
技術(shù)平臺的Docker容器幾乎可以在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、個人電腦、服務(wù)器等。這種兼容性可以讓用戶把一個應(yīng)用程序從一個平臺直接遷移到另外一個。容器云的這種特性類似于Java的JVM,Java程序可以運行在任意的安裝了JVM的設(shè)備上,在遷移和擴展方面變得更加容易。
4)、標(biāo)準(zhǔn)化的研運一體化流程,實現(xiàn)更快速的交付和部署
技術(shù)平臺為研發(fā)與運維團隊從開發(fā)到部署提供一套標(biāo)準(zhǔn)化流程,研發(fā)人員可以使用一個標(biāo)準(zhǔn)的鏡像來構(gòu)建一套開發(fā)環(huán)境,開發(fā)完成之后,運維人員可以直接使用這個鏡像來部署運行。整個交付到部署過程可通過對鏡像的跟蹤,實現(xiàn)全流程可見,降低研發(fā)與運維交流成本,實現(xiàn)研運一體化,快速交付與部署,提升研發(fā)效率。
3結(jié)語
本文介紹了一種服務(wù)持續(xù)開發(fā)、持續(xù)集成、自動化部署、運維的技術(shù)平臺并對該技術(shù)平臺的功能、架構(gòu)、效果進行深入分析。利用本技術(shù)平臺可實現(xiàn)應(yīng)用敏捷開發(fā)與自動化部署,提升資源使用率,應(yīng)用間資源彈性伸縮、自動供給,極大地提升應(yīng)用開發(fā)、運維效率及穩(wěn)定性。
參考文獻:
[1] 王美林,彭希靈.基于微服務(wù)的業(yè)務(wù)可編排重構(gòu)MES系統(tǒng). 物聯(lián)網(wǎng)技術(shù). 2021,11(10):54-57.
[2]崔廣章,朱志祥. 容器云資源調(diào)度策略的改進. 計算機與數(shù)字工程. 2017,45(10): 1931-1936.
[3]章仕鋒,潘善亮. Docker技術(shù)在微服務(wù)中的應(yīng)用. 電子技術(shù)與軟件工程. 2019(04):164.
[4] 翁湦元,單杏花,閻志遠,王雪峰.基于Kubernetes的容器云平臺設(shè)計與實踐.鐵路計算機應(yīng)用.2019,28(12):49-53.
作者簡介:
劉林和(1981-),男,廣東梅州人,中移互聯(lián)網(wǎng)有限公司,工程師,碩士,研究方向:區(qū)塊鏈、AI、容器云。