Datadog 觀察到 AWS Lambda 無服務器採用率激增
AWS
根據Datadog公司出的一份報告顯示,近一半使用它們的IT監控平台的企業組織,都已經擁抱AWS Lambda這種無伺服器運算架構。
Datadog產品經理Stephen Pinkerton表示,這個數字反映無伺服器運算架構在主流IT單位的採用程度,遠超過一般人對這種相對新興技術的預期。
報告指出,Datadog客戶所啟動的中位數Lambda函數執行時間約800毫秒。近五分之一的函數在100毫秒內就執行完畢,約三分之一在400毫秒內完成。四分之一的Lambda函數平均執行時間超過3秒,而12%的函數需要10秒以上。Lambda函數的執行時間之所以重要,是因為它不僅影響應用程式效能,也會影響成本支出。Lambda的定價是根據”GB-秒”的計算時間,也就是將函數所配置的記憶體乘上其啟動時間。
不出所料,報告顯示有47%的函數是設定為最低128MB的記憶體配置。相反的,只有14%的函數記憶體配置超過512MB,儘管AWS允許高達3,008MB。
為了進一步節省成本,大多數企業並未讓一個函數呼叫另一個函數,然後等待回應(這會產生可計費的啟動時間)。相反地,無伺服器函數是透過訊息佇列進行非同步呼叫。無狀態的函數最常從獨立的持續性資料儲存體讀取或寫入資料。
Amazon DynamoDB文件資料庫(基於鍵值存儲架構)是被存取最多的持續性儲存體,其次是AWS所提供的SQL資料庫服務,再來是Amazon S3雲端儲存服務。
Amazon Simple Queue Service (SQS)是Lambda請求的最熱門訊息佇列選擇,其次是Amazon Kinesis和Amazon Simple Notification Service (SNS)。
報告也提到,每個Lambda函數都有可設定的超時時間,從1秒到15分鐘不等。三分之二的超時設定是60秒或更短。預設上,Lambda客戶在任一區域也被限制最多只能同時執行1,000個函數。只有4.2%的所有函數設有併發限制。總共有88.6%的公司在執行Lambda時,至少對一個函數啟用了併發限制。
就使用的程式語言而言,Python和JavaScript的Node.js是Lambda上最常見的。將近一半(47%)的Datadog客戶在Lambda上使用Python,而39%則使用Node.js。Python 3的使用量是Python 2(已停止支援)的兩倍。
最後,報告指出組織採用容器和無伺服器運算架構之間存在高度相關性。在AWS環境中,近80%採用容器的組織也使用了Lambda。不過Pinkerton認為,目前這種相關性更多是反映組織願意採用領先技術,而非試圖將容器和無伺服器運算架構整合。
Pinkerton也推測,組織採用Lambda的主因是為了加速應用程式效能。不過值得一提的是,無伺服器運算架構也傾向減少應用程式的體積,它們依賴外部函數來執行那些不常在應用核心被調用的程式碼。
一旦其他雲端平台的無伺服器運算架構也達到足夠的普及程度,Datadog計劃評估它們的使用情況。與此同時,無伺服器運算架構正迅速成為任何DevOps流程的一部分,這是不爭的事實。