云原生架構(gòu)體系解讀_第1頁(yè)
云原生架構(gòu)體系解讀_第2頁(yè)
云原生架構(gòu)體系解讀_第3頁(yè)
云原生架構(gòu)體系解讀_第4頁(yè)
云原生架構(gòu)體系解讀_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

云原生架構(gòu)體系解讀

【摘要】大部分人對(duì)云原生的認(rèn)識(shí)僅限于容器、微服務(wù)、DevOps等內(nèi)容,把容器、微服務(wù)、DevOps就等同于云原生,這顯然是不對(duì)的。本文梳理了云原生架構(gòu)體系內(nèi)容并對(duì)重點(diǎn)概念進(jìn)行了解讀,希望對(duì)讀者有所幫助。云原生(Cloud-Native)的概念在國(guó)內(nèi)提及的越來(lái)越多,但大部分人對(duì)云原生的認(rèn)識(shí)僅限于容器、微服務(wù)、DevOps等內(nèi)容,把容器、微服務(wù)、DevOps就等同于云原生,這顯然是不對(duì)的。CNCF從其自身的角度定義了云原生技術(shù):云原生技術(shù)使企業(yè)能夠在現(xiàn)代動(dòng)態(tài)環(huán)境中構(gòu)建和運(yùn)行可擴(kuò)展的應(yīng)用程序,如在公共云、私有云和混合云環(huán)境中。包括容器、服務(wù)網(wǎng)格、微服務(wù)、不變的基礎(chǔ)設(shè)施和聲明式API等。采用這些技術(shù)可實(shí)現(xiàn)系統(tǒng)的松散耦合性、彈性、可管理性和可觀察性等。也可以與自動(dòng)化相結(jié)合,實(shí)現(xiàn)以最少的工作量頻繁地、可預(yù)測(cè)地進(jìn)行重大影響的功能的變更。云計(jì)算提供了敏捷的、自服務(wù)的、不變的基礎(chǔ)設(shè)施等內(nèi)容,使業(yè)務(wù)應(yīng)用上云逐漸成為一種共識(shí),但不進(jìn)行云原生架構(gòu)重構(gòu)而直接上云可能是危險(xiǎn)的,傳統(tǒng)業(yè)務(wù)應(yīng)用架構(gòu)無(wú)法在云上進(jìn)行彈性擴(kuò)展和敏捷響應(yīng),無(wú)法有效利用云計(jì)算的特性賦能企業(yè)。所以這可能需要對(duì)傳統(tǒng)架構(gòu)的業(yè)務(wù)系統(tǒng)進(jìn)行分布式微服務(wù)分拆重構(gòu),部署運(yùn)行在容器云平臺(tái)等之中,使用DevOps思想,通過(guò)CI、CD等持續(xù)提升交付效率,等等。使應(yīng)用從一開始被創(chuàng)建就具備云的特性,為云而生,它是為了充分利用云計(jì)算的分布式和彈性擴(kuò)展等特征,使其具備或適應(yīng)云上部署運(yùn)行的要求,或者直接用云的思想、方法、工具在云中創(chuàng)建,天生具備云的特性。所以云原生可以認(rèn)為是一種基于云來(lái)構(gòu)建和運(yùn)行云應(yīng)用程序的方法論和技術(shù)體系,使用云原生技術(shù)和方法論來(lái)構(gòu)建和運(yùn)行管理云應(yīng)用。MattStine在2015年發(fā)表《遷移到云原生架構(gòu)》一書中定義了符合云原生架構(gòu)的特征:12要素應(yīng)用、微服務(wù)、自服務(wù)敏捷基礎(chǔ)設(shè)施、基于API協(xié)作、扛脆弱性等。云原生體系內(nèi)容沒(méi)有明確的定義,不過(guò)通常認(rèn)為云原生技術(shù)體系和方法論包括微服務(wù)、容器、DevOps、持續(xù)交付、ServiceMesh、不可變基礎(chǔ)設(shè)施、聲明式API、混沌工程、安全、基于移動(dòng)的客戶體驗(yàn)等內(nèi)容。

