紅透半邊天的無伺服器只是炒作嗎?技術上如何發展?

2021-09-10 10:43:40 字數 2437 閱讀 5758

無伺服器是當前軟體架構模式中的熱門話題之一,像許多軟體工程中的其他術語或趨勢一樣,無伺服器也沒有乙個明確的定義,所以在這篇文章中我們會簡單介紹一下無伺服器的基本概念,並圍繞無伺服器的幾個爭論點展開討論。

什麼是無伺服器?

根據martinfowler.com的定義,無伺服器體系結構是指主要依賴於第三方服務(稱為後端即服務或"baas")的應用程式或在臨時容器中執行的自定義**(功能即服務或"faas")。

如上說述,如果你沒有維護或管理自己的基礎架構來執行應用程式,並根據使用情況付費(或者不付費),同時從**商那裡自動獲得所需級別的高可用性、可擴充套件性和容錯性,那麼你就正在執行乙個無伺服器的應用程式。作為在無伺服器環境中執行應用程式的所有者,你可以將所有的精力放在應用程式業務邏輯上,而不必擔心其執行的基礎架構以及應用程式周圍的其他非功能性需求。

無伺服器只是炒作?

如果你是無伺服器的新手,並且在考慮將其作為架構,那麼這就會成為你需要面對的問題之一。沒錯兒,無伺服器是現在的熱門話題,但是綜合了之前和之後的發展,我個人認為無伺服器並不是乙個短期內的炒作,至少在3-5年不是,圍繞無伺服器的技術或許會被改變、替換,但是無伺服器的概念不會。

技術層面如何向無伺服器發展?

俗話說得好,觀往知來、知古鑑今,所以在解釋無伺服器功能如何強大之前,我們先來看看它是如何在過去幾年演變的:

aws lambda誕生了,無伺服器這個詞與faas一起出現在舞台上,雖然大多數人認為lambda是無伺服器的起點,但是containerization 將無伺服器遷移推向第乙個高潮,隨著containerization的出現,全球領先的雲服務提供商開始向客戶提供"付費即用"的概念以及最需要的非功能性需求,支援使用其基礎架構運營業務。

無伺服器應用程式的關鍵特性

無伺服器應用程式有四個關鍵特徵:

faas和無伺服器是一樣的嗎?

這是乙個趨勢類的常見問題,有些人聲稱faas是無伺服器概念的技術實現,還有一些人認為無伺服器不侷限於faas,而是乙個更廣泛適用的概念。作為我個人來講,我更贊同後面一種說法。

faas只是無伺服器體系結構的事件驅動處理部分。對於應用程式來說,還有許多其他必需的構建塊,如資料永續性,資料流,訊息傳遞,使用者管理等等,以便提供一些端到端的功能。最重要的是有一些沒有faas元件的應用程式,但仍然可以被認為是無伺服器應用程式。

舉個例子,如果我們需要一些靜態的虛擬主機,我們可以做到這一點,而不必考慮物理伺服器。如果我們認為aws是我們的雲服務提供商,我們可以將我們的網頁內容託管在s3儲存桶中,並啟用靜態虛擬主機來託管網頁。為了使其完成,你可以使用route 53作為dns和cloudfront作為cdn。

另乙個例子是乙個 thick client的web應用程式,它只使用後端服務來進行身份驗證和資料持久化。你實現這種應用程式無需擁有自己的物理伺服器以及faas元件,有許多服務可用於身份驗證和資料永續性。

無伺服器會是未來嗎?

在回答這個問題之前,我建議你先去看一下aws的產品頁面,如果你仔細看,那麼你會發現大約有100個"服務產品",涵蓋了從開發到部署和維護的整個軟體開發生命週期。

如何看待aws的願景?我堅信,它將改變世界,使我們能夠在解決方案的基礎上全面開發,測試,部署和維護我們的應用程式。

如果你現在還沒有準備好,那麼可以去看看過去兩年中aws服務的增長情況,他們正在迅速擴大自己的版圖,並從基礎架構角度提公升其服務範圍,以涵蓋軟體生命週期過程中幾乎所有的要求。當然,其中一些服務還沒有完全完成(其中很少是在過去兩個月內發布的),並且完全可以替代內部產品。但是,在未來的2 - 3年內,他們將確保在為雲應用的開發、部署和維護提供服務。

那麼,這些雲服務提供商在**進行軟體開發和維護?他們的目標是以無伺服器的方式來覆蓋所有可能的情況,並將他們的客戶放在乙個舒適的地帶,以確保他們只需要關注他們的業務邏輯,並能夠充分發揮其潛力。

現在達到了我們所需的能力水平嗎?

現在你可能正在想:如果我們要轉向無伺服器的正規化,faas如何能夠提供所需的處理能力。下面我列舉乙個faas產品為例, aws lambda。當然,很多人都可以輕易的說出,aws lambda沒有能力來促進幾乎所有的處理場景(我仍然指的是基於事件的應用程式)。但對於我來說,幾乎所有這些限制都只是軟限制,都可以放寬標準,未來 aws lambda有信心能夠覆蓋至少90%的案件。

最近的稱,到2023年,faas市場預計將增長到32.7%。這僅僅是faas,如果你看一看無伺服器的範例,你就會明白它有多大的潛力。

結論

"無伺服器"目前是乙個熱門話題,在未來幾年肯定會成為主流,你將不必擔心基礎設施,完整軟體生命週期將取決於雲服務提供商。如果你熱衷於掌握最新技術,那麼歡迎你來了解無伺服器範例和雲產品。

無親緣關係的客戶與伺服器

今天給出乙個簡單的無親緣關係的客戶端與伺服器之間的通訊,客戶端傳送伺服器端進行接收,伺服器端傳送客戶端進行接收。伺服器端的程式 include utili.h int main int argc,char argv 開啟檔案write fifo name,以唯讀方式開啟 write fd open ...

LINUX做伺服器的無盤系統

客戶端是支援pxe方式啟動的刀片,用linux作為伺服器,伺服器配置如下 1 安裝dhcp伺服器dhcpd 2 配置 etc dhcpd.conf檔案,下面是我機器上的檔案 max lease time 1 default lease time 1 注 ip位址永不過期 option subnet ...

無伺服器一切的未來

有時我認為我們在無伺服器環境中過度使用它。它曾經是乙個方便的平台,可讓您不必正確調整伺服器資源的大小,並在不再需要時刪除了資源。如今,這是乙個包羅永珍的東西,具體取決於其應用程式以及誰在公共雲上提供了無伺服器即服務,這具有不同的含義。我看到了一些企業可以利用的明顯趨勢。抬頭 同樣在infoworld...