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