新聞中心
如何開始云原生應(yīng)用開發(fā)
譯文 精選
作者: 盧鑫旺 2022-02-21 09:00:00
云計(jì)算
云原生 在新技術(shù)的推動(dòng)下,軟件,數(shù)據(jù)存儲(chǔ)和基礎(chǔ)設(shè)施向云大幅邁進(jìn),使工作負(fù)載在云環(huán)境中易于開發(fā)和執(zhí)行。

站在用戶的角度思考問題,與客戶深入溝通,找到景谷網(wǎng)站設(shè)計(jì)與景谷網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋景谷地區(qū)。
譯者 | 盧鑫旺
審校 | 孫淑娟、梁策
1200億美元。
根據(jù)Forrester的一份報(bào)告,這就是全球云計(jì)算市場的規(guī)模。
在新技術(shù)的推動(dòng)下,軟件,數(shù)據(jù)存儲(chǔ)和基礎(chǔ)設(shè)施向云大幅邁進(jìn),使工作負(fù)載在云環(huán)境中易于開發(fā)和執(zhí)行。
根據(jù)云原生計(jì)算基金會(huì)(CNCF)的說法:
“云原生技術(shù)能讓企業(yè)在如公有云、私有云和混合云的現(xiàn)代動(dòng)態(tài)環(huán)境中構(gòu)建和運(yùn)行可擴(kuò)展的應(yīng)用程序。容器,服務(wù)網(wǎng)格,微服務(wù),不可變基礎(chǔ)設(shè)施和聲明式API都是這個(gè)領(lǐng)域的應(yīng)用典范。
如果這些對(duì)你來說有點(diǎn)陌生,不要擔(dān)心,我們下一節(jié)中還會(huì)談到。
各種形式的云計(jì)算是商業(yè)技術(shù)的新面孔,如今則是企業(yè)的一個(gè)成熟的功能??梢哉f,許多大公司都是靠他們運(yùn)行的云應(yīng)用來做生意的。這不僅包括Uber和DoorDash等“初創(chuàng)公司”,也包括為經(jīng)紀(jì)人提供股票交易應(yīng)用的金融公司。
來自CNCF的數(shù)據(jù)顯示,目前有超過600多萬開發(fā)者正在為各種業(yè)務(wù)功能構(gòu)建云原生應(yīng)用程序。這些應(yīng)用程序基于DevOps等最佳實(shí)踐,因此可擴(kuò)展到底層基礎(chǔ)設(shè)施的極限。
接下來讓我們來探索一下什么是云原生應(yīng)用程序開發(fā),以及它如何給你的業(yè)務(wù)帶來更多價(jià)值。
什么是云原生應(yīng)用開發(fā)?
云原生應(yīng)用開發(fā)是在云中,并為云開發(fā)應(yīng)用程序的過程。
聽起來是不是太簡單了?
實(shí)際過程可能看起來很復(fù)雜,不過其核心思想并不難理解。進(jìn)一步分解這個(gè)過程,云原生應(yīng)用程序就是一組容器化微服務(wù)的集合,它們通過一個(gè)可以持續(xù)交付的自適應(yīng)基礎(chǔ)設(shè)施進(jìn)行管理。
在一些傳統(tǒng)的項(xiàng)目中,基礎(chǔ)設(shè)施分配系統(tǒng)管理員負(fù)責(zé)管理。然而在云原生應(yīng)用的開發(fā)生命周期中,編排引擎會(huì)控制這個(gè)過程。這意味著,開發(fā)人員或管理人員不必再花時(shí)間去處理資源分配這些問題。相反,每個(gè)資源分配決策都是基于系統(tǒng)中預(yù)先配置的規(guī)則。
應(yīng)用程序依賴的開發(fā)環(huán)境或者技術(shù)設(shè)施,對(duì)開發(fā)者來說是“抽象的”或不可見的。他們可以使用自己選擇的技術(shù)來開發(fā)微服務(wù),增強(qiáng)應(yīng)用程序的可移植性,并允許對(duì)代碼進(jìn)行快速更改。這是敏捷開發(fā)的核心原則之一,即快速開發(fā)、快速發(fā)布,并滿足業(yè)務(wù)用戶的實(shí)時(shí)需求。
從過程的角度來看,下面列出了如何進(jìn)行云原生應(yīng)用程序開發(fā):
- 將開發(fā)、IT管理和領(lǐng)導(dǎo)團(tuán)隊(duì)的DevOps實(shí)踐內(nèi)部化。
- 選擇如Kubernetes這樣的容器管理平臺(tái),它構(gòu)成運(yùn)行和開發(fā)微服務(wù)的基礎(chǔ)。
- 確保開發(fā)人員熟悉使用容器化技術(shù),并確保通過編排引擎管理資源分配。DevOps團(tuán)隊(duì)可以通過項(xiàng)目的生命周期來監(jiān)控項(xiàng)目。
- 項(xiàng)目交付必須是自動(dòng)、可持續(xù)化的,具有沙箱和內(nèi)置的可觀察性。
云原生應(yīng)用的商業(yè)價(jià)值
云原生應(yīng)用為你的業(yè)務(wù)提供了幾種效率高,性能好的典范,以下是幾個(gè)明顯的好處:
1.項(xiàng)目生命周期更具成本效益
對(duì)于應(yīng)用程序開發(fā)項(xiàng)目來說,資源管理是最不容忽視的挑戰(zhàn)之一。有經(jīng)驗(yàn)的團(tuán)隊(duì)往往會(huì)為了安全而過度分配資源。雖然這確保了項(xiàng)目生命周期的順利進(jìn)行,但最終卻增加了應(yīng)用開發(fā)的成本,并降低了項(xiàng)目可能的回報(bào)。
云原生的一個(gè)重要方面是,它不需要負(fù)載平衡、配置,甚至不需要手動(dòng)分配。云資源是自主管理的,允許它們根據(jù)測(cè)試和部署的需要擴(kuò)展和收縮。節(jié)約的成本會(huì)在整個(gè)項(xiàng)目生命周期不斷累積,使云原生應(yīng)用程序開發(fā)過程更具成本效益。
2. 彈性架構(gòu)
因?yàn)檎_\(yùn)行時(shí)間與數(shù)據(jù)中心或公共或私有云中的VDI環(huán)境中的虛擬機(jī)(VM)的正常運(yùn)行時(shí)間直接相關(guān),一些開發(fā)人員發(fā)現(xiàn)使用云部署具有挑戰(zhàn)性。云原生應(yīng)用程序是可移植的,并且獨(dú)立于虛擬機(jī)運(yùn)行。換句話說,除非某個(gè)特定的微服務(wù)需要一個(gè)專用的GPU,否則該架構(gòu)可以無縫運(yùn)行,幾乎不需要任何依賴。
依賴越少,工作負(fù)載就越有彈性,故障排除也變得更簡單和更快。由于云基礎(chǔ)設(shè)施依賴關(guān)系不再是問題,項(xiàng)目管理者們可以將他們的精力集中在隔離其他潛在的威脅上。
3. 產(chǎn)品更快推向市場
持續(xù)集成和持續(xù)交付(CI/CD)是云原生應(yīng)用開發(fā)成功的關(guān)鍵。到目前為止,軟件交付過程受制于各個(gè)階段——在發(fā)布alpha、beta和生產(chǎn)版本之前需要進(jìn)行全面的測(cè)試。
如今,該過程可以完全自動(dòng)化,在云環(huán)境中進(jìn)行按需智能測(cè)試和持續(xù)部署。與DevOps同步使用,可以讓項(xiàng)目團(tuán)隊(duì)在更大范圍內(nèi)進(jìn)行協(xié)作,降低產(chǎn)品發(fā)布的風(fēng)險(xiǎn),大大縮短從開發(fā)到第一個(gè)版本發(fā)布的時(shí)間。
4. 不依賴供應(yīng)商
供應(yīng)商鎖定是幾乎所有應(yīng)用程序的一個(gè)主要問題,包括那些部署在主要云提供商(如谷歌、亞馬遜或微軟)上的應(yīng)用程序。除非你自己也是一個(gè)科技巨頭,否則工作負(fù)載的平穩(wěn)運(yùn)行取決于云存儲(chǔ)供應(yīng)商的可用性和效率。
由于云原生應(yīng)用程序是可移植的,它們消除了對(duì)單一平臺(tái)或云基礎(chǔ)設(shè)施的依賴問題。無論底層架構(gòu)如何,開發(fā)人員都可以繼續(xù)更新和升級(jí)應(yīng)用程序,并充分利用新的PaaS和IaaS服務(wù)。
云原生應(yīng)用的關(guān)鍵特性
云原生應(yīng)用的定義特征如下:
- 基于容器的基礎(chǔ)設(shè)施
- 微服務(wù)的架構(gòu)體系
- 使用持續(xù)集成和持續(xù)交付(CI/CD)
- DevOps敏捷開發(fā)
總之,這些都可以轉(zhuǎn)化為應(yīng)用開發(fā)過程的許多好處:
1. 模塊化管理
單體式應(yīng)用的最大挑戰(zhàn)之一是可擴(kuò)展性問題。在開始時(shí),它會(huì)隨著開發(fā)團(tuán)隊(duì)的規(guī)模和專業(yè)知識(shí)而成比例地?cái)U(kuò)展。然而,隨著每一個(gè)功能和特性增加,單體架構(gòu)變得更加復(fù)雜。
這樣,在產(chǎn)品生命周期中就會(huì)出現(xiàn)這樣的情況:產(chǎn)品所有者無法理解整個(gè)應(yīng)用程序,開發(fā)團(tuán)隊(duì)不知道他們的模塊如何與其他模塊集成,QA團(tuán)隊(duì)無法測(cè)試修改一個(gè)特征對(duì)整個(gè)應(yīng)用程序的影響。
應(yīng)用程序中缺乏可見性會(huì)帶來更多的問題,因?yàn)殚_發(fā)人員無法處理額外的功能。應(yīng)用程序的體系結(jié)構(gòu)變得混亂,一個(gè)小的變化可能會(huì)引發(fā)大故障。
這些結(jié)構(gòu)性問題可以通過使用微服務(wù)來解決,微服務(wù)是單獨(dú)構(gòu)建的模塊,每個(gè)模塊只負(fù)責(zé)一個(gè)特定特征。因此,可以測(cè)試和更新應(yīng)用程序的部分內(nèi)容,而不需要更改整個(gè)應(yīng)用程序的代碼或運(yùn)行。
2. 自主資源分配
使用云原生應(yīng)用,開發(fā)人員不需要直接與云基礎(chǔ)設(shè)施提供商的應(yīng)用程序編程接口(API)交互。相反,DevOps團(tuán)隊(duì)可以為每個(gè)容器(在其中開發(fā)應(yīng)用程序)分配計(jì)算、內(nèi)存和存儲(chǔ)資源設(shè)置一個(gè)集中的策略。
資源自動(dòng)分配直接影響到項(xiàng)目的投資回報(bào)率(ROI)。因此,分配的資金多一個(gè)或少一個(gè)小數(shù)點(diǎn)就會(huì)改變申請(qǐng)成功的可能。通過將應(yīng)用程序的需求與可用資源精確匹配,資源自主分配可降低這些風(fēng)險(xiǎn)。
3. 異步開發(fā)
云原生應(yīng)用程序本質(zhì)上是聚合和容器化的微服務(wù)。對(duì)于用戶來說,這意味著當(dāng)一個(gè)微服務(wù)功能失常時(shí),它不會(huì)影響其他微服務(wù)的性能。每個(gè)微服務(wù)都是封裝的,并且有自己的依賴,所以一個(gè)微服務(wù)不會(huì)讓整個(gè)應(yīng)用程序受到威脅。
同樣的邏輯也適用于開發(fā)過程。除非容器化的微服務(wù)具有共同的依賴項(xiàng)(在這種情況下,這些依賴項(xiàng)可以被復(fù)制或分離),否則它們可以被異步開發(fā)、測(cè)試并添加到生產(chǎn)應(yīng)用程序中。因此,你可以并行開發(fā)多個(gè)特征或應(yīng)用程序模塊,而不用擔(dān)心集成問題。
4. 快速擴(kuò)展
雖然云服務(wù)和微服務(wù)都在為未來鋪平道路,但企業(yè)仍有遺留的基礎(chǔ)設(shè)施投資尚未充分利用。由于云原生應(yīng)用是打包成容器的自主服務(wù)的集合,它們可以動(dòng)態(tài)地向外和向內(nèi)擴(kuò)展(或多或少地使用計(jì)算或存儲(chǔ)資源),這與傳統(tǒng)基礎(chǔ)設(shè)施中的虛擬機(jī)不同。
云原生應(yīng)用程序允許基于API與遺留系統(tǒng)和數(shù)據(jù)進(jìn)行集成。這使得即使是小型企業(yè)也能在從傳統(tǒng)基礎(chǔ)設(shè)施向云計(jì)算過渡的過程中加速數(shù)字化轉(zhuǎn)型過程。
5. 綜合性應(yīng)用職能
微服務(wù)非常適合獨(dú)立的審查、分析和評(píng)估。因此,開發(fā)人員可以在獨(dú)立的基礎(chǔ)上以及在整個(gè)項(xiàng)目的上下文中評(píng)估每個(gè)微服務(wù)的性能。由于采用了模塊化和彈性架構(gòu),全堆棧的可觀察性和特定的監(jiān)控機(jī)制使得對(duì)應(yīng)用程序進(jìn)行調(diào)整變得更加容易。
結(jié)語
云原生應(yīng)用是為軟件開發(fā)和云技術(shù)的下一個(gè)時(shí)代而設(shè)計(jì)的。憑借其多功能性和敏捷性,云原生技術(shù)可以讓企業(yè)將其技術(shù)投入與業(yè)務(wù)目標(biāo)相匹配。無論你是中小企業(yè)還是大型企業(yè),現(xiàn)在都可以智慧地使用云原生來幫助解決業(yè)務(wù)問題并提高運(yùn)營效率。
譯者介紹
盧鑫旺,51CTO社區(qū)編輯,半路出家的九零后程序員。做過前端頁面,寫過業(yè)務(wù)接口,搞過爬蟲,研究過JS,有幸接觸Golang,參與微服務(wù)架構(gòu)轉(zhuǎn)型。目前主寫Java,負(fù)責(zé)公司可定制化低代碼平臺(tái)的數(shù)據(jù)引擎層設(shè)計(jì)開發(fā)工作。
原文標(biāo)題:How To Get Started With Cloud Native Application Development,作者:Dipti Parmar
當(dāng)前題目:如何開始云原生應(yīng)用開發(fā)
瀏覽地址:http://fisionsoft.com.cn/article/cceidec.html


咨詢
建站咨詢
