“無伺服器”的不同定義
像以前許多行業流行語:雲端計算”,“DevOps”,“大資料” , 關於“無伺服器”這一術語定義的爭論對於初學者來說是一頭霧水。
“還會有伺服器的!”
- 來自Reddit的戴夫。
謝謝你,戴夫。:smirk:
如果你正在閱讀一篇關於無伺服器相關內容的文章,那麼作者很可能會在引言中陳述他們對該術語的定義。
經驗豐富的從業者將跳到下一段,但如果你是新手,那麼為你理解這個概念增加一些深度是值得的。
在本文中,我們將介紹無伺服器領域中幾位著名倡導者提供的定義,並在此過程中提取一些共同主題,最後嘗試我自己的不優雅定義。
注意:所有重點都在下面的引文中。
專家們說了什麼
我們將從AWS開始:
“無伺服器計算讓你在不考慮伺服器的情況下構建和執行應用程式和服務。無伺服器應用程式不需要你自己配置、擴充套件和管理任何伺服器。你可以通過無伺服器構建幾乎任何型別的應用程式或後端服務,包括所有伺服器,包括需要以高可用性執行和擴充套件你的應用程式。“
無伺服器框架的作者共享一個類似的資訊:
“就像無線網際網路在某處有電線一樣,無伺服器架構仍然在某處有伺服器,無伺服器真正意味著什麼?作為開發人員,你不必考慮那些伺服器,你只關注程式碼。
...你無需主動管理應用程式的擴充套件,您不必配置伺服器,也不必為未使用的資源付費。“
Auth0副總裁Tomasz Janczuk提供了一個高階總結:
“無伺服器趨勢的本質是在軟體開發過程中缺乏伺服器概念。”
AWS Lambda的產品經理Ajay Nair專注於有關責任的具體細節:
“擁有伺服器就必然必須負責任:
1. 需要將原語(在應用程式中的功能,或在儲存時的物件)對映到伺服器原語(CPU,記憶體,磁碟等)的方式。
2. 需要將容量擴充套件以處理應用規模的增長。
3. 需要處理應用程式未來預計流量的能力和配置(並支付鈔票),與是否存在實際流量無關
4. 需要管理可靠性和可用性結構,如冗餘,故障轉移,重試等。
無伺服器意味著與伺服器相關的責任不再在你的職責範圍內。“
保羅·約翰斯頓(Paul Johnston),前AWS Serverless Snr DA,給出了一個精巧、經濟的解釋:
“ 如果沒有人使用無伺服器解決方案(不包括資料儲存),那麼無伺服器解決方案就無需執行。”
保羅還指出了一個我經常遇到的常見誤解:
“通常在人們的腦海中,無伺服器意味著您正在使用函式即服務(FaaS),這隻可能是無伺服器解決方案的一部分。”
Cloud Guru的工程副總裁Peter Sbarski表達了自己的看法:
“無伺服器是關於將使用者從伺服器、基礎設施中解放出來,解放他們以前不得不處理低階配置或核心作業系統的工作,相反,開發人員利用單一用途服務(例如S3用於儲存或Auth0用於身份管理)和彈性計算平臺(例如AWS Lambda)來執行程式碼。“
共同點
從上面的引文中提取共同點,圍繞無伺服器包括什麼以及它排除的內容我有了新的想法:
什麼還在無伺服器邊界內:
1. 資源成本必須與使用水平緊密結合
2. 更加專注於應用程式程式碼
什麼不包括在無伺服器邊界:
1. 伺服器配置和維護
2. 主動管理服務可用性和擴充套件
我將站在上面提到的巨人的肩膀上,並將這些觀點組織成散文,給出我自己的定義:
無伺服器解決方案是一種可以解放開發人員,從而能讓他們更多地關注應用程式開發而無需擔心配置、擴充套件或維護伺服器(或容器)以及系統級別的執行成本。
banq認為:說白了,幹掉後端,幹掉系統管理員,系統架構師,DBA等等。