企業應該選擇無伺服器計算嗎? | Linux 中國

語言: CN / TW / HK

無伺服器計算將伺服器從規劃中移除,使企業能夠專注於應用功能。那麼,企業是不是都應該選擇無伺服器計算呢?讓我們來探究一下吧!

(本文字數:2614,閱讀時長大約:4 分鐘)

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

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

  • 選擇合適的硬體和作業系統
  • 應用所需的補丁集
  • 搭建所需伺服器環境,如 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中國 榮譽推出