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