在處理基礎設施時,如何將伺服器做最佳的管理呢?
這就會回到今天你的功能有什麼樣的特性來決定,如果是長時間持續會需要運行的功能,例如背景運算,那就會適合傳統伺服器,就像以月租租房的方式,在單位成本上會相對划算。
但如果功能是以「事件」驅動,而且會有「間歇性」的話,例如固定排程每週一早上定期會撈取報表,那就會適合 Serverless 的方式來減少維運的成本,只要使用時才會計費,也不需要負責日常機器的維運。
Serverless 的好處在於釋放成本之外,也為 Devops 團隊釋放了人力資源,工程師們可以不需要時常確認機器的狀態,這些日常維運都會交由雲端服務商負責。
但也因為 Serverless 的設計,它在除錯時會比較困難,因為一個請求可能會經過不同的伺服器,連鎖反應較複雜,所產生的日誌也是分散的。Serverless 在執行的時間也非常短,通常只有幾毫秒到幾秒鐘,無法像一般程式碼可以設定斷點來做偵測。
但上面的議題,也可以透過分散式追蹤工具來解決,透過每一個請求都生成獨一無二的 ID,當這個請求經過任一個地方,在日誌上同時也會被記錄下來,以利後續追蹤。