6月3日消息,無(wú)服務(wù)器計算正在所有云服務(wù)供應商間流行著(zhù),而AWS Lambda之類(lèi)的工具將可能改變資源的利用方式,盡管這一切還在萌芽階段。
無(wú)服務(wù)器架構是云服務(wù)提供商之間最新興起的熱潮,但這種利用公有云資源的新生方法也許是一個(gè)值得現階段一切炒作的趨勢。
亞馬遜網(wǎng)絡(luò )服務(wù)(AWS)在2014年首次借由AWS Lambda推出所謂的事件驅動(dòng),無(wú)服務(wù)器計算資源。這項業(yè)務(wù)一直都占據絕對的領(lǐng)導地位,直到今年IBM,谷歌和微軟各自推出了自己的版本。他們都試圖在這個(gè)用戶(hù)越來(lái)越多的將責任下放給云服務(wù)提供商,但同時(shí)又尋求資源分配控制的更細粒度的市場(chǎng)中脫穎而出。
無(wú)服務(wù)器服務(wù)背后的想法是,開(kāi)發(fā)者不必擔心采購,配置或管理任何的基礎資源,就可以部署他們的代碼。當然,在無(wú)服務(wù)器架構中,服務(wù)器仍然存在于公有云供應商的大型數據中心的某處,但這種抽象化允許用戶(hù)和供應商雙方都能獲得更高的效率并專(zhuān)注于他們各自最擅長(cháng)的部分。
“在這種情況下,這種炒作是絕對有保障的,”Forrester Research的首席分析師Dave Bartoletti說(shuō)道。
應用在傳統上被設計成單一的整體,即將所有代碼整合成一個(gè)大塊。無(wú)服務(wù)器架構則允許開(kāi)發(fā)人員將他們的應用切成小塊,并以高度可擴展的方式在彈性的基礎架構中部署它們,甚至比使用容器還要方便,Bartoletti說(shuō)道。
能夠看出這些無(wú)服務(wù)器計算模式優(yōu)劣的一個(gè)常見(jiàn)例子是上傳照片到網(wǎng)站。要先啟動(dòng)一個(gè)實(shí)例,然后開(kāi)發(fā)人員可以編寫(xiě)一大串代碼和一堆的任務(wù),包括打開(kāi)一個(gè)文件夾、調整圖像大小、制作備份,并確保圖像正確加載。
或者,開(kāi)發(fā)人員也可以只編寫(xiě)一小段代碼,并使用一個(gè)Lambda函數來(lái)監視目錄,執行代碼,并上傳圖片。用戶(hù)只需要支付此函數運行的幾毫秒,而不是云平臺運行一個(gè)實(shí)例所需的幾分鐘或者幾小時(shí)的費用。
如此看來(lái),無(wú)服務(wù)器計算的點(diǎn)不在于其技術(shù),而是其定價(jià)和方案了,Andrew Reichman,451Research的研究總監解釋道。它有改變資源使用方式,更緊密地將基礎架構和應用程序開(kāi)發(fā)平臺聯(lián)系起來(lái)的潛力,而其定位則介于基礎架構即服務(wù)和平臺即服務(wù)(PaaS)之間。
“按小時(shí)或分鐘租賃一臺服務(wù)器是重大決策,但實(shí)際上,即使這樣也還達不到你所需要的業(yè)務(wù)細分粒度,”Reichman說(shuō)道。最終,用戶(hù)想要“做(他們)所需要的計算并只為(他們)實(shí)際使用的時(shí)間來(lái)支付費用,而不是付完錢(qián)后等待有作業(yè)運行。”
由于圍繞需求的不確定性,想知道該為某個(gè)作業(yè)選擇什么樣的服務(wù)器是很難的,Reichman說(shuō)道。即便你選擇的也許不是一個(gè)典型的私有數據中心為期五年的合同,開(kāi)發(fā)者仍然會(huì )被迫選擇一個(gè)服務(wù)器來(lái)編寫(xiě)他們的工作負載。
谷歌、微軟和IBM跟隨亞馬遜步伐
Lambda仍然是顯示無(wú)服務(wù)器計算潛力的最好例子,因為亞馬遜在市場(chǎng)上有著(zhù)相當大的領(lǐng)先,更長(cháng)的運行記錄和用戶(hù)知名度。谷歌在2月開(kāi)始進(jìn)行Cloud Functions的alpha測試,但對具體進(jìn)展守口如瓶。IBM隨之在三月份在其PaaS產(chǎn)品Bluemix中加入了OpenWhisk,盡管該服務(wù)目前還是試驗階段。微軟在三月底增加了Azure Functions做為他們一連串發(fā)布的收尾,目前該功能還在試用期。
其實(shí),Lambda并不是第一個(gè)無(wú)服務(wù)器基礎架構,就像容器在Docker誕生之前很長(cháng)時(shí)間就存在了。事實(shí)上,面對所有的炒作,部分云供應商已經(jīng)采取措施來(lái)將現有服務(wù)更名為無(wú)服務(wù)器服務(wù)。最近在舊金山舉行的用戶(hù)大會(huì )上,谷歌在谷歌云平臺上提到了至少四個(gè)無(wú)服務(wù)器的產(chǎn)品,其中包括了AppEngine,這是谷歌在2008年首次推出的PaaS產(chǎn)品。
亞馬遜還沒(méi)有披露Lambda的增長(cháng)速度,這仍然被當作為早期采用者提供的一個(gè)服務(wù),但正被高端客戶(hù)Netflix,Capital One和MLB所使用。熱門(mén)的使用案例包括無(wú)服務(wù)器數據處理功能,通過(guò)API網(wǎng)關(guān)與簡(jiǎn)單存儲服務(wù)協(xié)作來(lái)運行Web應用程序的微服務(wù),使用其將物聯(lián)網(wǎng)設備作為開(kāi)發(fā)平臺以及為無(wú)數的AWS環(huán)境提供連接。
x86的革命使得人們對應用設計的要求很低,因為當服務(wù)器有90%的時(shí)間是閑置的時(shí)候,也沒(méi)有所謂的效率之說(shuō),但現在,無(wú)服務(wù)器架構正在扭轉這個(gè)趨勢,并開(kāi)始進(jìn)入優(yōu)化的深水區,Reichman說(shuō)道。這讓人想起使用打孔卡和調度作業(yè)執行的早期大型機時(shí)代,他補充道。
為時(shí)尚早
像Lambda這樣的工具很難讓許多IT專(zhuān)業(yè)人員完全弄懂,特別是那些對本地和公有云進(jìn)行初步性?xún)r(jià)比評估的人來(lái)說(shuō),David Pippenger,一家總部位于舊金山的游戲公司GREE的高級服務(wù)器業(yè)務(wù)工程師說(shuō)道。
現在有一些非常簡(jiǎn)單的用例,但真正的潛力還在于未來(lái),Pippenger補充道。
“云就像調節按鈕讓水更大一樣便捷,我們正在越來(lái)越接近這個(gè)類(lèi)比。”
GREE已經(jīng)使用了Lambda,但該公司依然在適應這個(gè)服務(wù)。這家游戲公司原本打算在從亞馬遜關(guān)系數據庫服務(wù)(RDS)遷移到DynamoDB的過(guò)程中使用它來(lái)作為觸發(fā)器,但最終放棄了這個(gè)計劃。RDS是存放在一個(gè)虛擬私有云中,而那些為了在公共互聯(lián)網(wǎng)上使用Lambda的同時(shí)確保傳輸安全所需要的額外步驟令人望而卻步,Pippenger說(shuō)道。
雖然部分安全訪(fǎng)問(wèn)控制有了明顯的改善,但也就是這些類(lèi)型的案例凸現了其還處在萌芽階段。“它還沒(méi)有完全準備就緒進(jìn)入廣泛使用的階段,”Pippenger說(shuō)道。
Lambda只支持某些類(lèi)型的事件,而盡管其很大的賣(mài)點(diǎn)是能夠寫(xiě)完代碼就立刻運行,目前它僅支持Node。js,Python和Java。要獲得更多產(chǎn)品化用例,在延遲保證方面能夠看到更多的服務(wù)級別協(xié)議會(huì )很有幫助,Reichman說(shuō)道。
在評估一個(gè)無(wú)服務(wù)器計算的方法之前,企業(yè)應該對他們的開(kāi)發(fā)人員作調研,了解他們目前的應用可能受益的程度;如果一個(gè)任務(wù)用微服務(wù)處理更好的話(huà)就沒(méi)必要浪費時(shí)間做成無(wú)服務(wù)器計算,Bartoletti說(shuō)道。對于新的應用,開(kāi)發(fā)者應該先考慮微服務(wù)的架構,但要謹慎推行,因為將進(jìn)程分割成更小的部分時(shí)增加的復雜性可能會(huì )超出想象。
想要改造遺留應用并不容易,最好應限于那些擁有原生云架構并以DevOps模式工作的公司,Reichman說(shuō)道。
“如果你有一個(gè)充其量只是基礎架構層面的應用,那么無(wú)服務(wù)器計算與你毫不相關(guān),”他說(shuō)道。