什么是云原生平臺
云原生計算是一種利用專門為云設(shè)計的軟件開發(fā)技術(shù)的方法。
Gartner估計,到 2022 年,最終用戶在公共云服務(wù)上的支出將增長 20.4%,達(dá)到 4947 億美元。這高于 2021 年的 4109 億美元。到 2023 年,終端用戶支出預(yù)計將達(dá)到近 6000 億美元。
有趣的是,云計算作為過去十年的主要流行語之一,尚未在牛津詞典中確立為一個術(shù)語。
云計算方法可以追溯到 1990 年,但直到 2006 年左右大型 IT 公司開始創(chuàng)建基于云的軟件工具時,它才受到公眾的關(guān)注。對“云計算”的最早描述之一是指一種新范式,在這種范式中,人們越來越多地通過 Web 而不是桌面訪問軟件、計算機(jī)功能和文件。
云計算簡化了用戶的日常工作,使事情變得更快、更方便。
對于開發(fā)者社區(qū)來說,云計算意味著所有架構(gòu)都基于外部基礎(chǔ)設(shè)施,不需要自行管理。今天的云計算提供了一組圍繞云構(gòu)建的相關(guān)工具和軟件服務(wù),可以靈活地利用它。這些新服務(wù)和工具通過由云提供商或社區(qū)創(chuàng)建的開放協(xié)議鏈接起來。
在過去的十年中,大多數(shù)企業(yè)都轉(zhuǎn)向了在線,新公司最初都設(shè)置在虛擬環(huán)境中。軟件公司帶著以前沒有的完全不同的產(chǎn)品進(jìn)入市場。多虧了這些產(chǎn)品,云計算才能達(dá)到我們今天使用的規(guī)模。
我們可能不記得了,但直到最近二十年才推出了 Amazon Web Services、Microsoft Azure、Google App Engine 和 Google Cloud 服務(wù)等產(chǎn)品。如今,隨著云計算無處不在,我們似乎一直都擁有它。
云計算鼓勵采用新的非整體式方法來構(gòu)建應(yīng)用程序,開發(fā)公司繼續(xù)實現(xiàn)現(xiàn)代化并將新的增強(qiáng)工具和工具推向市場。
云的最新發(fā)展包括公共云、私有云和混合云平臺的興起。云供應(yīng)商不僅提供云本身,而且還為開發(fā)人員提供許多有用的工具。云選擇不僅適用于私有云或公共云。還必須為與云一起使用的所有工具做出選擇。
以云為中心的服務(wù)和軟件的持續(xù)趨勢之一是,不僅要為云提供單一工具,還要創(chuàng)建一個帶有一組工具的完整平臺,以更好地運(yùn)行應(yīng)用程序。
今天我們都使用云服務(wù)。個人或企業(yè)使用基于云的應(yīng)用程序,企業(yè)為此基礎(chǔ)設(shè)施付費,軟件開發(fā)人員構(gòu)建它們。云計算越來越復(fù)雜,企業(yè)對它提出了更高的要求。開發(fā)人員社區(qū)繼續(xù)開發(fā)和增強(qiáng)基于云的結(jié)構(gòu)。人們有興趣在這種現(xiàn)代環(huán)境中找到一種用于應(yīng)用程序開發(fā)的簡單、有效、低成本的工具。因此,自 2016 年以來,云開始從對開發(fā)人員友好轉(zhuǎn)變?yōu)橛砷_發(fā)人員驅(qū)動也就不足為奇了。應(yīng)用開發(fā)者已經(jīng)開始充分利用云的可用工具。大量服務(wù)正在努力變得對開發(fā)人員更加友好,以吸引更多客戶。意識到需求和利潤潛力,云供應(yīng)商已經(jīng)開發(fā)(并將繼續(xù)開發(fā))開發(fā)人員想要和需要的工具。
云原生是我們現(xiàn)在經(jīng)??吹降囊粋€名詞,但是到底是什么意思呢?
云原生計算是一種利用專為云設(shè)計的軟件開發(fā)技術(shù)的方法。其中包括微服務(wù)、容器、CI/CD、敏捷方法等。
根據(jù)云原生計算基金會(CNCF) 的說法:“云原生技術(shù)使組織能夠在公共云、私有云和混合云等現(xiàn)代動態(tài)環(huán)境中構(gòu)建和運(yùn)行可擴(kuò)展的應(yīng)用程序。容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API就是這種方法的例證。這些技術(shù)使松散耦合的系統(tǒng)具有彈性、可管理和可觀察性。結(jié)合強(qiáng)大的自動化,它們使工程師能夠以最少的工作量頻繁且可預(yù)測地進(jìn)行高影響的更改。”
CNCF 是一個組織,旨在通過培育和維持開源、供應(yīng)商中立項目的生態(tài)系統(tǒng)來推動云原生范式的采用。
今天有大量的云原生系統(tǒng)、平臺和組件。它們都服務(wù)于云的更好性能。云原生組件對 Java 應(yīng)用程序具有非凡的價值。所有的Java應(yīng)用都需要適應(yīng)云環(huán)境。做到這一點的唯一方法是使用 Java 云原生工具。
云原生是關(guān)于速度和敏捷性的。業(yè)務(wù)系統(tǒng)正在從賦能業(yè)務(wù)能力的目標(biāo)走向成熟,成為戰(zhàn)略轉(zhuǎn)型和業(yè)務(wù)加速的新任務(wù)?,F(xiàn)代商業(yè)的當(dāng)務(wù)之急是立即將新想法推向市場。
同時,業(yè)務(wù)系統(tǒng)也變得越來越復(fù)雜,用戶要求也越來越高。用戶期望快速流暢的響應(yīng)、尖端的功能和零停機(jī)時間。任何性能問題和軟件錯誤都會將您的用戶引向競爭對手。云原生系統(tǒng)旨在支持快速變化、擴(kuò)展和擴(kuò)展的靈活性。
所有主要的軟件開發(fā)公司都在展示云原生系統(tǒng)工具。這種架構(gòu)風(fēng)格賦予業(yè)務(wù)應(yīng)用程序快速響應(yīng)市場條件的能力。他們即時更新實時、復(fù)雜應(yīng)用程序的小區(qū)域,無需完全重新部署,并允許單獨擴(kuò)展服務(wù)。
主要的云原生支柱
盡管自 2004 年以來就出現(xiàn)了第一個容器( Solaris 區(qū)域),但這些早期的容器非常有限并且僅限于某些計算機(jī)系統(tǒng)。直到 2013 年,當(dāng) Docker 提出了一個功能更強(qiáng)大的容器時,這些工具才流行起來。Docker 和容器使用的增長同時發(fā)生并非巧合。
2017 年,數(shù)百個已經(jīng)存在多年的工具被修改并用于簡化容器的工作。Kubernetes由谷歌于 2014 年開發(fā),隨后作為開源產(chǎn)品提供,就是其中之一。Kubernetes 是一個容器編排系統(tǒng),旨在自動化應(yīng)用程序部署、擴(kuò)展和管理。
Kubernetes 是在開發(fā)人員中非常流行的云環(huán)境云原生技術(shù)的一個很好的例子。
然而,集裝箱走得更遠(yuǎn),今天市場上提供了整個系列。容器有助于云原生系統(tǒng),是它們不可避免的組成部分。對于 Java 應(yīng)用程序,我們使用微容器來降低內(nèi)存需求,提高性能和規(guī)模,并允許零時間下載應(yīng)用程序。
容器與專為云系統(tǒng)設(shè)計的微服務(wù)方法配合得很好。微服務(wù)是云原生系統(tǒng)的另一個支柱。
Native Image Kit (NIK)是云原生系統(tǒng)的另一個重要組成部分。NIK 是一種實用程序,可將基于 JVM 的應(yīng)用程序轉(zhuǎn)換為完全編譯的可執(zhí)行文件,以幾乎即時的啟動時間提供許多人搜索的結(jié)果。NIK 優(yōu)化了您應(yīng)用程序中的許多特性,包括資源消耗和靜態(tài)足跡。
云原生JDK Runtime是完善整個云原生系統(tǒng)的又一必備。眾所周知,JDK 運(yùn)行時有很多選擇,包括來自 OpenJDK 供應(yīng)商的選擇。為了您的應(yīng)用程序運(yùn)行更順暢,建議使用針對云環(huán)境優(yōu)化的Java Runtime 。值得研究運(yùn)行時市場。即使需要更長的時間,在優(yōu)化的 JDK 上構(gòu)建應(yīng)用程序也會簡化開發(fā)工作并改進(jìn)應(yīng)用程序運(yùn)行的指標(biāo)。
云原生系統(tǒng)
云計算的總體趨勢是軟件不應(yīng)該作為一個系統(tǒng)出現(xiàn),而是作為一個系統(tǒng)出現(xiàn)。例如,AWS提供了一整套與云打交道的工具,包括云遷移服務(wù)、云運(yùn)維工具、容器等。
軟件開發(fā)的這種變化是非常合乎邏輯的。云計算軟件組件的系統(tǒng)化方法可提供更流暢的應(yīng)用程序運(yùn)行、成本節(jié)約以及更高的效率和速度。因此,如今軟件開發(fā)公司不再提供單一產(chǎn)品,而是提供一整套云工具也就不足為奇了。
在現(xiàn)代軟件開發(fā)中,最好使用完整的云原生系統(tǒng),而不是從不同提供商處獲取的云原生組件。許多供應(yīng)商今天交付的一種系統(tǒng)的方法允許來自一個供應(yīng)商的更好的兼容性和技術(shù)支持。隨著云原生系統(tǒng)的不斷增強(qiáng),您可能會期待在您選擇的云原生平臺中使用新的工具。總的來說,您將獲得一種很好的方式來平滑地使經(jīng)典 Java 適應(yīng)現(xiàn)代環(huán)境,并通過增加虛擬應(yīng)用程序的所有關(guān)鍵指標(biāo)(RAM 消耗、速度等)來節(jié)省成本。
云原生平臺是向前邁出的一步,也是通過多個提供商部署不同單一解決方案的更好替代方案。這種方法的好處很簡單:供應(yīng)商在一個平臺上提供的以云為中心的工具是兼容的,并且在采用多個平臺工具時通常會提高應(yīng)用程序性能,由同一個技術(shù)團(tuán)隊支持,所有這些工具都在一條線上進(jìn)行更新.
云原生平臺仍然是一個新興趨勢。沒有任何供應(yīng)商可以在一個生態(tài)系統(tǒng)中提供所有種類的云原生產(chǎn)品。
因此,作為開發(fā)人員,您可能最終需要兩三個信譽(yù)良好的供應(yīng)商才能獲得該軟件。
不可否認(rèn),使用云原生平臺而不是部署單一解決方案確實可以節(jié)省開發(fā)團(tuán)隊的時間并顯著降低成本。選擇此類儀器需要額外的時間進(jìn)行研究和測試,但有助于在未來節(jié)省更多資源。