圖1云原生技術(shù)體系十二個(gè)要素應(yīng)用為云原生應(yīng)用的設(shè)計(jì)提供了原則指導(dǎo);微服務(wù)架構(gòu)為云原生應(yīng)用架構(gòu)設(shè)計(jì)、分布式部署、敏捷變更等提供了方案;容器則為云原生應(yīng)用提供了彈性伸縮、一致性環(huán)境等能力,和微服務(wù)結(jié)合,支撐應(yīng)用隨需擴(kuò)展;自服務(wù)敏捷基礎(chǔ)設(shè)施則提供了云原生應(yīng)用持續(xù)交付的基礎(chǔ)設(shè)施資源等保障,可以和容器化PaaS平臺(tái)共同支撐云原生應(yīng)用的自動(dòng)化彈性擴(kuò)展、可視化監(jiān)控、自動(dòng)化智能化運(yùn)維運(yùn)營(yíng)等,使用戶無(wú)需關(guān)注基礎(chǔ)設(shè)施資源,無(wú)需運(yùn)維基礎(chǔ)設(shè)施資源,無(wú)需關(guān)注應(yīng)用部署位置等;服務(wù)網(wǎng)格支撐著服務(wù)的管理和治理;混沌工程則持續(xù)增強(qiáng)系統(tǒng)的韌性和穩(wěn)定性;DevOps優(yōu)化組織間的協(xié)同,滿足彼此的關(guān)切,指導(dǎo)CICD的落地和持續(xù)交付,實(shí)現(xiàn)應(yīng)用全生命周期管理;聲明式API則實(shí)現(xiàn)了服務(wù)標(biāo)準(zhǔn)化發(fā)布和服務(wù)之間的協(xié)同;安全則涉及云原生架構(gòu)體系的方方面面,比如DevOps安全DevSecOps、容器鏡像安全、網(wǎng)絡(luò)安全、應(yīng)用安全、API安全、認(rèn)證授權(quán)、訪問(wèn)控制等等;所有這些技術(shù)和方法、原則滿足客戶隨時(shí)隨地隨需的需求,簡(jiǎn)化客戶操作,提升客戶體驗(yàn)?;趯?duì)云原生架構(gòu)體系的學(xué)習(xí)和理解,筆者覺(jué)得一個(gè)相對(duì)完整的云原生架構(gòu)體系內(nèi)容包括如圖中的內(nèi)容:

圖2云原生架構(gòu)體系隨著移動(dòng)通信技術(shù)的發(fā)展和移動(dòng)設(shè)備的普及,人們的工作、生活、社交、投資等方式發(fā)生了顯著的變化。當(dāng)前人們通過(guò)手機(jī)基本上可以隨時(shí)隨地滿足需求。用戶可能在不同的時(shí)間(7x24)通過(guò)不同終端、不同操作系統(tǒng)、不同版本、不同地方等訪問(wèn)業(yè)應(yīng)用系統(tǒng),這就要求不僅僅是APP客戶端操作便利、交互友好,也要求后端服務(wù)和系統(tǒng)能夠敏捷響應(yīng)。手機(jī)App應(yīng)用的體驗(yàn)好壞可能直接決定著用戶是否繼續(xù)使用它。在移動(dòng)互聯(lián)時(shí)代,用戶移動(dòng)化體驗(yàn)需求是應(yīng)用設(shè)計(jì)的關(guān)鍵驅(qū)動(dòng)因素。云應(yīng)用12要素描述了一種云應(yīng)用原型,是一種云應(yīng)用(可獨(dú)立部署的單元)設(shè)計(jì)原則和方法論。它通過(guò)強(qiáng)調(diào)聲明式配置、水平擴(kuò)展的無(wú)狀態(tài)/無(wú)共享進(jìn)程,以及與部署環(huán)境的整體松耦合,來(lái)關(guān)注速度、安全性和可擴(kuò)展性。KevinHoffman于《Beyondthe12-factorApp》中重新描述并擴(kuò)展了云原生應(yīng)用的12因素并增加API優(yōu)先、遙測(cè)、認(rèn)證和授權(quán)三個(gè)要素。新增的要素糅合了API協(xié)同、可視化監(jiān)控、安全性等內(nèi)容,在指導(dǎo)云原生應(yīng)用的設(shè)計(jì)方面更加完善。微服務(wù)架構(gòu)是一種應(yīng)用分布式架構(gòu)方式,它將單體巨石應(yīng)用拆分為若干個(gè)單一能力的可獨(dú)立部署的服務(wù),就是微服務(wù)。通常一個(gè)微服務(wù)代表一種業(yè)務(wù)能力,或是提供業(yè)務(wù)價(jià)值的最小的“原子”服務(wù)單元。它解決了緊耦合的單體巨石系統(tǒng)難以變更難以更新的問(wèn)題,實(shí)現(xiàn)輕量、敏捷變更。

