1. 程式人生 > 其它 >什麼是雲原生架構?他和傳統架構有什麼區別

什麼是雲原生架構?他和傳統架構有什麼區別

什麼是雲原生應用?
雲原生是一種方法,用於構建和執行充分利用雲端計算模型優勢的應用。雲端計算不再將重點放在資本投資和員工上來執行企業資料中心,而是提供無限制的按需計算能力和根據使用情況付費的功能,從而重新定義了幾乎所有行業的競爭格局。IT 開銷減少意味著入行的壁壘更低,這一競爭優勢使得各團隊可以快速將新想法推向市場,這就是軟體正在佔據世界,並且初創公司正在使用雲原生方法來顛覆傳統行業的原因。

但是,企業需要一個用於構建和運行雲原生應用和服務的平臺,來自動執行並整合 DevOps、持續交付、微服務和容器等概念:


Cloud-Native
DevOps 是軟體開發人員和 IT 運營之間的合作,目標是自動執行軟體交付和基礎架構更改流程。它創造了一種文化和環境,可在其中快速、頻繁且更可靠地構建、測試和釋出軟體。

持續交付使得單個應用更改在準備就緒後即可釋出,而不必等待與其他更改捆綁釋出或等待維護視窗期等事件。持續交付讓釋出行為變得平淡可靠,因此企業可以以更低的風險頻繁交付,並更快地獲得終端使用者的反饋,直到部署成為業務流程和企業競爭力必不可少的組成部分。

微服務是將應用作為小型服務集合進行開發的架構方法,其中每個服務都可實施業務功能,在自己的流程中執行並通過 HTTP API 進行通訊。每個微服務都可以獨立於應用中的其他服務進行部署、升級、擴充套件和重新啟動,通常作為自動化系統的一部分執行,可以在不影響最終客戶的情況下頻繁更新正在使用中的應用。

與標準虛擬機器相比,容器能同時提供效率和速度。單個作業系統例項使用作業系統 級的虛擬化,在一個或多個隔離容器之間進行動態劃分,每個容器都具有唯一的可寫檔案系統和資源配額。建立和破壞容器的開銷較低,再加上單個虛擬機器中的高包裝密度,使容器成為部署各個微服務的完美計算工具。

為什麼雲原生應用如此重要
雲原生應用專為雲模型而開發。小的專用功能團隊快速將這些應用構建和部署到可提供輕鬆的橫向擴充套件和硬體解耦的平臺,為企業提供更高的敏捷性、彈性和雲間的可移植性。

雲是一種競爭優勢
雲原生意味著將雲目標從節約 IT 成本轉變為推動企業發展。在軟體時代,如果企業可以根據客戶需求快速構建和交付應用,那麼該企業將在其行業中佔據主導地位。一旦交付,應用必須像永遠線上的彈性擴充套件服務一樣執行。

靈活性
企業可以構建無需修改便可在任何雲上執行的應用。團隊可以保留跨多個雲供應商和一個私有云遷移或分發應用的能力,以匹配自己的業務優先順序並優化雲定價。

讓開發人員以最好的狀態工作
採用雲原生應用的團隊可為開發人員省去為了在各種雲基礎架構間執行和擴充套件而編寫程式碼所產生的開銷,讓他們專注於編寫能夠交付客戶價值的程式碼。標準化開發人員體系上的 12 因素應用需要一套標準的服務,從而提供標準的開發人員“合同”,確保其應用充分利用底層的雲原生平臺。

協調運營和業務
通過實現自動化 IT 運營,企業可以轉變為一個重點明確的精益團隊,與推動業務優先事項保持一致。由於員工專注於流程改進,而不是日常的普通管理任務,他們可以消除由於人為錯誤導致的故障風險。通過在體系的所有層面進行自動化的實時修補和升級,他們可以消除停機時間,並且不再需要具有“傳承”專業知識的運營專家。

