Serverless:這真的是未來嗎?(一)

作者 | Lee Briggs & Piers Karsenbarg
譯者 | donghui

許多開發人員說,無服務器是計算的未來,而其他開發人員說,它永遠不會成功。我們自己的觀點沒有那麼兩極分化。我們將無服務器視爲一種選擇,這是從初創企業到中型企業,再到大型企業的一個可能的墊腳石。在這兩篇博文中,我們將討論無服務器如何適應這一過程,以及它的優點和缺點。

我們的目標是幫助您切實地評估無服務器計算。我們希望激發討論,而不是下意識的反應,無論是贊成還是反對。希望這些博客文章能幫助您在所有相關人員中展開討論,就最佳業務方案達成一致。該課程可能涉及無服務器,也可能不涉及。在這第一篇文章中,我們將考慮在討論無服務器時最常見的幾個問題。在第二篇文章中,我們將研究一些更廣泛的問題。

什麼是無服務器?

“無服務器 " 這個術語有點用詞不當。更憤世嫉俗的人可能會嘀咕,“無服務器仍然在服務器上運行!“這是真的。不管你使用什麼雲提供商,你總是使用服務器來運行你的應用程序。必須配置、管理和維護這些服務器。雲提供商提供的無服務器服務通常會抽象出難以管理的運行應用程序組件:它們爲您運行和管理服務器。開發人員可以運行他們的應用程序,而不用擔心底層,比如操作系統,甚至計算能力。

爲什麼採用無服務器?

當人們推廣無服務器時,會給出一些現成的答案。我們將在這裏快速地提到它們,然後我們將更仔細地研究這些說法。以下是人們給出的三大理由。

1. 這是一個快速開始的方式

將服務器的管理移交給提供商意味着您可以非常快地將應用程序提供給用戶。有很多底層基礎設施您不必爲其編寫或維護代碼。

2. 它很便宜

無服務器可以通過幾種方式爲您省錢。首先,因爲提供者管理服務器,所以可以降低管理成本。您也不需要編寫那麼多代碼,因爲服務器不是您關心的問題。您可以更快地將應用程序推向市場,這意味着您可以更快地開始創收。最後,根據您的使用模式,您只需支付執行代碼所用的時間。你不用爲空閒時間付錢。

3. 它處於 IT 控制之外

在採用雲工程的組織中,人們經常轉向無服務器,因爲他們覺得 IT 太慢或反應遲鈍。在 "傳統" 組織中,可能很難購買硬件,採購時間可能太慢,或者可能會因運營或財務而退縮。這通常是人們轉向雲提供商的一個原因,作爲遷移的一部分,他們可能會考慮使用無服務器。

如果在提供雲資源的過程中遇到了諸如嚴格的權限之類的障礙,那麼在已經採用雲計算的公司中,您還會看到無服務器的採用。無服務器是一種繞過被視爲 "攔路虎" 的問題來完成工作的簡單方法。有時,無服務器的推動可能來自開發部門之外的部門。例如,市場營銷部門可能希望發佈一些對時間至關重要的內容,因爲它與某個事件有關。

或者是?

讓我們更仔細地看看人們提倡無服務器的原因。

1. 這真的是一種快速開始的方式嗎?

使用無服務器可能會使您的應用程序更容易推向市場,但這需要重新考慮如何構建和開發應用程序,這會導致以後的勞動懲罰。當您開始利用無服務器產品時,您的組織在構建生產應用程序時採用的傳統做法可能需要重新考慮,甚至需要重新調整。這方面的一個很好的例子是在考慮監控和可觀察性時:許多監控平臺工作在一個您無法訪問的層上,您無法深入瞭解應用程序的性能。重新設計和重新思考如何使用無服務器技術構建生產就緒的應用程序,可能會給無服務器的旅程帶來意想不到的延遲。

2. 真的便宜嗎?

無服務器被認爲具有成本效益的原因之一是,您只需爲使用的計算時間付費。但是,使用無服務器可省錢並非必然。剖析您的應用程序是否合適非常重要。這裏有兩個注意事項。

請求的模式是什麼?

如果您的應用程序有許多小的快速請求,那麼無服務器可能是一個不錯的選擇。另一方面,如果您的應用程序依賴長時間運行的操作,那麼您在查看賬單時可能會感到震驚。

那啓動時間呢?

請記住,您仍然需要爲應用程序的啓動時間 "付費”。無服務器服務通常會受到" 冷啓動 " 的懲罰,因此,如果您很少使用或根本沒有使用,則可能必須在後臺運行其他進程以確保您的應用程序不會爲此付出代價。這也意味着您的第一個請求將比隨後的請求花費更長的時間。如果無服務器功能需要始終快速響應,則可以爲諸如預置併發之類的實現支付額外費用,以改善冷啓動的損失。但是,與傳統的軟件部署方法相比,這可以輕鬆抵消您可能節省的任何成本。

3. 控制又如何呢?

採用無服務器平臺作爲部署機制意味着將爲基礎設施打補丁的責任移交給提供者。您不再能夠對操作系統層的安全警告做出快速反應;你信任你的供應商來做這些。在這種情況下,你可能不想放棄控制權。

您仍然需要管理應用程序依賴項中的安全通知,並且需要一種機制來對這些問題作出反應。由於缺乏需要管理的基礎設施,無服務器的採集者經常會產生錯誤的印象,認爲他們的應用程序是 " 安全的”,但這種情況很少發生。您可能需要爲應用程序的滲透測試而採用的任何現有機制進行調整,並適合於任何新的無服務器平臺。雖然您的攻擊面可能較小,但仍然需要確保任何潛在的攻擊者都很難通過無服務器基礎設施水平地進行攻擊。

如果您選擇無服務器是因爲您或其他部門希望繞過標準 IT 過程,那麼這將指向組織內部的問題,而不是對無服務器的需求。技術不能解決文化問題。真正能解決這些問題的是人們相互交流,找出如何讓每個相關的人生活得更好。

您必須明白,您正在將服務器的控制權移交給提供者,而不是自己控制,需要詳細研究合規性和無服務器優勢之間的權衡。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Lo1em_XFNosSqX6QbykdNg