2022-10-05 分類: 網(wǎng)站建設(shè)
通常,圍繞云原生的對(duì)話會(huì)直接潛入諸如容器化和微服務(wù)之類的技術(shù)選擇中。這些絕對(duì)是云原生項(xiàng)目的潛在組成部分,但絕對(duì)不是全部。在本系列文章中,我們將從幾個(gè)不同的角度探討本機(jī)云,當(dāng)然包括技術(shù)和基礎(chǔ)架構(gòu),還包括架構(gòu),設(shè)計(jì),以及可能最被忽略的人員和流程。用最簡(jiǎn)單的術(shù)語(yǔ)來(lái)說(shuō),云原生意味著不僅要遷移到云,還要充分利用云基礎(chǔ)架構(gòu)和服務(wù)的獨(dú)特性來(lái)快速交付業(yè)務(wù)價(jià)值。
在該術(shù)語(yǔ)本身開(kāi)始使用之前,就已經(jīng)存在云原生概念。從某種意義上說(shuō),云原生始于公共云供應(yīng)商開(kāi)始提供對(duì)彈性計(jì)算能力實(shí)例的輕松且負(fù)擔(dān)得起的訪問(wèn)。問(wèn)題就變成了,如何利用該新基礎(chǔ)架構(gòu)的靈活性來(lái)編寫(xiě)應(yīng)用程序,以及由此帶來(lái)的業(yè)務(wù)收益?
在過(guò)去十年中,云原生方法和技術(shù)發(fā)生了很大變化,并且仍在不斷發(fā)展,但是云原生應(yīng)用程序要實(shí)現(xiàn)的核心技術(shù)和業(yè)務(wù)目標(biāo)卻保持不變。這些包括:
敏捷性和生產(chǎn)力:實(shí)現(xiàn)以業(yè)務(wù)指標(biāo)為指導(dǎo)的快速創(chuàng)新。降低維護(hù)風(fēng)險(xiǎn),并使環(huán)境保持最新?tīng)顟B(tài)。 彈性和可伸縮性:以自我修復(fù)和無(wú)停機(jī)的持續(xù)可用性為目標(biāo)。提供彈性縮放和無(wú)限容量的感知。 優(yōu)化和效率:優(yōu)化基礎(chǔ)設(shè)施和人力資源的成本。啟用位置和提供者之間的自由移動(dòng)。當(dāng)我們回顧云原生的“為什么”時(shí),我們將在后面的文章中進(jìn)一步細(xì)分這些目標(biāo),但是希望即使是從這個(gè)簡(jiǎn)單的定義來(lái)看,也應(yīng)該清楚的是,云原生的范圍比僅僅向新的類型遷移還廣?;A(chǔ)設(shè)施。但是,盡管這些目標(biāo)是準(zhǔn)確的,但很難看出它們專門適用于本機(jī)云。我們需要做更多的工作來(lái)定義云原生的真正含義。
與云原生相關(guān)的流行參考點(diǎn)(例如微服務(wù))和較早的清單(例如12factor應(yīng)用)可能會(huì)讓您得出結(jié)論,云原生是對(duì)體系結(jié)構(gòu)樣式的描述,其他選擇也隨之而來(lái)。毫無(wú)疑問(wèn),云原生架構(gòu)確實(shí)存在。但是,為了在云原生平臺(tái)上取得成功,公司必須采取更全面的看法。除了架構(gòu)和基礎(chǔ)架構(gòu)決策外,還存在組織和流程決策。這導(dǎo)致我們實(shí)現(xiàn)了一個(gè)關(guān)鍵的實(shí)現(xiàn):
單憑技術(shù)無(wú)法取得業(yè)務(wù)成果
下圖顯示了這些決策如何相互作用。
單憑技術(shù)無(wú)法取得業(yè)務(wù)成果
我們的文章“避免使用不完整的云原生采用”中描述了如何將這些方面相互鏈接以及有關(guān)鏈接斷開(kāi)時(shí)發(fā)生的警告的一個(gè)很好的示例。在本系列文章中,我們將展示云原生的成功如何與這三個(gè)關(guān)鍵領(lǐng)域的變更協(xié)調(diào)相關(guān)聯(lián),以便成功進(jìn)行協(xié)調(diào):架構(gòu)與設(shè)計(jì),技術(shù)與基礎(chǔ)架構(gòu),人員與流程。讓我們更詳細(xì)地探討每一個(gè)。
技術(shù)與基礎(chǔ)設(shè)施:在“云原生”的背景下,“云”是什么?
十年或更早之前,“云”一詞主要是關(guān)于位置的。它通常指的是位于可通過(guò)Internet訪問(wèn)的其他人的數(shù)據(jù)中心中的基礎(chǔ)結(jié)構(gòu)。但是,今天的“云”更多地說(shuō)明了您如何與該基礎(chǔ)架構(gòu)進(jìn)行交互。確實(shí),位置元素幾乎消失了,因?yàn)楝F(xiàn)在很常見(jiàn)的是在您自己的數(shù)據(jù)中心中運(yùn)行類似云的設(shè)施-“私有云”,以及可能涉及在兩者之間運(yùn)行的服務(wù)和工作負(fù)載的混合解決方案。
因此,今天的云更多地與您如何與基礎(chǔ)架構(gòu)互動(dòng)有關(guān),至少必須提供以下內(nèi)容:
自我配置:即時(shí)獲取新的虛擬資源(服務(wù)器,存儲(chǔ),網(wǎng)絡(luò))。 彈性:根據(jù)需求自動(dòng)向上和向下擴(kuò)展資源(及其相關(guān)的成本)。 自動(dòng)恢復(fù):資源旨在從故障中恢復(fù)而無(wú)需干預(yù),并且對(duì)服務(wù)可用性的影響最小。但是,隨著云平臺(tái)和概念的日趨成熟,云原生云實(shí)際上也意味著對(duì)基礎(chǔ)架構(gòu)的更大抽象。
不變的部署-例如基于容器映像的部署 聲明式配置-提供基礎(chǔ)狀態(tài)的“基礎(chǔ)架構(gòu)即代碼” 與運(yùn)行時(shí)無(wú)關(guān)—平臺(tái)將組件(例如容器)視為黑盒,而無(wú)需了解其內(nèi)容 組件編排—通過(guò)通用的聲明性策略和配置啟用管理(監(jiān)視,擴(kuò)展,可用性,路由等)。在云原生的早期,這些功能通常是高度專有的,但是現(xiàn)在,這種功能幾乎以容器和容器編排功能(例如Kubernetes)的形式無(wú)處不在。因此,上面的列表非常特定于容器的詞匯表,但是值得認(rèn)識(shí)到還有其他選擇,例如無(wú)服務(wù)器/作為服務(wù)的服務(wù)會(huì)進(jìn)一步從基礎(chǔ)結(jié)構(gòu)中抽象出來(lái),并且將來(lái)可能會(huì)變得更加突出。
我們可以包括更多內(nèi)容,例如構(gòu)建自動(dòng)化,服務(wù)網(wǎng)格,日志記錄,跟蹤,分析,軟件定義的網(wǎng)絡(luò)和存儲(chǔ)等。但是,我們隨后將涉足云平臺(tái)當(dāng)前更具專有性的方面。希望隨著時(shí)間的流逝,這些也將變得更加標(biāo)準(zhǔn)化。因此,在這種情況下,“云”實(shí)際上表示具有上面列出的特殊屬性的基礎(chǔ)架構(gòu)和技術(shù)。
架構(gòu)與設(shè)計(jì):“云原生”中的“原生”是什么意思?
“原生”是指我們將構(gòu)建的解決方案不僅要“在云上運(yùn)行”,而且要特別利用云平臺(tái)的獨(dú)特性。應(yīng)用程序不僅神奇地繼承了底層云基礎(chǔ)架構(gòu)的優(yōu)勢(shì),還必須教會(huì)他們?nèi)绾尾僮鳌?/p>
在這里,我們需要非常小心地使用語(yǔ)言。當(dāng)我們使用“原生”來(lái)指“云平臺(tái)的唯一性”時(shí),我們并不是指特定云提供商的特定于供應(yīng)商的方面。那將是“云提供商本機(jī)”,實(shí)際上,這將完全與圍繞可移植性和使用開(kāi)放標(biāo)準(zhǔn)的目標(biāo)背道而馳。我們的意思是概念上所有云平臺(tái)都通用的東西。換句話說(shuō),我們?cè)谏弦还?jié)中有關(guān)基礎(chǔ)結(jié)構(gòu)和技術(shù)的內(nèi)容中強(qiáng)調(diào)了這些內(nèi)容。
對(duì)體系結(jié)構(gòu)和設(shè)計(jì)有重要影響。我們需要編寫(xiě)解決方案以確保例如它們可以水平縮放,并且可以與自動(dòng)恢復(fù)機(jī)制一起使用。在這里,云原生可能與微服務(wù)概念重疊最多。例如,這包括編寫(xiě)以下組件:
最小化狀態(tài) 減少依賴 具有定義明確的界面, 輕巧 是一次性的在下一篇文章中,我們將對(duì)它們進(jìn)行更深入的描述,但是到目前為止,可能要注意的最重要的一點(diǎn)是它們都是高度相互依賴的。例如,如果要?jiǎng)?chuàng)建具有高度狀態(tài)的一次性組件,則要困難得多。減少依賴關(guān)系從本質(zhì)上將有助于使組件更輕便。具有明確定義的界面將使可拋棄的組件更容易重新實(shí)例化,依此類推。這只是一個(gè)更廣泛點(diǎn)的小例子,即遷移到云原生方法需要同時(shí)在許多相關(guān)方面進(jìn)行更改。我們逐漸發(fā)現(xiàn)的這些云原生成分是相輔相成的。
人員和流程:“云原生”如何改變我們的組織和工作方式?
可能不太明顯的是,當(dāng)我們使用有關(guān)架構(gòu)和底層基礎(chǔ)結(jié)構(gòu)的上述假設(shè)和決策時(shí),它為我們提供了從根本上改變我們處理人員和流程方式的機(jī)會(huì)。的確,可以認(rèn)為必須進(jìn)行這些更改。
下面,我們探討了微服務(wù)方法對(duì)人員/流程的影響:
微服務(wù)意味著您是在小型自治團(tuán)隊(duì)中構(gòu)建服務(wù)。這只是Conway定律的應(yīng)用-如果您希望系統(tǒng)由小的,解耦的組件組成,則必須允許您的團(tuán)隊(duì)規(guī)模較小,并且不能與其他團(tuán)隊(duì)緊密耦合-僅允許通過(guò)定義明確且受控接口。 微服務(wù)還意味著您正在使用敏捷方法并將DevOps原理應(yīng)用于開(kāi)發(fā)流程。如果沒(méi)有,您將如何獲得端到端的反饋以及對(duì)代碼的快速迭代,這是該方法的核心優(yōu)勢(shì)。反過(guò)來(lái),DevOps將意味著進(jìn)一步的流程改進(jìn),例如持續(xù)集成和持續(xù)交付/部署(CI / CD)。 DevOps要求您采用其他特定的技術(shù)流程,例如自動(dòng)化測(cè)試(可能包括測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)),并強(qiáng)烈引導(dǎo)您進(jìn)行基于主干的開(kāi)發(fā)。最小化測(cè)試周期的渴望可能會(huì)進(jìn)一步導(dǎo)致您探索改變?nèi)藗兣c工作相結(jié)合的方式(例如,結(jié)對(duì)編程)。同樣,容器技術(shù)也會(huì)影響所需的技能,角色和流程:
云基礎(chǔ)架構(gòu)通常使用諸如Kubernetes知識(shí)之類的通用云平臺(tái)技能,而不是特定的運(yùn)行時(shí)或產(chǎn)品技能,在操作(部署,擴(kuò)展,高可用性等)上實(shí)現(xiàn)更多目標(biāo)。這從根本上減少了跨多個(gè)技術(shù)領(lǐng)域工作的人員的學(xué)習(xí)曲線,并實(shí)現(xiàn)了更廣泛的角色和知識(shí)共享,從而提高了效率并降低了成本。它還鼓勵(lì)現(xiàn)場(chǎng)可靠性工程師轉(zhuǎn)向盡可能使操作任務(wù)自動(dòng)化。 容器,特別是容器映像技術(shù),簡(jiǎn)化了CI / CD管道的自動(dòng)化,從而縮短了構(gòu)建/發(fā)布周期時(shí)間,并提高了生產(chǎn)率。構(gòu)建管線實(shí)現(xiàn)方式的同質(zhì)性提高意味著可以更輕松地維護(hù)它們,并且確實(shí)可以由更廣泛的人群使用。 不變的容器映像與聲明性的“將基礎(chǔ)結(jié)構(gòu)作為代碼”結(jié)合使用,可以提高跨不同環(huán)境的部署的一致性。這降低了測(cè)試和診斷成本,提高了部署速度,并減少了停機(jī)時(shí)間。從過(guò)程的角度來(lái)看,這可以實(shí)現(xiàn)可靠性,性能和安全性測(cè)試等方面的“左移”。反過(guò)來(lái),這又帶來(lái)了更多的DevOps / DevSecOps文化,在這種文化中,開(kāi)發(fā)人員對(duì)代碼的操作質(zhì)量負(fù)有更大的責(zé)任。 總結(jié)“云原生”的含義
綜合到目前為止所討論的內(nèi)容,我們可以看到需要從三個(gè)不同方面定義云原生。
抽象化基礎(chǔ)架構(gòu)復(fù)雜性的平臺(tái)。(基礎(chǔ)設(shè)施和技術(shù)) 充分利用基礎(chǔ)架構(gòu)抽象(架構(gòu)和設(shè)計(jì))的解決方案 開(kāi)發(fā),運(yùn)營(yíng)和業(yè)務(wù)流程的自動(dòng)化,以及開(kāi)發(fā)團(tuán)隊(duì)(人員和流程)的自主權(quán)不斷提高今天,技術(shù)方面當(dāng)然非常關(guān)注容器化,但是重要的是諸如該技術(shù)的自我配置,彈性和自動(dòng)恢復(fù)之類的屬性,而不是該技術(shù)本身。
在體系結(jié)構(gòu)上,我們最常使用微服務(wù)原理來(lái)創(chuàng)建更輕量,細(xì)粒度,狀態(tài)最小的組件,從而更好地映射到抽象基礎(chǔ)架構(gòu)。沒(méi)有正確的設(shè)計(jì)原則,我們的解決方案將無(wú)法從該平臺(tái)中受益。例如,它將不會(huì)動(dòng)態(tài)擴(kuò)展,也不會(huì)提供細(xì)粒度的彈性,不會(huì)提供快速的構(gòu)建和部署,也不會(huì)與平臺(tái)上的其他應(yīng)用程序保持操作一致性。
人們通常將人員和流程更改與云原生隔離開(kāi)來(lái),但實(shí)際上它們是并駕齊驅(qū)的,我們認(rèn)為它們是定義特征的一部分。缺乏軟件開(kāi)發(fā)生命周期的自動(dòng)化將意味著團(tuán)隊(duì)需要花更多的時(shí)間在平凡的事情上,而花在商業(yè)價(jià)值上的時(shí)間卻相對(duì)較少。繁重,自上而下的組織和治理結(jié)構(gòu)將無(wú)法為團(tuán)隊(duì)提供幫助他們進(jìn)行業(yè)務(wù)創(chuàng)新所需的自主權(quán)。
因此,有了對(duì)云原生實(shí)際含義的更具體定義,我們就可以開(kāi)始下一步,并擴(kuò)展之前的圖表。
在上圖中,我們提供了有關(guān)這些方面的關(guān)鍵要素的一些信息。在本系列的后續(xù)文章中,我們將考慮“如何”構(gòu)建云原生解決方案,并從人員和流程問(wèn)題入手詳細(xì)研究每個(gè)要素。
但是,應(yīng)該已經(jīng)很清楚,完全采用云本地化并非易事,并且需要業(yè)務(wù)贊助。因此,在另一篇文章中,我們將匯總我們所學(xué)到的有關(guān)成功實(shí)現(xiàn)云原生所需的承諾的知識(shí),并退后一步來(lái)重新考慮“為什么”您可能首先使云原生移動(dòng),以及什么?您可能希望實(shí)現(xiàn)的好處。
網(wǎng)站欄目:云原生究竟意味著什么?
網(wǎng)站URL:http://m.rwnh.cn/news35/201885.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、Google、小程序開(kāi)發(fā)、域名注冊(cè)、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容