身為維運工程師,我們的日常大概就是這樣:
講白了,我們常常不是在寫維運腳本,就是在跟 Server 的設定檔做拉距戰。還常常系統崩給你看。
這時候 AWS Lambda 就跳出來說:「兄弟,要不要試試 Serverless?」
Serverless 不是沒有 Server,而是 Server 的事情不用你管,AWS 幫你養、幫你顧。
就像你家隔壁新開了一間自助洗衣店,你不但不用再拿洗衣板蹲在浴室,也不用管洗衣機、烘乾機的維護了。
有這種好事?!有哦!Server 不用你管,也不用你更新,你只要負責用就好(還有付錢)。
用最簡單的話說,AWS Lambda 就是一個雲端「程式碼即服務(Function as a Service, FaaS)」。
不知道有沒有人想過,如果可以不用建 VM,只要把需要執行的程式碼上傳。然後什麼都不用管,執行碼就可以順利執行,只要等最後執行的結果就好。
AWS Lambda 就是在幫你實現這種爽事。
你只要丟程式碼上去,它就幫你想辦法跑完。執行環境、擴展、資源分配?AWS 幫你處理。
工程師的手只要動一次,剩下的就交給雲端自動化小精靈。
對!你沒看錯,擴展也是他幫你處理。一次執行一千個也沒問題哦!
讚啦!那二千個呢?...... 嗯...... 不~行~
為什麼?不是會自行處理擴展呢?因為 AWS 預設並發數量限制是 1000,如果需要更多的話,可以透過申請表格進行申請。有些新建出來的帳號,可能預設數量還不到 1000。使用前可以參考AWS 服務配額先查詢你的環境中限制的數量是多少!
Lambda 雖然號稱是一個「反應時間毫秒等級」的雲端神器,但大家最關心的是:到底要多久才會真的動起來?
這就牽扯到兩個狀況:冷啟動跟熱啟動。
但就算是冷啟動,以我實際用下來的感覺,大部分情況也都能在一秒內開工。
換句話說,雖然它可能會打個哈欠,但絕對比你重開一台 VM 還快,算是對得起毫秒級服務的名號。
AWS 幫你顧基礎設施,你就專心寫功能。這就像你生了小孩卻把養小孩的責任丟給保母,只負責拍照上傳 IG。(千萬別真的這樣,小孩跟你會不親的!)
沒錯,Serverless 用起來很爽,但總是有限制的,天底下沒有只有優點沒缺點的東西。
所以,Lambda 很像便利商店的微波爐:
也就是說做些自動化的操作和日常作業是 OK 的,但要做成大型應用程式還是有難度的。
如果你要把他當微服務來實作,組合成大系統也不是不行。
又開始打瞌睡了,讓我們明天繼續開講吧!