亚洲先锋影音人AV成_免费A级毛片一分钟_人人爽人人爽人人插_日韩少妇极品熟妇人妻潮喷

沃卡惠移動端logo

簡單聊聊云原生

2024-03-19 09:28:334636

云原生,作為一種新興的軟件架構(gòu)模式,目的在推動應用程序的敏捷開發(fā)、快速部署和可靠運行。雖然這一概念已經(jīng)提出多年,但直至最近幾年,云原生才逐漸引起了華中區(qū)客戶的廣泛關(guān)注和認知(不一定準確,從我的感覺和經(jīng)驗來看是這樣的)。

本文結(jié)合我收集整理的資料、以及我的理解,來看看云原生是怎么回事?

概念

要搞清一個技術(shù),先從概念開始,跟云原生這個概念有關(guān)的主要有兩個組織:Pivotal和CNCF。

Pivotal:Pivotal成立于2013年4月,由EMC、VMware和GE投資成立,專注于幫助企業(yè)在數(shù)字化時代變革所需的PaaS云計算、大數(shù)據(jù)基礎平臺和平臺上的極限編程。

CNCF:CNCF(Cloud Native Computing Foundation,云原生計算基金會)是Linux基金會旗下的基金會,可以理解為一個非盈利組織,成立于2015年12月11日。

2015年,來自Pivotal公司的技術(shù)產(chǎn)品經(jīng)理Matt Stine,首次提出了云原生的概念,認為云原生架構(gòu)必須包含下面一些特性:

符合十二要素、微服務、敏捷基礎設施、基于API的協(xié)作、抗壓性

2017年,Matt Stine在接受InfoQ采訪時,將云原生特性做了些調(diào)整:

模塊化、可觀測性、可部署性、可測試性、可處理性、可替換性

微服務、DevOps、容器、服務網(wǎng)格、CI/CD、Serverless

可見,云原生的定義是在不斷演進的,不斷會有新的東西加入。

再來看看CNCF的官方最早是怎么定義的:

Cloud native computing uses an open source software stack to deploy applications as microservices, packaging each part into its own container, and dynamically orchestrating those containers to optimize resource utilization.

云原生使用一種開源軟件技術(shù)棧來部署微服務應用,將每個組件打包到它自己的容器中,并且通過動態(tài)編排來優(yōu)化資源的利用率。

云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動態(tài)環(huán)境中,構(gòu)建和運行可彈性擴展的應用。云原生的代表技術(shù)包括容器、服務網(wǎng)格、微服務、不可變基礎設施和聲明式API。

這些技術(shù)能夠構(gòu)建容錯性好、易于管理和便于觀察的松耦合系統(tǒng)。結(jié)合可靠的自動化手段,云原生技術(shù)使工程師能夠輕松地對系統(tǒng)作出頻繁和可預測的重大變更。

云原生計算基金會(CNCF)致力于培育和維護一個廠商中立的開源生態(tài)系統(tǒng),來推廣云原生技術(shù)。我們通過將最前沿的模式民主化,讓這些創(chuàng)新為大眾所用。

云計算和云原生的關(guān)系

早些年,傳統(tǒng)的企業(yè)軟件開發(fā)是部署在企業(yè)的內(nèi)部物理機中,為了讓一個系統(tǒng)能正常運行,通常需要很多的機器,數(shù)據(jù)庫、中間件、程序的前后端都需要進行單獨部署。

后來有了虛擬化技術(shù),通過在各種實體資源(CPU、內(nèi)存、網(wǎng)絡、存儲等)之上構(gòu)建一個邏輯層,從而擺脫物理限制的約束,提高物理資源的利用率。最直觀的感受就是可以在一臺物理機上快速運行多個虛擬機、意味著可以降低物理機的數(shù)量,節(jié)約成本。

虛擬技術(shù)的成熟促成了云計算的出現(xiàn)。2006年Google首次提出了云計算的概念。云計算出現(xiàn)之后,就慢慢出現(xiàn)了XaaS:

IaaS(基礎設施即服務):一種云計算服務類型,它按即用即付的方式按需提供必要的計算、存儲和網(wǎng)絡資源。這種服務模式幫助客戶降低維護成本和硬件成本。

PaaS(平臺即服務):云計算服務模式之一,它為開發(fā)人員提供了包括一系列開發(fā)工具、服務、應用程序接口(API)等資源的平臺。它的目標是讓開發(fā)者能夠更快速、高效地構(gòu)建、發(fā)布、擴展和維護應用,同時云服務商負責管理和提供開發(fā)環(huán)境。

