- Serverless從入門到進階:架構、原理與實踐
- 方坤丁 孫遠高
- 858字
- 2021-06-24 11:19:05
1.3 Serverless的優缺點
O'Reilly在2019年對Serverless領域用戶的一項調研反映出了Serverless用戶層的優勢和不足。總的來說,Serverless能夠屏蔽底層資源煩瑣的概念和運維等工作,讓開發者和企業專注于業務邏輯的開發,從而降低成本、提升效率。但由于Serverless技術還在快速發展和上升的階段,也面臨著性能、平臺、成本和安全等方面的挑戰。
1. 優勢
(1)節省資源成本
基于細粒度的計費模型,Serverless的第一項優勢是極大降低了資源成本,這也是許多企業將架構部署或遷移到Serverless上的重要原因之一。
(2)節省人力成本
除了節約資源成本,對于企業領導而言,Serverless能夠有效節約人力成本,將人力從機器資源配置、運維中釋放出來,專注于業務的開發和實現,從而極大提升開發效率,減少進入市場(Go To Market,GTM)的時間。這是Serverless架構受到個人開發者歡迎的原因之一。
(3)彈性擴縮容
基于Serverless架構動態分配資源的特性,Serverless應用可以根據業務的實際請求彈性擴縮底層資源,起到削峰填谷的作用,十分適合有突發請求的業務場景。
(4)免除運維煩瑣
Serverless架構可以有效免除運維的煩瑣工作,但這里并不是說Serverless就不需要運維了。恰恰相反,Serverless可以讓運維從“資源運維”轉為“業務運維”,從而更好地優化業務,提升軟件開發效率。
2. 不足
(1)廠商綁定
由于Serverless架構托管在云端,很多企業擔心出現廠商綁定的情況,即業務部署在單一廠商后,過于依賴該廠商的架構和規范,耦合度高,難以遷移或進行多廠商部署。
(2)底層不透明
Serverless的底層調度對于用戶來說是黑盒,因此大大增加了測試/調試的難度。同時基于云端的Serverless開發方式也和傳統的開發方式有一定的差異。由于鏈路的不透明性,在業務遇到故障時,排障也變得更加困難。
(3)花銷難預測
Serverless架構按需付費特性的另外一面是在遇到攻擊等突發異常流量時,可能會造成難以預測的較大花銷,因此對架構做安全防護/過濾策略也是必要的。
(4)性能
基于Serverless計算中按需分配的資源模型,Serverless架構可能出現首次請求“冷啟動”的情況,對于性能要求較高的架構,需要做進一步的優化。
(5)安全
Serverless架構可以讓開發者更專注于業務,但開發過程中的數據安全、傳輸安全也需要投入更多的關注,并且鏈路之間的安全性也需要進一步配置。