serverless應用

serverless 是什麼

按需使用,關注的是使用時間與內存,而不再關心服務器本身。

應用場景

  • 異步事件
    serverless是典型事件驅動語場景下的應用。
  • 定時任務
    對於定時任務,意味着服務器有相當的時間處於空轉的狀態。使用serverless進行定時任務執行,對於成本控制有一定的好處。當然這個還是需要做足夠的衡量。

痛點

  • 冷啓動
    冷啓動帶來的延時決定了本身不能支持加載與啓動非常耗性能的函數,這也意味着serverless不會適合運行時長極短的瞬時任務,而最好是一個批量的任務,數據量非常大,耗內存耗cpu,執行完成需要相當的時間(幾小時到幾天不等)。對於對響應時間有強要求,需要快速返回結果的任務,則非常不適用。
  • 環境配置
    雖然serverless不需要環境配置,但是函數的執行環境肯定還是需要預先配置運行環境的。所以函數本身修改需要進行的單機環境配置調試的工作並不會減少。減少的時間是分佈式聯通性的調試,尤其是不需要自己去搭建一個集羣併爲其進行網絡等配置。這是針對固定配置的服務。
  • 狀態記錄
    無服務並不是真的沒有服務器,而是服務器不可見。這就導致一個函數只有輸入和輸出,過程狀態的記錄會顯得非常的麻煩。最簡單的即是運行日誌的記錄與查詢。常規的解決方案是連接數據庫,無論是rds還是kv數據庫,將狀態記錄下來。無狀態的服務的狀態記錄在http上已經有一定的應用實踐,使用中間件進行狀態存儲可以解決此問題。這個在服務器部署事實上也多數是將狀態信息存儲到其他地方而不是存在本地服務器上。
    另外環境配置中對於動態配置信息,作爲環境的狀態之一,在啓動與配置過程也將會是一個麻煩事。

參考

函數計算與冷啓動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章