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