圖3單體架構(gòu)演化到微服務(wù)架構(gòu)中臺(tái)本質(zhì)也是一種架構(gòu)方式,其核心是實(shí)現(xiàn)復(fù)用。中臺(tái)一直被當(dāng)作是一種企業(yè)架構(gòu),沒(méi)有很明確討論復(fù)用的粒度,所以其落地沒(méi)有明確的方式方法和標(biāo)準(zhǔn)。從應(yīng)用架構(gòu)角度來(lái)說(shuō),中臺(tái)和應(yīng)用的前、中、后端層次劃分沒(méi)有本質(zhì)區(qū)別,算不上一種新的架構(gòu)方式。微服務(wù)分解架構(gòu)從橫向?qū)⑾到y(tǒng)進(jìn)行分解,中臺(tái)分層架構(gòu)從縱向?qū)⑾到y(tǒng)分層,從而實(shí)現(xiàn)微服務(wù)在不同層次的復(fù)用和共享。從單個(gè)應(yīng)用系統(tǒng)擴(kuò)展到企業(yè)所有的系統(tǒng),最終可以融合成一個(gè)分層分解的企業(yè)級(jí)系統(tǒng),這就是筆者一直所提的“系統(tǒng)融合”思路。容器是一種內(nèi)核輕量級(jí)的操作系統(tǒng)層虛擬化技術(shù),在流程級(jí)別提供隔離,為單一的應(yīng)用程序提供運(yùn)行一致的運(yùn)行環(huán)境。每個(gè)應(yīng)用程序及其環(huán)境都可以在隔離的環(huán)境中運(yùn)行。容器特性和微服務(wù)架構(gòu)非常契合,因此微服務(wù)通常部署在容器中,實(shí)現(xiàn)敏捷部署、自動(dòng)化彈性伸縮、環(huán)境一致性等能力。但容器依然是相對(duì)底層的運(yùn)行單元,眾多容器的管理和治理是個(gè)難題。Kubernetes(也稱為K8s)是一個(gè)開源容器管理和調(diào)度框架,用于自動(dòng)化容器應(yīng)用程序的部署、擴(kuò)展和管理。它將構(gòu)成應(yīng)用程序的容器分組到邏輯單元中,以便于管理和發(fā)現(xiàn)。容器云平臺(tái)是采用容器和容器管理及調(diào)度技術(shù)而構(gòu)建的應(yīng)用管理部署運(yùn)行平臺(tái),支持不同租戶的容器應(yīng)用管理和治理能力?;谌萜髟贫讶罩?、監(jiān)控、認(rèn)證、權(quán)限、配置、中間件、工具平臺(tái),以及算法等統(tǒng)一部署維護(hù),提供企業(yè)級(jí)平臺(tái)服務(wù)能力,構(gòu)建輕量化PaaS平臺(tái),結(jié)合自動(dòng)化、智能化實(shí)現(xiàn)自服務(wù)敏捷響應(yīng)基礎(chǔ)設(shè)施能力。

