無伺服器革命遇到了停滯期

無伺服器開發是在2006年左右由Google App Engine與Zimki PaaS所發展出來的一種開發方式與技術,標榜開發人員不需要建置與管理伺服器,只須專注於程式開發,然後佈署到雲端的無伺服器平台上,這樣做的好處除了能節省伺服氣管理與維運的時間與成本外,更重要的是因為沒有伺服器了,雲端平台可以透過水平擴展的方式動態增加或減少資源,達到資源管理最佳化的目的。

然而本文指出,無伺服器開發已經沒有起初那麼美好,主要有四個理由,包括只支援有限的程式語言,效能問題等。

有限的程式語言

絕大部分的無伺服器平台都只能讓開發人員使用特定的幾種程式語言來開發。不過,大部分的無伺服器平台還是支援大多數的主流程式語言,AWS Lambda與Azure Functions還提供包裝功能讓開發人員能執行不支援的程式語言,不過通常會帶來執行效能的代價。

Vendor鎖定

無服務器平臺的第二個問題(或者至少是目前實現它們的方式)是,很少有平臺在操作級別上彼此相似。在編寫、部署和管理功能的方式方面,幾乎沒有跨平臺的標準化,這意味着將功能從一個特定於供應商的平臺遷移到另一個特定於供應商的平臺非常耗時。

效能

無服務器平臺的計算性能可能難以衡量,部分原因是出售這些服務的公司對隱藏這些信息有既得利益。大多數人會聲稱,運行在遠端、無服務器平臺上的功能將和在內部服務器上運行一樣快,排除了一些不可避免的延遲問題。

簡單來說,就是無伺服器被後的處理方式是個黑箱,做了什麼事情開發者完全不知道。

你不能運行整個應用程式

最後,無服務器架構不會很快取代傳統模型的最重要原因可能是:開發人員(通常)不能在serverless的系統上運行整個應用程式。

或者更確切地說,你可以這樣做,但這樣做不符合成本效益。您成功的單片應用程序可能不應該變成一系列連接8個gateway、40個queue和12個資料庫實體的40多個函數。因此,serverless更適合綠地開發(從頭開始的專案)。幾乎沒有現有的應用程式(架構)可以移植。因此,開發人員也許可以移轉服務,但期望從零開始。

以上這四個缺點,你認為是否真的是無伺服器架構的缺點呢?

本文來自

https://www.infoq.com/articles/serverless-stalled/