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