目前市面上有哪些Open Source Function As Service
圖片來源:https://serverless.zone/abstracting-the-back-end-with-faas-e5e80e837362
前陣子因為好奇加入了Cloud Native 的Slack 群組,看看最近熱門在討論的話題是什麼,有什麼有趣的技術正在發展,最近就剛好看到一個有趣的投票話題,請大家推薦open source 的FAAS Solution。
如果因為自建機房,會想要使用Open Source的IAAS或PAAS甚至CAAS我都還能理解,但是要自建FAAS我就比較還抓不到好處了,Function as Service或是Serverless為的就是能超輕量級部署,用完立即結束關閉節省花費,但是對於自建機房來說,成本都在那裡,好處就比較不那麼明顯了?除非也是走Hybid solution ,可以自動把需求擴增到雲端去,那也許還比較make sense。
不過根據許多文章的講法就是希望程式開發者不用去煩惱部署,調教等繁雜的事項,只要專註在商業邏輯的開發就好~ (美好的遠景啊)
GIF
圖片來源:https://medium.com/openwhisk/five-minute-intro-to-open-source-serverless-development-with-openwhisk-328b0ebfa160
Anyway ~ 我們先來看看目前市面上有哪些FAAS 的Open Source Framework ,以及各自的特色在哪裡。
Apache Openwhisk(https://github.com/apache/incubator-openwhisk)
官網介紹:
Apache OpenWhisk是一個無伺服器的開源雲平台,允許您執行代碼以響應任何規模的事件。OpenWhisk處理基礎設施和伺服器,以便您可以專註於構建令人驚嘆的事物。
Apache OpenWhisk允許開發人員專註於編寫增值代碼,而不是在架構和伺服器管理上耗費數小時。用您喜歡的語言編寫代碼,將定製代碼與我們豐富的支持服務生態系統中的即插即用軟體包結合在一起,並且可以在幾個小時而不是幾周內投入使用。
軟體包創建者 可以輕鬆地將他們的服務添加到Apache OpenWhisk不斷增長的生態系統中,從而消除為第三方集成構建內部解決方案的需求,覆蓋更廣泛的開發人員社區並提高其產品和服務的採用率。
Apache OpenWhisk社區由開源貢獻者推動,他們正在推進這項尖端技術,提高他們的技能,並推動無伺服器技術的發展。
評價:我覺得Apache 支持是一個賣點外,另一個賣點就是對於語言的支持度,其它一般FAAS大多隻支援JavaScript, Python,OpenWhisk 另外還支援:Swift, PHP function, a Java method, any binary-compatible executable including Go programs; more languages will be supported soo
OpenFAAS(https://github.com/openfaas)
官網介紹:
OpenFaaS(函數即服務)是一個用Docker和Kubernetes構建無伺服器功能的框架,它對指標有一流的支持。任何過程都可以作為一個功能打包,使您可以使用一系列Web事件,而無需重複進行樣板編碼。
通過UI門戶和一鍵安裝輕鬆使用,以Linux或Windows的任何語言編寫函數,並以Docker / OCI圖像格式打包,攜帶型 - 在現有硬體或公共/私有雲上運行 - Kubernetes和Docker Swarm原生,CLI可用YAML格式進行模板化和定義功能
隨著需求的增加而自動縮放
評價:這個專案有趣的是由一位叫做Alex Ellis個人發起的人氣專案,主要也是架構在K8s上面。
更多中文資源:
https://jimmysong.io/posts/openfaas-quick-start/
Nuclio(https://github.com/nuclio/nuclio)
官網介紹:
nuclio是一個新的「無伺服器」項目,衍生自iguazio的彈性數據生命周期管理服務,用於高性能事件和數據處理。您可以使用nuclio作為獨立的二進位文件(例如,用於物聯網設備),將其打包到Docker容器中,或者將它與容器編排器(如Kubernetes)集成。
nuclio非常快。單個函數實例每秒可以處理數十萬個HTTP請求或數據記錄。這比其他一些框架快10-100倍。要了解更多關於nuclio如何工作的信息,請參閱nuclio 體系結構文檔,並觀看CNCF數控技術演示和演示(幻燈片可在此處找到)。
評價:號稱注重在資料處理的部分,另外官網也有誠實的警語XD (nuclio is still under active development and is not recommended for production use.)
Fission(https://github.com/fission/fission)
官網介紹:
Fission是Kubernetes上無伺服器功能的框架。用任何語言編寫短暫的函數,並將它們映射到HTTP請求(或其他事件觸發器)。使用一個命令立即部署功能。
評價:也是一個基於K8s上的FAAS框架,支持的語言:NodeJS,Python,Ruby,Go,PHP,Bash和任何Linux可執行文件(就是沒有Java。 ...:P)
Kubeless(https://github.com/kubeless/kubeless)
官網介紹:
Kubeless是一個Kubernetes本地無伺服器框架,可讓您部署小部分代碼(函數),而無需擔心底層基礎架構。它被設計為部署在Kubernetes集群之上,並利用所有偉大的Kubernetes基元。如果您正在尋找一種開源無伺服器解決方案來克隆您在AWS Lambda,Azure函數和Google雲端函數中可以找到的內容,Kubeless會為您服務!
評價:K8s原生支援的無伺服器框架,看到這邊感覺container的戰局大勢以定?幾乎都是支援K8s,支持語言:Python,NodeJS,Ruby,PHP和.Net Core ....(Java再度哭哭)
歡迎訂閱雲原生技術社區,更多CloudNative資訊敬請關注。


TAG:雲原生技術社區 |