作為一名開發(fā)者,你必須實(shí)時關(guān)注技術(shù)方面的進(jìn)步;我們今天主要說的是開發(fā)者應(yīng)該如何使用無服務(wù)器技術(shù)。無服務(wù)器技術(shù)或許會讓你覺得很奇怪,但是就其所帶來的價值而言,對于移動應(yīng)用開發(fā)者來說都是大有益處的。
無服務(wù)器技術(shù)于2014年問世,當(dāng)時亞馬遜網(wǎng)頁服務(wù)(AWS)推出了AWS Lambada無服務(wù)器計(jì)算服務(wù)。在該技術(shù)中的競爭始于2016年,當(dāng)時云服務(wù)供應(yīng)商都在朝著這個方向發(fā)展,而這只不過是該技術(shù)的開端。
2017年,Gartner發(fā)布了他們的年度戰(zhàn)略技術(shù)趨勢,該公司描述了無服務(wù)器技術(shù)是如何成為Meshapp和服務(wù)架構(gòu)的一部分,即通常所說的MASA。MASA架構(gòu)是一種多渠道解決方案,通過利用API,容器,微服務(wù),無服務(wù)器計(jì)算和云技術(shù)來提供靈活、動態(tài)以及模塊化的解決方案。開發(fā)者會開發(fā)更多的工具來達(dá)成這一目標(biāo)。
這也是為什么我們將要討論移動應(yīng)用開發(fā)者應(yīng)該了解無服務(wù)器技術(shù)?,F(xiàn)在我們就來說說看:
服務(wù)器依舊在服役
無服務(wù)器技術(shù)可以被描述為能夠替代具有計(jì)算能力的虛擬機(jī),能夠在需要時被調(diào)用,并且使用后會消失。在無服務(wù)器架構(gòu)中,它包括后端即服務(wù)(BaaS)和函數(shù)即服務(wù)(FaaS)。具體的事件會喚醒函數(shù),函數(shù)即一個可以在容器內(nèi)運(yùn)行的小的代碼包,當(dāng)任務(wù)完成的時候,代碼就會消失。
這一概念并不意味著服務(wù)器沒什么用了,事實(shí)上在這個過程中還是需要服務(wù)器的參與。無服務(wù)器計(jì)算和云服務(wù)的區(qū)別在于服務(wù)器并非總是在無服務(wù)器架構(gòu)中運(yùn)行的。此外,你并不需要自己管理服務(wù)器或者擔(dān)心服務(wù)器擴(kuò)展。你只需要部署代碼,然后就可以去做自己的事,由于服務(wù)器只有在需要時才會運(yùn)行,所以成本很低。
為服務(wù)買賬
作為一名開發(fā)者,你所開發(fā)的應(yīng)用程序應(yīng)兼顧無服務(wù)器架構(gòu)的低成本,高效率的特性。在無服務(wù)器架構(gòu)中,你并不需要為閑散資源買單,這是個巨大的優(yōu)勢,因?yàn)楣灸軌驕p少操作中所需要的成本。
云經(jīng)濟(jì)管理公司的一份研究顯示,大多數(shù)的虛擬機(jī)實(shí)體操作負(fù)載率都在20%。在無服務(wù)器架構(gòu)中,你只需為你所使用的資源買單,以此來避免虛擬機(jī)所產(chǎn)生的問題。
此外,無服務(wù)器也能提供Free Tier服務(wù)。這項(xiàng)技術(shù)的強(qiáng)大之處之一是,在無服務(wù)器會議上,AWS Lambada展示了兩個現(xiàn)實(shí)中的應(yīng)用程序,并且也從不會超過Free Tier的限制。這些應(yīng)用程序不需要向AWS支付任何費(fèi)用。
注重開發(fā)
在過去的幾年中,技術(shù)一直在發(fā)展,從云技術(shù)節(jié)省了公司的投資數(shù)額到使用無服務(wù)器架構(gòu)從而不需要人們對云虛擬機(jī)進(jìn)行管理。
開發(fā)者現(xiàn)在可以不必?fù)?dān)心服務(wù)管理從而可以注重移動應(yīng)用開發(fā),因?yàn)槟闼鶕?dān)心的會由無服務(wù)器供應(yīng)商承擔(dān)。公司也會有足夠的時間進(jìn)行創(chuàng)新和開發(fā)移動應(yīng)用。此外,由于無服務(wù)器技術(shù)提供了簡便的開發(fā)方式,因此更容易上市。
微服務(wù)依然會存在
微服務(wù)被用來將代碼分離處理形成小型的服務(wù),能夠簡化開發(fā)和部署階段。雖然在無服務(wù)器技術(shù)中大量使用函數(shù),微服務(wù)仍然會被使用,這是由于函數(shù)的粒度決定了其并獨(dú)立完成任務(wù)。例如,如果你當(dāng)前的API需要數(shù)據(jù)庫的協(xié)作,那么就會獲得快速響應(yīng),因?yàn)橐驗(yàn)闇?zhǔn)備工作已經(jīng)完成,但是當(dāng)涉及到函數(shù)時就不是這樣了。
更加重要的是,作為一名開發(fā)者,你需要知道微服務(wù)就像是一個函數(shù)組。微服務(wù)和函數(shù)能夠以互補(bǔ)的方式并存。終端用戶并不會感知其中的差別,但是對于開發(fā)者來說,PI作為一組應(yīng)用程序或微服務(wù)的執(zhí)行方式很重要。
原文作者:Amit Tiwari