云原生開發(fā)者的6個做與不做

開源云中文社區(qū)
遠程API會產(chǎn)生意外的結(jié)果。云原生開發(fā)需要你“優(yōu)雅”地處理這些問題。應(yīng)用程序需要給用戶某種響應(yīng),即使一個或多個組件損壞或無響應(yīng)。你還需要考慮一旦損壞或不可用的組件再次工作時如何恢復(fù)。

世界各地的開發(fā)者正在經(jīng)歷著迄今為止最大的軟件變革:從單體、單節(jié)點的應(yīng)用程序遷移到運行在分布式系統(tǒng)上的基于微服務(wù)的云原生應(yīng)用程序。

Lightbend最近完成了一項對1000多名者和其他IT決策者的調(diào)查,揭示了企業(yè)在這一轉(zhuǎn)變過程中面臨的挑戰(zhàn)以及如何應(yīng)對這些挑戰(zhàn)。作為一名開發(fā)人員或軟件工程師,你可以從這項研究了解到一些有用的東西。

別忘了為什么要采用云原生技術(shù)

你很容易陷入這樣一個困境:你想搞明白在使用什么技術(shù),以至于你忘記了當(dāng)初為什么要使用它們。但請記住,采用云基礎(chǔ)設(shè)施——無論是自己數(shù)據(jù)中心的Kubernetes集群,還是公共云中的無服務(wù)器API——不是目標(biāo)。目標(biāo)是幫助組織構(gòu)建更具可伸縮性和靈活性的應(yīng)用程序,并更快地完成構(gòu)建。如果你在構(gòu)建應(yīng)用程序時沒有真正考慮云基礎(chǔ)設(shè)施的優(yōu)缺點,那么很有可能沒有真正實現(xiàn)組織的目標(biāo)。

設(shè)計云原生應(yīng)用程序來處理無響應(yīng)或損壞的組件

節(jié)點崩潰。網(wǎng)絡(luò)故障。遠程API會產(chǎn)生意外的結(jié)果。云原生開發(fā)需要你“優(yōu)雅”地處理這些問題。應(yīng)用程序需要給用戶某種響應(yīng),即使一個或多個組件損壞或無響應(yīng)。你還需要考慮一旦損壞或不可用的組件再次工作時如何恢復(fù)。

別忘了安全性和法規(guī)遵從性

云原生應(yīng)用程序面臨獨特的合規(guī)性和安全挑戰(zhàn)。接受調(diào)查的高管們一再表示,他們希望開發(fā)者能在這些問題上多加考慮。早期將安全和合規(guī)團隊引入開發(fā)過程并愿意投入工作以了解其行業(yè)的安全性和合規(guī)性要求的開發(fā)人員不僅會在工作場所取得領(lǐng)先,也可以通過避免在開發(fā)周期中進一步重構(gòu)特性或整個應(yīng)用程序,提高團隊的工作效率。

一定要盡快找到可以轉(zhuǎn)移到微服務(wù)或無服務(wù)器的功能

云原生開發(fā)不是一個全有或全無的命題。你不必一次扔掉所有的單體。你可以構(gòu)建面向微服務(wù)的試點應(yīng)用程序,同時查看所有現(xiàn)有的單體應(yīng)用程序,并考慮哪些功能可以中斷??缍鄠€應(yīng)用程序共享的功能,如支付處理,是一個不錯的選擇。CPU密集型特性也會降低整個應(yīng)用程序的速度。鏡像轉(zhuǎn)換是一個典型的例子,它可能最好在功能即服務(wù)(FaaS)平臺上單獨運行。FaaS不會強迫用戶等待應(yīng)用程序調(diào)整上傳的一些鏡像的大小,而是可以在應(yīng)用程序的其余部分繼續(xù)運行時處理該任務(wù)。

不要以為更可配置或更便攜的解決方案是“殺手锏”

依賴于那些給開發(fā)者提供了很多選擇并且在云端之間完全可移植的框架是很誘人的。但更多的選擇和控制也意味著更復(fù)雜和更大的維護責(zé)任。這樣做的結(jié)果是,你需要做更多的工作,從而將精力集中在構(gòu)建提供業(yè)務(wù)價值的功能上的時間更少。當(dāng)然,依賴云提供商的特殊功能會降低應(yīng)用程序的可移植性。但是,如果你沒有利用這些提供商提供的資源,你真的從云計算中獲得了全部價值嗎?有時候,最好犧牲一點控制權(quán)來換取靈活性和更專注于重要事情的能力。

確定組織可以接受哪些權(quán)衡

構(gòu)建云原生應(yīng)用程序需要權(quán)衡。你需要了解這些權(quán)衡,并明確哪些是可以犧牲的,哪些是不能的。這通常意味著要與管理團隊溝通,確保技術(shù)目標(biāo)與管理目標(biāo)一致。

結(jié)論

向云原生環(huán)境的巨大轉(zhuǎn)變會要求你放棄許多您熟悉的東西,從架構(gòu)到開發(fā)流程再到框架。這也意味著放棄對應(yīng)用程序部分的控制。但是,這種改變也會讓你解脫,當(dāng)你專注于更高層次的功能時,你會從開發(fā)的苦差事中解脫出來。這種遷移意味著把更多的精力放在感興趣的事情上。

原文鏈接:

6 Cloud Native Do’s and Don’ts for Developers–The New Stack

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論