圖4容器云架構(gòu)云原生的核心是云原生應(yīng)用。自服務(wù)敏捷響應(yīng)基礎(chǔ)設(shè)施為云原生應(yīng)用的自動(dòng)化環(huán)境準(zhǔn)備、構(gòu)建、部署、監(jiān)控、反饋、健康檢查、故障自愈、資源調(diào)度、彈性伸縮、動(dòng)態(tài)路由和負(fù)載均衡等提供支撐,實(shí)現(xiàn)自主服務(wù)平臺(tái)進(jìn)行云原生應(yīng)用的部署和運(yùn)行,使配置管理自動(dòng)化、基礎(chǔ)設(shè)施資源透明,無(wú)需關(guān)注應(yīng)用運(yùn)行在什么地方;將IaaS和PaaS最終融合在一起,提供更流暢的、一致的體驗(yàn);企業(yè)內(nèi)部可通過(guò)基礎(chǔ)設(shè)施資源管理(多云管理平臺(tái))實(shí)現(xiàn)異構(gòu)資源的管理,統(tǒng)一的資源服務(wù);實(shí)現(xiàn)持續(xù)交付,提升可用性、可擴(kuò)展性、可管理性。DevOps是一種理念和方法論,目的是為了協(xié)調(diào)和理順開發(fā)和運(yùn)維團(tuán)隊(duì)之間的關(guān)切,提升協(xié)作效率。DevOps旨在實(shí)現(xiàn)開發(fā)運(yùn)維一體化,通過(guò)自動(dòng)化、智能化等工具實(shí)現(xiàn)應(yīng)用全生命周期管理和組織之間的高效協(xié)同?;贒evOps方法論和理念所構(gòu)建的平臺(tái)也稱為DevOps平臺(tái),通常要用自動(dòng)化流水線等實(shí)現(xiàn)持續(xù)集成CI、持續(xù)交付CD等能力。GoogleSRE是DevOps的一種具體實(shí)踐,它通過(guò)系統(tǒng)工程的思想來(lái)解決軟件工程的問(wèn)題,使運(yùn)維自動(dòng)化和智能化。運(yùn)維人員不低于50%的時(shí)間做運(yùn)維工具的研發(fā),讓研發(fā)人員專注于業(yè)務(wù)應(yīng)用的研發(fā)。GoogleSRE使用錯(cuò)誤預(yù)算來(lái)協(xié)調(diào)研發(fā)和運(yùn)維之間的關(guān)切,一旦錯(cuò)誤預(yù)算用盡,則運(yùn)維將拒絕業(yè)務(wù)應(yīng)用的發(fā)布部署,從而使研發(fā)要關(guān)注業(yè)務(wù)應(yīng)用的穩(wěn)定性和健壯性。服務(wù)網(wǎng)格(ServiceMesh)實(shí)現(xiàn)微服務(wù)東西向流量的管理和治理。其區(qū)別于API網(wǎng)關(guān)對(duì)服務(wù)南北向流量的管理和治理。其通常應(yīng)用于容器環(huán)境,以sidecar的方式代理流量管理、可觀測(cè)性和安全能力。服務(wù)網(wǎng)格總體架構(gòu)由流量代理組件和管理組件組成,代理組件被稱為數(shù)據(jù)平面,直接處理入站和出站數(shù)據(jù)包,轉(zhuǎn)發(fā)、路由、健康檢查、負(fù)載均衡、認(rèn)證、鑒權(quán)、產(chǎn)生監(jiān)控?cái)?shù)據(jù)等。管理組件被稱為控制平面,負(fù)責(zé)與代理通信,下發(fā)策略和配置。筆者一直跟蹤著服務(wù)網(wǎng)格發(fā)展但一直沒(méi)有采用,原因在于一方面感覺(jué)其不夠成熟,另一方面其加層的方式會(huì)帶來(lái)延遲,和筆者推崇的簡(jiǎn)單方式解決復(fù)雜問(wèn)題思路有悖。抗脆弱性由NaasimTaleb在《Antifragile》書中提出,將故障隨機(jī)注入到生產(chǎn)環(huán)境中,目的是為了識(shí)別和消除架構(gòu)中的缺陷,找到應(yīng)用架構(gòu)中的弱點(diǎn),并強(qiáng)制進(jìn)行修復(fù),架構(gòu)會(huì)隨著時(shí)間的推移而變得強(qiáng)壯,提升其穩(wěn)定性、可用性、耐久性等。在國(guó)內(nèi)也稱之為混沌工程(ChaosEngineering)。中國(guó)信通院于2020年開始組織進(jìn)行混沌工程技術(shù)研究,提出了應(yīng)用混沌工程方法來(lái)驗(yàn)證云原生系統(tǒng)的韌性架構(gòu),同時(shí)成立混沌工程項(xiàng)目組。2021年發(fā)布《混沌工程測(cè)試平臺(tái)能力》標(biāo)準(zhǔn)綱要,并發(fā)布行業(yè)標(biāo)準(zhǔn)《混沌工程平臺(tái)能力要求》。云原生應(yīng)用之間的交互是通過(guò)已發(fā)布和版本化的API來(lái)實(shí)現(xiàn)的,通常采用HTTPRest風(fēng)格序列化JSON數(shù)據(jù)。通過(guò)API可以提供一層可重用接口層。同時(shí)API封裝了業(yè)務(wù)邏輯內(nèi)部細(xì)節(jié),消費(fèi)者不能直接訪問(wèn)API服務(wù)內(nèi)部數(shù)據(jù),也在一定程度上增強(qiáng)了數(shù)據(jù)安全。安全是任何系統(tǒng)不可或缺的部分。風(fēng)險(xiǎn)無(wú)處不在,云原生架構(gòu)體系中內(nèi)容眾多,每個(gè)組件每個(gè)服務(wù)都可能帶來(lái)風(fēng)險(xiǎn)和安全問(wèn)題(因此要通過(guò)“減層”方法最小化組件和服務(wù),嚴(yán)格遵循“非必要不采用原則”)。從云原生應(yīng)用生命周期過(guò)程來(lái)說(shuō),云原生安全可以簡(jiǎn)單分為“設(shè)計(jì)時(shí)安全”和“運(yùn)行時(shí)安全”兩段。設(shè)計(jì)時(shí)以靜態(tài)檢測(cè)分析為主,比如代碼分析、鏡像漏洞掃描等;運(yùn)行時(shí)以動(dòng)態(tài)和交互式檢測(cè)、防護(hù)、分析為主,比如入侵檢測(cè)、病毒查殺、網(wǎng)絡(luò)微隔離等。云原生安全可以利用傳統(tǒng)的安全技術(shù)和方法,比如認(rèn)證授權(quán)、訪問(wèn)控制、加密解密、合規(guī)檢測(cè)、靜態(tài)安全檢測(cè)、動(dòng)態(tài)安全檢測(cè)、網(wǎng)絡(luò)隔離等等,重點(diǎn)是通過(guò)可用的安全機(jī)制增強(qiáng)云原生安全能力。雖然我們提倡安全左移,盡可能將安全風(fēng)險(xiǎn)消除在設(shè)計(jì)時(shí)段,但運(yùn)行時(shí)安全一樣不可少,安全漏洞隨時(shí)都可能出現(xiàn),采用微服務(wù)、容器的云原生架構(gòu)也為運(yùn)行時(shí)帶來(lái)了更多的風(fēng)險(xiǎn)點(diǎn),安全防控更加不易。需要不斷提升系統(tǒng)可見性、錯(cuò)誤隔離等能

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論