
原文 |
https://www.pulumi.com/blog/is_serverless_the_future_part_1/作者 | Lee Briggs & Piers Karsenbarg
譯者 | donghui
許多開發人員說,無伺服器是計算的未來,而其他開發人員說,它永遠不會成功。我們自己的觀點沒有那麼兩極分化。我們将無伺服器視為一種選擇,這是從初創企業到中型企業,再到大型企業的一個可能的墊腳石。在這兩篇博文中,我們将讨論無伺服器如何适應這一過程,以及它的優點和缺點。
我們的目标是幫助您切實地評估無伺服器計算。我們希望激發讨論,而不是下意識的反應,無論是贊成還是反對。希望這些部落格文章能幫助您在所有相關人員中展開讨論,就最佳業務方案達成一緻。該課程可能涉及無伺服器,也可能不涉及。在這第一篇文章中,我們将考慮在讨論無伺服器時最常見的幾個問題。在第二篇文章中,我們将研究一些更廣泛的問題。
什麼是無伺服器?
“無伺服器"這個術語有點用詞不當。更憤世嫉俗的人可能會嘀咕,“無伺服器仍然在伺服器上運作!“這是真的。不管你使用什麼雲提供商,你總是使用伺服器來運作你的應用程式。必須配置、管理和維護這些伺服器。雲提供商提供的無伺服器服務通常會抽象出難以管理的運作應用程式元件:它們為您運作和管理伺服器。開發人員可以運作他們的應用程式,而不用擔心底層,比如作業系統,甚至計算能力。
為什麼采用無伺服器?
當人們推廣無伺服器時,會給出一些現成的答案。我們将在這裡快速地提到它們,然後我們将更仔細地研究這些說法。以下是人們給出的三大理由。
1. 這是一個快速開始的方式
将伺服器的管理移交給提供商意味着您可以非常快地将應用程式提供給使用者。有很多底層基礎設施您不必為其編寫或維護代碼。
2. 它很便宜
無伺服器可以通過幾種方式為您省錢。首先,因為提供者管理伺服器,是以可以降低管理成本。您也不需要編寫那麼多代碼,因為伺服器不是您關心的問題。您可以更快地将應用程式推向市場,這意味着您可以更快地開始創收。最後,根據您的使用模式,您隻需支付執行代碼所用的時間。你不用為空閑時間付錢。
3. 它處于 IT 控制之外
在采用雲工程的組織中,人們經常轉向無伺服器,因為他們覺得 IT 太慢或反應遲鈍。在"傳統"組織中,可能很難購買硬體,采購時間可能太慢,或者可能會因營運或财務而退縮。這通常是人們轉向雲提供商的一個原因,作為遷移的一部分,他們可能會考慮使用無伺服器。
如果在提供雲資源的過程中遇到了諸如嚴格的權限之類的障礙,那麼在已經采用雲計算的公司中,您還會看到無伺服器的采用。無伺服器是一種繞過被視為"攔路虎"的問題來完成工作的簡單方法。有時,無伺服器的推動可能來自開發部門之外的部門。例如,市場營銷部門可能希望釋出一些對時間至關重要的内容,因為它與某個事件有關。
或者是?
讓我們更仔細地看看人們提倡無伺服器的原因。
1. 這真的是一種快速開始的方式嗎?
使用無伺服器可能會使您的應用程式更容易推向市場,但這需要重新考慮如何建構和開發應用程式,這會導緻以後的勞動懲罰。當您開始利用無伺服器産品時,您的組織在建構生産應用程式時采用的傳統做法可能需要重新考慮,甚至需要重新調整。這方面的一個很好的例子是在考慮監控和可觀察性時:許多監控平台工作在一個您無法通路的層上,您無法深入了解應用程式的性能。重新設計和重新思考如何使用無伺服器技術建構生産就緒的應用程式,可能會給無伺服器的旅程帶來意想不到的延遲。
2. 真的便宜嗎?
無伺服器被認為具有成本效益的原因之一是,您隻需為使用的計算時間付費。但是,使用無伺服器可省錢并非必然。剖析您的應用程式是否合适非常重要。這裡有兩個注意事項。
請求的模式是什麼?
如果您的應用程式有許多小的快速請求,那麼無伺服器可能是一個不錯的選擇。另一方面,如果您的應用程式依賴長時間運作的操作,那麼您在檢視賬單時可能會感到震驚。
那啟動時間呢?
請記住,您仍然需要為應用程式的啟動時間"付費”。無伺服器服務通常會受到"冷啟動"的懲罰,是以,如果您很少使用或根本沒有使用,則可能必須在背景運作其他程序以確定您的應用程式不會為此付出代價。這也意味着您的第一個請求将比随後的請求花費更長的時間。如果無伺服器功能需要始終快速響應,則可以為諸如預置并發之類的實作支付額外費用,以改善冷啟動的損失。但是,與傳統的軟體部署方法相比,這可以輕松抵消您可能節省的任何成本。
3. 控制又如何呢?
采用無伺服器平台作為部署機制意味着将為基礎設施打更新檔的責任移交給提供者。您不再能夠對作業系統層的安全警告做出快速反應;你信任你的供應商來做這些。在這種情況下,你可能不想放棄控制權。
您仍然需要管理應用程式依賴項中的安全通知,并且需要一種機制來對這些問題作出反應。由于缺乏需要管理的基礎設施,無伺服器的采集者經常會産生錯誤的印象,認為他們的應用程式是"安全的”,但這種情況很少發生。您可能需要為應用程式的滲透測試而采用的任何現有機制進行調整,并适合于任何新的無伺服器平台。雖然您的攻擊面可能較小,但仍然需要確定任何潛在的攻擊者都很難通過無伺服器基礎設施水準地進行攻擊。
如果您選擇無伺服器是因為您或其他部門希望繞過标準 IT 過程,那麼這将指向組織内部的問題,而不是對無伺服器的需求。技術不能解決文化問題。真正能解決這些問題的是人們互相交流,找出如何讓每個相關的人生活得更好。
您必須明白,您正在将伺服器的控制權移交給提供者,而不是自己控制,需要詳細研究合規性和無伺服器優勢之間的權衡。
本文轉載自 Serverless Life 公衆号,轉載請聯系原作者。