aPaaS(應用平臺即服務):是一類特定的PaaS,重點在于為應用程序提供更快捷的構(gòu)建服務,例如低代碼能力。通常包括通過可視化操作減少原生代碼使用、高效的數(shù)據(jù)處理、模塊化的功能實現(xiàn)等,目的是為了讓開發(fā)者更高效地搭建、運行、維護和擴展應用。

DaaS(數(shù)據(jù)即服務):將數(shù)據(jù)從靜態(tài)資源轉(zhuǎn)變?yōu)橐环N可通過網(wǎng)絡獲取的即時服務。用戶可以方便地訪問和使用數(shù)據(jù),無需關(guān)心數(shù)據(jù)存儲和管理的底層細節(jié)。數(shù)據(jù)通過平臺進行集中化管理,提供規(guī)范化、標準化的數(shù)據(jù)訪問和數(shù)據(jù)處理流程。

FaaS(函數(shù)即服務):是一種基于事件驅(qū)動的無服務器執(zhí)行模式,在這種模式中,開發(fā)人員無需關(guān)心服務器的管理和維護,只需編寫并上傳業(yè)務函數(shù)代碼。當觸發(fā)特定事件時,這些代碼由云服務商在全托管的環(huán)境中執(zhí)行。

SaaS(軟件即服務):一種云計算模式,在這種模式中,軟件通常以網(wǎng)絡瀏覽器的形式提供給用戶。用戶不需要在本地機器上安裝或維護軟件,所有的應用程序和數(shù)據(jù)庫都位于云端的數(shù)據(jù)中心。這減少了用戶在軟件和硬件方面的投入和維護工作。

云計算的興起,一些企業(yè)將軟件逐漸遷移到公有云,無需再關(guān)心網(wǎng)絡、存儲、服務器等,這些都由云廠商的IaaS、PaaS能力提供。

但是,也只能說是將應用遷移到了云端,只是軟件運行的平臺和運維體系發(fā)生了變化,軟件的架構(gòu)和業(yè)務形式并沒有發(fā)生大的變化。部署到云端的應用并沒有將云的特性展現(xiàn)出來,原因是因為這些應用大多都是傳統(tǒng)的單體架構(gòu),在靈活性擴展性上都有很大的局限性。所以說,這還不是真正的云原生應用。

要做到真正的云原生應用,程序需要做一定的改造,要能適配容器化部署和編排;要能像微服務應用一樣快速響應、動態(tài)伸縮;要能適配各種云端的中間件等。

云原生使用了云計算的能力,云計算提供了強大的基礎設施和計算資源,為云原生的發(fā)展提供了基礎,而云原生則通過優(yōu)化應用程序的架構(gòu)和管理方式,更好地利用云計算的優(yōu)勢。它們之間是相輔相成的。

云原生的好處

從上面的介紹中也可以看出,云原生終極目的就是可以省各種成本,比如:開發(fā)成本、運維成本、硬件成本、維護成本等。

之所以可以省成本,主要得益于以下幾個方面的設計和實踐:

容器化:通過容器化應用程序,將應用程序及其依賴項打包成輕量級、可移植的容器,使得它們更易于部署和擴展。

容器編排:自動化部署和容器編排工具(如Kubernetes)可以快速、動態(tài)地調(diào)整應用程序?qū)嵗臄?shù)量,為流量和負載的變化提供響應,從而提高了彈性和可伸縮性。

微服務架構(gòu):云原生架構(gòu)通常采用微服務架構(gòu),它將應用程序拆分為一組小型的、獨立部署的服務,使得每個服務都可以獨立擴展和調(diào)整,為系統(tǒng)整體提供了更強的彈性。我理解的微服架構(gòu)務并不一定是物理上的拆分,如果能實現(xiàn)邏輯上的拆分,即便物理上仍然是一個單體,也是具備可伸縮性、靈活性的。

動態(tài)資源調(diào)度:云原生架構(gòu)允許動態(tài)調(diào)度資源,根據(jù)需求分配計算資源,以滿足應用程序的需求,從而提高了資源利用率,同時提供了更好的彈性。

快速交付和持續(xù)部署:云原生架構(gòu)支持自動化的持續(xù)集成和持續(xù)交付(CI/CD)流程,能夠使新功能、更新和修復迅速地交付給用戶。這提高了開發(fā)團隊的效率,縮短了產(chǎn)品上線周期,有助于企業(yè)更快速地響應市場變化。

最后

我們在了解云原生概念、開發(fā)云原生應用的時候,一定要能真正去解決業(yè)務痛點,享受云原生帶來的好處,比如說對程序進行微服務改造,那么我們是不是應該事先考慮下改造的成本、改造后帶來的好處和帶來的問題,綜合權(quán)衡后再做決定。