VMware在VMWorld 2017大會上釋出了其Serverless計劃,併在現場演示了一個使用Apache OpenWhisk(現有的一項開源FaaS技術)實現的函式即服務(FaaS)。從那時起,Serverless團隊一直致力於定義一款基於VMware基礎設施之上實現的Serverless框架。這些努力的成果便是Dispatch[1],一款全新的由VMware發起的開源專案,不久前剛剛在GitHub上釋出。
Dispatch,構建於Kubernetes之上,提供了一系列的工具和服務以部署和管理生產可用的、函式式支援的Serverless應用。Dispatch不僅僅侷限於函式的執行,而是為任何執行在Kubernetes環境裡的應用提供了一個“內建電池”形式的Serverless框架。
Dispatch目前是作為Apache License 2.0開源專案公開的。作為一個最初的釋出版本,當前實現的功能集是最小化的。我們將繼續加強和發展Dispatch,因此我們期待著開源社群和設計合作伙伴的積極參與。
上圖所示即Dispatch的架構,這是一個由VMware發起的開源的Serverless框架。
當下的開發人員和組織機構正在將大型的,單體的傳統應用遷移到基於微服務的架構體系,從而提高軟體服務的可擴充套件性以及開發人員的效率。然而,這些好處有代價的,即整合的複雜性。此外,軟體開發人員仍然常常和基礎設施直接打交道,無論是虛擬機器(VM)又或者是透過Kubernetes或其他容器編排系統執行的容器。
Serverless是應用和系統設計及部署的下一代變革。Serverless應用建立在函式 —— 一些小的程式碼工件之上,它們是緊湊的,並且專用於一項離散的任務。
這些函式是無狀態的,並且必須依賴額外的服務來維護狀態,例如資料庫和物件儲存。它們通常是事件驅動的,這意味著會有一個事件匯流排來提供觸發和反饋函式的執行。由於擁有這些屬性,這些函式可以在定義時根據需求輕鬆地擴充套件。
構建、部署和管理Serverless應用程式需要的不僅僅只是一個功能排程和執行程式。Dispatch將功能和服務結合在一起,從而能夠輕鬆地管理在函式之上構建的生產級別的應用程式和服務。
Dispatch本身並不是一個函式排程器和執行器。由於已經有幾個開源的FaaS實現作參考,Dispatch團隊在很早以前就決定瞭如下三件事情。
第二,該領域發展還處於早期階段並且尚未成熟到能夠準確地預測說哪家FaaS會否統治其他玩家;
最後,我們將會把Kubernetes定位成一個部署環境,它將為我們提供一個標準的開發和生產環境,無論它是部署在膝上型電腦、私有資料中心,亦或是公有雲。
與眾不同的是,Dispatch透過一個驅動介面抽象了FaaS的實現,允許和一個或多個現有的或未來的FaaS實現方案整合在一起。最初的Dispatch版本集成了OpenFaaS[2]和Riff[3]的驅動。未來將會加入更多的FaaS實現方案的驅動支援,包括公有雲提供的像AWS Lambda這樣的實現。
能夠整合多個FaaS實現的靈活性並不僅僅只是為了不過時的考慮。這也解鎖了一些有意思的場景,在這些場景中,相同的函式能夠根據地理位置,計算資源(GPU)或者在公有雲上進行急速擴容等因素分派到一個或多個不同的環境裡執行。
讓開發人員能夠直接訪問虛擬機器和容器可能會有點問題。IT人員可能會很快失去對生產環境的控制,並無法得知在他們的資料中心裡實際運行了什麼軟體。另一方面,如果開發者不能直接訪問虛擬機器和容器的話,這也將會是造成IT和開發人員受挫的瓶頸。
基於函式的部署可以緩解這一問題。Dispatch提供了一個可以管理和檢查實際執行的函式程式碼的環境。來自VMware的樞紐容器服務(PKS)提供了安全且最新的Kubernetes服務。Dispatch則是構建在最新的Photon OS[4]上管理函式的執行時和工件(容器)。
Dispatch被設計成在多使用者和多組織的環境裡工作。Dispatch將可以和現有的與OAuth 2.0相容的身份認證廠商(如GitHub或Active Directory)整合。管理員將能夠建立角色和許可權,以確保整個Dispatch API處於嚴格的訪問控制。
為了構建一個簡單的webhook或者更豐富的web服務來觸發組成一次部署的所有函式,我們需要一個API閘道器。該API閘道器負責提供路由和安全性。
Dispatch集成了開源的Kong API閘道器,為構建在Dispatch上的應用程式提供了一個生產水平的解決方案。想要建立一個安全的HTTPS端點,只需要簡單定義一條路由並將其系結到一個函式即可。
與外部服務和事件的整合對於任何Serverless解決方案都是至關重要的。Dispatch實現了一個外部服務介面,允許將Dispatch擴充套件成能夠與任何其他服務一起工作。這些服務可以是資料庫,為應用程式維護狀態,或者事件源,為函式提供觸發器。該介面是靈活且可擴充套件的。
預覽版本中包含一個VMware vCenter Server的驅動程式,該驅動程式允許函式訂閱並響應vCenter事件。和建立PowerCLI函式的能力結合在一起使得Dispatch已然是一款強大的IT管理工具。
Dispatch最開始是VMware xLabs內部的一個專案,該實驗室是VMware的一個創意孵化器,可以快速跟進像Serverless這樣的創新想法從而取得成功。如今,Dispatch已經是一個公開的開源專案。
您可以在GitHub[5]上找到Dispatch的程式碼和檔案。眼下許多功能還處於開發中,但是我們鼓勵好奇的小夥伴們加入進來,一起構建和創造想象力。
-
https://github.com/vmware/dispatch
-
https://www.openfaas.com/
-
https://projectriff.io/
-
https://vmware.github.io/photon/
-
https://github.com/vmware/dispatch
原文連結:https://blogs.vmware.com/opensource/2018/01/12/dispatch-project-open-source-serverless-framework/
本次培訓包含:Kubernetes核心概念;Kubernetes叢集的安裝配置、運維管理、架構規劃;Kubernetes元件、監控、網路;針對於Kubernetes API介面的二次開發;DevOps基本理念;微服務架構;微服務的容器化等,點選識別下方二維碼加微信好友瞭解具體培訓內容。
長按二維碼向我轉賬
受蘋果公司新規定影響,微信 iOS 版的贊賞功能被關閉,可透過二維碼轉賬支援公眾號。