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

什麼是雲原生應用?

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

但是,企業需要一個用於構建和運行雲原生應用和服務的平臺,來自動執行並集成 DevOps、持續交付、微服務和容器等概念:
在這裏插入圖片描述

Cloud-Native

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

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

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

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

爲什麼雲原生應用如此重要

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

雲是一種競爭優勢

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

靈活性

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

讓開發人員以最好的狀態工作

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

協調運營和業務

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

主要區別:雲原生與傳統企業應用

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