基于容器PaaS云技術(shù)平臺(tái)方案


本文以容器技術(shù)建設(shè) PaaS(平臺(tái)即服務(wù))云平臺(tái)的解決方案為例,分析其如何實(shí)現(xiàn)系統(tǒng)資源的集中管理、動(dòng)態(tài)分配、監(jiān)控、共享和調(diào)度,如何實(shí)現(xiàn)應(yīng)用的統(tǒng)一部署和業(yè)務(wù)連續(xù)性保障,實(shí)現(xiàn)多數(shù)據(jù)中心的高可用,推動(dòng)系統(tǒng)架構(gòu)及流程的調(diào)整,應(yīng)對(duì)云計(jì)算時(shí)代所帶來(lái)的變革。
通過引進(jìn)Docker、Kubernetes等技術(shù)和搭建微服務(wù)架構(gòu)模式來(lái)減少對(duì)現(xiàn)有應(yīng)用的影響,即將應(yīng)用程序分割成更小的相互關(guān)聯(lián)的服務(wù),并采用容器化技術(shù)進(jìn)行微服務(wù)的封裝、部署、管控。這些服務(wù)圍繞業(yè)務(wù)能力構(gòu)建并且可獨(dú)立部署,方便地為不同類型的微服務(wù)提供差異化的管理策略。
以容器技術(shù)為核心的支撐技術(shù)框架既滿足當(dāng)前業(yè)務(wù)支撐系統(tǒng)發(fā)展的實(shí)際需求,又具有支撐未來(lái)業(yè)務(wù)高速發(fā)展的技術(shù)先進(jìn)性。該技術(shù)架構(gòu)主要分為以下幾層。
OpenStack 或裸機(jī)資源池,即 IaaS 基礎(chǔ)設(shè)施層,提供上層獲取資源的接口。
通過基于 Docker 和 Kubernetes 的容器化服務(wù)提供平臺(tái)層服務(wù),在其上部署基礎(chǔ)服務(wù)和用戶自定義的服務(wù),并通過微服務(wù)的組合和編排組成對(duì)外能力開放平臺(tái),提供業(yè)務(wù)級(jí)的服務(wù)組合,供應(yīng)用層通過 REST 接口調(diào)用。
提供用戶訪問、運(yùn)維管理的入口門戶,通常 以 Web 服務(wù)或 REST API 方式提供給客戶端(瀏覽器、智能終端或外部系統(tǒng))進(jìn)行訪問。
Docker 是容器技術(shù)的一種,它運(yùn)行于 Linux宿主機(jī)上,每個(gè)運(yùn)行的容器都使用操作系統(tǒng)的內(nèi)核隔離功能,是輕量的虛擬技術(shù),更加高效,啟動(dòng)速度更快,且可以屏蔽開發(fā)、測(cè)試及生產(chǎn)環(huán)境的區(qū)別,實(shí)現(xiàn)更輕松的遷移和擴(kuò)展,提高開發(fā)、測(cè)試、部署、升級(jí)及維護(hù)的效率。
Kubernetes是基于容器技術(shù)、采用分布式架構(gòu)的一種集群管理解決方案,它具有完備的集群管理能力,包括多層次的安全防護(hù)和準(zhǔn)入機(jī)制、多租戶應(yīng)用支撐能力、透明的服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)機(jī)制、 內(nèi)建智能負(fù)載均衡器、強(qiáng)大的故障發(fā)現(xiàn)和自我修復(fù)能力、服務(wù)滾動(dòng)升級(jí)和在線擴(kuò)容能力、可擴(kuò)展的資源自動(dòng)調(diào)度機(jī)制以及多粒度的資源配額管理能力。
PaaS 云平臺(tái)引入微服務(wù)架構(gòu),并采用容器化技術(shù)進(jìn)行微服務(wù)設(shè)計(jì)、編排、授權(quán)和配置,解除應(yīng)用間的緊耦合和依賴。針對(duì) IT 支撐系統(tǒng)多種多 樣的應(yīng)用及業(yè)務(wù),本文根據(jù)使用頻次、服務(wù)調(diào)用開銷不同,采用不同策略進(jìn)行劃分和分布式部署。幾種應(yīng)用拆分方式介紹如下。
(1)針對(duì) HTTP/soap 應(yīng)用,采用開源緩存集群部署,將應(yīng)用和 MySQL 數(shù)據(jù)庫(kù)放在一個(gè)鏡像(image)中,將會(huì)話(session)數(shù)據(jù)放在第三方 緩存,實(shí)現(xiàn)快速的水平擴(kuò)張,可滿足類似電渠查詢類業(yè)務(wù)的高峰值交易量需求。
(2)針對(duì)純計(jì)算類應(yīng)用,如不涉及數(shù)據(jù)庫(kù)的DCC 應(yīng)用模塊,通過容器化提供大量計(jì)算能力,并通過對(duì)主控端(master)的多節(jié)點(diǎn)部署保障其高可用性。
(3)針對(duì) MySQL 類集群進(jìn)行容器化改造,通過主從復(fù)制及共享存儲(chǔ)備份解決數(shù)據(jù)服務(wù)的高可靠和安全性,并且可達(dá)到裸機(jī)的性能和更好的高可用性。
拆分后的微服務(wù)粒度小,輕便靈活,可實(shí)現(xiàn)復(fù)雜多種應(yīng)用場(chǎng)景的敏捷交付。通過容器技術(shù)進(jìn)行服務(wù)設(shè)計(jì)、編排、授權(quán)、配置,可解除應(yīng) 用間的緊耦合和依賴,為業(yè)務(wù)系統(tǒng)升級(jí)和擴(kuò)展提供了良好的技術(shù)基礎(chǔ),極大地提高運(yùn)維效率和系統(tǒng)性能。
PaaS 云平臺(tái)通過下述方式實(shí)現(xiàn)資源統(tǒng)一管理功能。
(1)經(jīng)過證書認(rèn)證之后,通過 Kubernetes API服務(wù)器對(duì)集群進(jìn)行納管,導(dǎo)入集群的節(jié)點(diǎn)數(shù)量、配置等信息,并補(bǔ)充機(jī)房、機(jī)架等信息。
(2)將所納入集群和租戶進(jìn)行綁定,把集群分配給不同的指定租戶。可為每個(gè)業(yè)務(wù)建立獨(dú)立的租戶,安全隔離不同租戶的資源和訪問權(quán)限。根據(jù)業(yè)務(wù)大小,通過分區(qū)或分集群的方式實(shí)現(xiàn)安全隔離,既保證各業(yè)務(wù)的獨(dú)立性又保障資源的共享。
(3)租戶可以繼續(xù)對(duì)集群資源進(jìn)行分區(qū),部署不同的應(yīng)用,實(shí)現(xiàn)不同配置的主機(jī)共存。租戶也可以對(duì)集群資源根據(jù)應(yīng)用和業(yè)務(wù)進(jìn)行劃域隔離,保障安全。如將 Web 類應(yīng)用和 proxy 應(yīng)用部署在 DMZ 和互聯(lián)網(wǎng)域,采用 Kubernetets+Docker容器技術(shù),具備輕量但彈性擴(kuò)展需求強(qiáng)的特點(diǎn);可將包含大量的計(jì)算類、服務(wù)類、分析類應(yīng)用部署在核心區(qū),引入 Mesos 技術(shù)搭建分布式系統(tǒng)內(nèi) 核,構(gòu)建巨大的計(jì)算集群。
通過使用 Kubernetes 多集群統(tǒng)一管理,后臺(tái)運(yùn)維人員可以很方便地了解資源情況,如系統(tǒng)集群數(shù)量、每個(gè)集群分配的機(jī)器數(shù)量及配置、機(jī)房條件、資源利用率等。該功能大幅度提升后臺(tái)運(yùn)維人員對(duì)系統(tǒng)的管理和監(jiān)控力度,為多集群、多數(shù)據(jù)中心間的資源調(diào)配奠定基礎(chǔ)。
PaaS云平臺(tái)的多數(shù)據(jù)中心、多集群的高可用主要應(yīng)用場(chǎng)景如下。
1、多集群的統(tǒng)一服務(wù)部署由 Kubernetes 管理平臺(tái)自動(dòng)化部署模塊統(tǒng)一對(duì)各數(shù)據(jù)中心進(jìn)行服務(wù)自動(dòng)化安裝部署??梢远?義同一個(gè)服務(wù)在不同數(shù)據(jù)中心的 Kubernetes 集群統(tǒng)一部署,并且可以定義在每個(gè)集群部署服務(wù)的容器實(shí)例的比例,如可按 6:4 的比例在集群 A 和 集群 B 上部署服務(wù)。
2、灰度升級(jí) 由 Kubernetes 管理平臺(tái)自動(dòng)化部署模塊統(tǒng)一對(duì)各數(shù)據(jù)中心自動(dòng)化進(jìn)行服務(wù)升級(jí)??梢詫?shí)現(xiàn)先在一部分集群部署新版本,穩(wěn)定之后再平滑升級(jí)全部的節(jié)點(diǎn)。
3、動(dòng)態(tài)集群間業(yè)務(wù)調(diào)整業(yè)務(wù)高峰期當(dāng)一個(gè)數(shù)據(jù)中心容量不足時(shí),由Kubernetes 管理平臺(tái)自動(dòng)進(jìn)行服務(wù)動(dòng)態(tài)擴(kuò)展,啟動(dòng)容災(zāi)數(shù)據(jù)中心的部分服務(wù)來(lái)支撐業(yè)務(wù)。
4、業(yè)務(wù)高可用當(dāng)主數(shù)據(jù)中心發(fā)生故障時(shí),由 Kubernetes 管理平臺(tái)自動(dòng)進(jìn)行容災(zāi)切換,由容災(zāi)數(shù)據(jù)中心自動(dòng) 接管所有業(yè)務(wù)服務(wù)。
基于容器技術(shù)的 PaaS平臺(tái),可實(shí)現(xiàn) IT 支撐系統(tǒng)跨多個(gè)網(wǎng)絡(luò)域、跨多個(gè)數(shù)據(jù)中心的復(fù)雜多集群環(huán)境的集中管理,且通過多集群統(tǒng)一部署可大幅度提升軟件新版本的上線效率。通過容器技術(shù)和立體化監(jiān)控,可全方位監(jiān)控各集群的資源整體利用率,并通過多集群間動(dòng)態(tài)部署容器數(shù)量,實(shí)現(xiàn)靈活的水平擴(kuò)展能力。但考慮容器技術(shù)作為一個(gè)較新的技術(shù),在推動(dòng)容器技術(shù)的標(biāo)準(zhǔn)化和規(guī)范化、實(shí)現(xiàn)更多應(yīng)用的重構(gòu)及統(tǒng)管、構(gòu)建統(tǒng)一化的服務(wù)組件等方面,仍需要持續(xù)關(guān)注和研究。
作者:齊磊,張海峰,張?zhí)祢?,祝好,陳?/span>
相關(guān)閱讀

轉(zhuǎn)載申明:轉(zhuǎn)載本號(hào)文章請(qǐng)注明作者和來(lái)源,本號(hào)發(fā)布文章若存在版權(quán)等問題,請(qǐng)留言聯(lián)系處理,謝謝。
推薦閱讀
更多架構(gòu)相關(guān)技術(shù)知識(shí)總結(jié)請(qǐng)參考“架構(gòu)師全店鋪技術(shù)資料打包”相關(guān)電子書(37本技術(shù)資料打包匯總詳情可通過“閱讀原文”獲取)。
全店內(nèi)容持續(xù)更新,現(xiàn)下單“全店鋪技術(shù)資料打包(全)”,后續(xù)可享全店內(nèi)容更新“免費(fèi)”贈(zèng)閱,價(jià)格僅收198元(原總價(jià)350元)。
溫馨提示:
掃描二維碼關(guān)注公眾號(hào),點(diǎn)擊閱讀原文鏈接獲取“架構(gòu)師技術(shù)全店資料打包匯總(全)”電子書資料詳情。

