亞馬遜AWS發(fā)布事件驅(qū)動計(jì)算服務(wù)Lambda,這可能改變程序員使用AWS的方式
亞馬遜云計(jì)算服務(wù)AWS(Amazon Web Services)今日發(fā)布面向動態(tài)應(yīng)用的無狀態(tài)事件驅(qū)動計(jì)算服務(wù) Lambda,用戶不再需要任何計(jì)算基礎(chǔ)設(shè)施就可創(chuàng)建動態(tài)應(yīng)用。從此程序員只需關(guān)心自己的代碼就好了。
AWS 為什么要造這么個(gè)東西出來呢?首先我們來看看什么是應(yīng)用的根本。
應(yīng)用最核心的是函數(shù)(functions,即業(yè)務(wù)邏輯的載體)+ 數(shù)據(jù)(data,即跟業(yè)務(wù)相關(guān)的輸入與輸出),以及這兩者之間的交互——即事件(events。常見的事件如增加、變更、刪除等)。
換言之,對于一個(gè)應(yīng)用來說,除了 functions、data、events 這三個(gè)東西是根本之外,其他無論什么代碼和框架,都是應(yīng)該被外包出去的低附加值對象。
而 Lambda 就是這樣一個(gè)外包服務(wù)平臺,程序員可以將更多的時(shí)間投入到應(yīng)用核心工作當(dāng)中,他們只需編寫代碼,定義函數(shù)觸發(fā)條件,此后程序會在條件滿足時(shí)自動運(yùn)行。
在一項(xiàng)針對該服務(wù)的Hacker News討論上,一位曾有Lambda早期接入權(quán)限的工程師說道,真正靠這項(xiàng)功能提高效率可能尚需時(shí)日,不過一旦過了這個(gè)階段,它很可能改變工程師們使用AWS的方式。
在一項(xiàng)任務(wù)觸發(fā)后的幾毫秒,Lambda會通過無狀態(tài)的云功能處理該任務(wù),并且,數(shù)千個(gè)任務(wù)可以并發(fā)運(yùn)行。
正如Vogels指出的,Lambda遵循的是基本的編程原則,目前該服務(wù)僅支持JS/node,不過未來會支持更多語言。用戶在創(chuàng)建了函數(shù)后,需要賦予與它關(guān)聯(lián)的上下文和資源。當(dāng)資源發(fā)生變化時(shí),函數(shù)會被觸發(fā),并且在沒有任何人為干預(yù)的情況下自動運(yùn)行。
Lambda服務(wù)的定價(jià)見官網(wǎng),由請求數(shù)、function 運(yùn)行期間使用的存儲、運(yùn)行期間使用的內(nèi)存三部分來定義。預(yù)覽版期間有一部分免費(fèi)用量。