Linux中國

企業應該選擇無伺服器計算嗎?

直至不久之前,幾乎每個產品經理都會將他/她的工程資源,分成兩個獨立的團隊 —— 開發團隊和運維團隊。開發團隊通常參與編碼、測試和構建應用功能,而運維團隊負責應用程序的交付、部署和運行維護。

當開發團隊構建電商應用時,運維團隊會搭建好伺服器來託管該應用。搭建伺服器涉及到許多方面,其中包括:

  • 選擇合適的硬體和操作系統
  • 應用所需的補丁集
  • 搭建所需伺服器環境,如 JDK、Python、Tomcat、NodeJS 等
  • 部署、配置和提供實際的應用
  • 打開並固定合適的埠
  • 搭建所需的資料庫引擎

……這個名單還在繼續。

除此之外,管理人員還對容量規劃感到頭疼。畢竟,任何重要應用都應始終保持 100% 可用、可靠且可擴展。這需要對硬體進行最佳投資。眾所周知,在一些關鍵時期,硬體短缺會導致業務損失,而硬體冗餘又會損害利潤。因此,無論應用是針對本地數據中心,還是針對雲基礎架構,容量規劃都是至關重要的。到目前為止,很明顯,企業不僅在功能構建上投入了大量的精力,還在功能交付上也花費了大量的時間。

無伺服器計算 Serverless computing 旨在提供一種無縫的方式來交付功能,而無需擔心伺服器的設置和維護。換句話說,無伺服器計算平台提供了一個「 即用型 ready-to-use 」環境,企業可以儘快將應用程序構建和部署為一些較小的功能。這就是為什麼這種方法被稱為「 功能即服務 Function as a Service 」(FaaS)。

請記住,無伺服器計算中仍然存在伺服器,但它由 AWS、微軟和谷歌等 FaaS 供應商負責。

例如,AWS 以 「Lambda 函數」的形式提供了一個無伺服器計算環境。開發人員可以選擇將應用程序構建為一組 Lambda 函數,這些函數可以用 NodeJS、Java、Python 和其他一些語言編寫。AWS 提供了一個現成的環境來部署這些函數。它還提供了即用​​型資料庫伺服器、文件伺服器、應用程序網關和身份驗證伺服器等。

同樣,微軟 Azure 也提供了一個環境,它可以用 C# 等語言構建和部署 Azure 函數。

為什麼選擇無伺服器

有兩個主要因素推動了無伺服器計算的普及。

1、即用型環境

顯然,這是無伺服器計算的最大賣點。企業無需提前採購/預訂硬體或實例,也無需操心許可證,以及設置和配置伺服器。他們不需要為擴大和縮小規模而煩惱。所有這些都由 FaaS 供應商負責。

2、最優成本

由於 FaaS 供應商總是根據環境的利用率向客戶收費(按使用付費模式),因此企業無需擔心前期成本和資源浪費。例如,AWS 根據 Lambda 函數接收的請求數量、在數據表上運行的查詢數量等指標來向客戶端收費。

無伺服器計算的挑戰

與任何其他方法一樣,無伺服器計算也不是每個人都可以盲目遵循的完美方法。它本身也有一系列限制。以下是其中的幾個。

1、供應商鎖定

當使用無伺服器計算時,第一個也是最重要的問題就是,Lambda 或 Azure 等函數將使用供應商提供的 API 來編寫。例如,使用 AWS Lambda API 編寫的函數無法部署到 Google Cloud 中,反之亦然。因此,無伺服器計算迫使企業在許多年內,只能使用同一家供應商。並且,應用的成功或失敗不僅取決於它的功能,還取決於供應商在性能等方面的能力。

2、編程語言

沒有哪家無伺服器計算平台支持所有的編程語言。此外,對於它支持的編程語言,它也可能不支持其所有版本。這樣一來,應用開發團隊只能選擇供應商提供的語言。就團隊的能力而言,這可能是非常關鍵的。

3、最優成本,真的嗎?

其實也不一定,這一切都取決於資源的使用情況。如果你的應用正在承受巨大的負載,例如每秒數百萬個請求,那麼你所支付的費用可能會過高。在這樣的規模下,在本地或雲端擁有自己的伺服器可能會更便宜。這並不意味著具有 Web 規模的應用不適合用無伺服器計算。歸根結底,它還是取決於你的平台的構建方式,以及你與供應商簽署的協議。

4、生態系統

沒有哪個應用是為了一個孤立的環境而編寫的。它總是需要其他組件,如數據存儲、資料庫、安全引擎、網關、消息伺服器、隊列、緩存等。每個平台都提供自己的一組此類工具。例如,AWS 提供了 Dynamo DB 作為其 NoSQL 解決方案之一。顯然,其他供應商也提供了自己的 NoSQL 解決方案。因此,團隊又會被迫地基於所選平台來構建應用程序。儘管大多數商業 FaaS 供應商都為特定需求提供了多個組件,但並非每個組件都可能是同類型中最佳的。

為什麼不考慮容器呢?

在過去十年中,我們中的許多人都遷移到了容器化部署模型,因為它們為昂貴的物理機或虛擬機提供了一種輕量級的替代方案。有了 Kubernetes 等編排工具後,我們樂於部署容器化應用,同時也滿足了 Web 規模的要求。容器提供了與底層環境一定程度的隔離,這使得部署相對容易。但是,我們仍然需要在硬體(本地或雲)、許可證、網路、配置等方面進行投資,這需要具有前瞻性的規劃、合適的技術能力和仔細的監控。無伺服器計算,儘管它也有自己的優點和缺點,但它讓我們把這些責任也擺脫了。

展望未來

我們正處於持續開發、持續集成和持續部署的時代。每個企業都面臨著競爭。產品 上市時間 Time to market (TTM)在吸引客戶、留住客戶這兩個方面,發揮著重要作用。在這種背景下,企業喜歡花更多時間來儘可能快地推出功能,而不是在部署和維護的細節上苦苦掙扎。無伺服器計算有可能滿足這些需求。大玩家們正在投入巨額資金,以使 FaaS 儘可能地無縫且經濟。無伺服器計算的未來看起來是一片光明。

via: https://www.opensourceforu.com/2021/12/should-businesses-opt-for-serverless-computing/

作者:Krishna Mohan Koyya 選題:lkxed 譯者:lkxed 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國