主要區別:雲原生與傳統企業應用
雲原生應用 傳統的企業應用
可預測。 雲原生應用符合旨在通過可預測行為最大限度提高彈性的框架或“合同”。雲平臺中使用的高度自動化的容器驅動的基礎架構推動著軟體編寫方式的發展。第一次作為 12 因素應用記錄的 12 個原則就是闡釋此類“合同”的良好示例。 不可預測。 傳統應用的架構或開發方式使其無法實現在雲原生平臺上執行的所有優勢。此類應用通常構建時間更長,大批量釋出,只能逐漸擴充套件,並且會發生更多的單點故障。
作業系統抽象化。 雲原生應用架構要求開發人員使用平臺作為一種方法,從底層基礎架構依賴關係中抽象出來,從而實現應用的簡單遷移和擴充套件。實現雲原生應用架構最有效的抽象方法是提供一個形式化的平臺。Pivotal Platform 非常適用於在谷歌雲端平臺 、微軟 Azure 或亞馬遜雲服務等基於雲的基礎架構上執行。 依賴作業系統。 傳統的應用架構允許開發人員在應用和底層作業系統、硬體、儲存和支援服務之間建立緊密的依賴關係。這些依賴關係使應用在新基礎架構間的遷移和擴充套件變得複雜且充滿風險,與雲模型相背而馳。
合適的容量。 雲原生應用平臺可自動進行基礎架構調配和配置,根據應用的日常需求在部署時動態分配和重新分配資源。基於雲原生執行時的構建方式可優化應用生命週期管理,包括擴充套件以滿足需求、資源利用率、可用資源編排,以及從故障中恢復,最大程度減少停機時間。 過多容量。 傳統 IT 會為應用設計專用的自定義基礎架構解決方案,這延遲了應用的部署。由於基於最壞情況估算容量,解決方案通常容量過大,同時幾乎沒有能力繼續擴充套件以滿足需求。
協作。 雲原生可協助 DevOps,從而在開發和運營職能部門之間建立密切協作,將完成的應用程式碼快速順暢地轉入生產。 孤立。 傳統 IT 將完成的應用程式碼從開發人員“隔牆”交接到運營,然後由運營人員在生產中執行此程式碼。企業的內部問題之嚴重以至於無暇顧及客戶,導致內部衝突產生,交付緩慢折中,員工士氣低落。
持續交付。 IT 團隊可以在單個軟體更新準備就緒後立即將其釋出出去。快速釋出軟體的企業可獲得更緊密的反饋迴圈,並能更有效地響應客戶需求。持續交付最適用於其他相關方法,包括測試驅動型開發和持續整合。 瀑布式開發。 IT 團隊定期釋出軟體,通常間隔幾周或幾個月,事實上,當代碼構建至釋出版本時,該版本的許多元件已提前準備就緒,並且除了人工釋出工具之外沒有依賴關係。如果客戶需要的功能被延遲釋出,那企業將會錯失贏得客戶和增加收入的機會。
獨立。 微服務架構將應用分解成小型鬆散耦合的獨立執行的服務。這些服務對映到更小的獨立開發團隊,可以頻繁進行獨立的更新、擴充套件和故障轉移/重新啟動操作,而不影響其他服務。 依賴。 一體化架構將許多分散的服務捆綁在一個部署包中,使服務之間出現不必要的依賴關係,導致開發和部署過程喪失敏捷性。
自動化可擴充套件性。 大規模基礎架構自動化可消除因人為錯誤造成的停機。計算機自動化無需面對此類挑戰,可以在任何規模的部署中始終如一地應用同一組規則。雲原生還超越了基於以虛擬化為導向的傳統編排而構建的專用自動化。全面的雲原生架構包括適用於團隊的自動化和編排,而不要求他們將自動化作為自定義方法來編寫。換句話說,自動化可輕鬆構建和執行易於管理的應用。 自動化可擴充套件性。 大規模基礎架構自動化可消除因人為錯誤造成的停機。計算機自動化無需面對此類挑戰,可以在任何規模的部署中始終如一地應用同一組規則。雲原生還超越了基於以虛擬化為導向的傳統編排而構建的專用自動化。全面的雲原生架構包括適用於團隊的自動化和編排,而不要求他們將自動化作為自定義方法來編寫。換句話說,自動化可輕鬆構建和執行易於管理的應用。
快速恢復。 容器執行時和編排程式可在虛擬機器上提供動態的高密度虛擬化覆蓋,與託管微服務非常匹配。編排可動態管理容器在虛擬機器群集間的放置,以便在發生故障時提供彈性擴充套件和恢復/重新啟動功能。 恢復緩慢。 基於虛擬機器的基礎架構對於基於微服務的應用來說是一個緩慢而低效的基礎,因為單個虛擬機器啟動或關閉的速度很慢,甚至在向其部署應用程式碼之前就存在很大的開銷。