2018年3月20日 星期二

[情報] 目前市面上有哪些 Open Source Function As Service (FaaS)



前陣子因為好奇加入了 Cloud Native 的Slack 群組,看看最近熱門在討論的話題是什麼,有什麼有趣的技術正在發展,最近就剛好看到一個有趣的投票話題,請大家推薦 open source 的 FAAS Solution。





如果因為自建機房,會想要使用Open Source 的 IAAS 或 PAAS 甚至 CAAS 我都還能理解,但是要自建 FAAS 我就比較還抓不到好處了,Function as Service 或是 Serverless  為的就是能超輕量級部署,用完立即結束關閉節省花費,但是對於自建機房來說,成本都在那裡,好處就比較不那麼明顯了?除非也是走Hybid solution ,可以自動把需求擴增到雲端去,那也許還比較 make sense。

不過根據許多文章的講法就是希望程式開發者不用去煩惱部署,調教等繁雜的事項,只要專注在商業邏輯的開發就好~ (美好的遠景啊)




Anyway ~ 我們先來看看目前市面上有哪些 FAAS 的 Open Source Framework ,以及各自的特色在哪裡。




官網自我介紹:


Apache OpenWhisk is a serverless, open source cloud platform that allows you to execute code in response to events at any scale. OpenWhisk handles the infrastructure and servers so you can focus on building amazing things.
Apache OpenWhisk allows developers to focus on writing value-adding code instead of burning hours on architecture and server management. Write in your preferred language to combine custom code with plug-and-play packages from our rich ecosystem of supporter services, and go live in hours instead of weeks.
Package creators can easily add their service to Apache OpenWhisk’s growing ecosystem to eliminate the need to build in-house solutions for third-party integrations, reach a broader community of developers, and increase adoption of their products and services.
The Apache OpenWhisk community is driven by open source contributors who are advancing this bleeding-edge technology, growing their skillsets, and pushing the boundaries of serverless technology.
 

評語:

 
我覺得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 (Functions as a Service) is a framework for building serverless functions with Docker and Kubernetes which has first class support for metrics. Any process can be packaged as a function enabling you to consume a range of web events without repetitive boiler-plate coding.

Highlights
  • Ease of use through UI portal and one-click install
  • Write functions in any language for Linux or Windows and package in Docker/OCI image format
  • Portable - runs on existing hardware or public/private cloud - Kubernetes and Docker Swarm native
  • CLI available with YAML format for templating and defining functions
  • Auto-scales as demand increases

評語:


這個專案有趣的是由一位叫做 Alex Ellis 個人發起的人氣專案,主要也是架構在K8s 上面 。

更多中文資源:
[1] OpenFaaS快速入门指南




官網自我介紹:

nuclio is a new "serverless" project, derived from iguazio's elastic data life-cycle management service for high-performance events and data processing. You can use nuclio as a standalone binary (for example, for IoT devices), package it within a Docker container, or integrate it with a container orchestrator like Kubernetes.
nuclio is extremely fast. A single function instance can process hundreds of thousands of HTTP requests or data records per second. This is 10-100 times faster than some other frameworks. To learn more about how nuclio works, see the nuclio architecture documentation and watch the technical CNCF nuclio presentation and demo (slides can be found here).

評語:

號稱著重在資料處理的部分,另外官網也有誠實的警語XD (nuclio is still under active development and is not recommended for production use.)



官網自我介紹:

Fission is a framework for serverless functions on Kubernetes.  Write short-lived functions in any language, and map them to HTTP requests (or other event triggers).  Deploy functions instantly with one command. There are no containers to build, and no Docker registries to manage.

 
評語:
也是一個基於 K8s 上的FAAS Framework ,支援的語言:NodeJS, Python, Ruby, Go, PHP, Bash, and any Linux executable (就是沒有Java....:P)





官網自我介紹:

Kubeless is a Kubernetes-native serverless framework that lets you deploy small bits of code (functions) without having to worry about the underlying infrastructure. It is designed to be deployed on top of a Kubernetes cluster and take advantage of all the great Kubernetes primitives. If you are looking for an open source serverless solution that clones what you can find on AWS Lambda, Azure Functions, and Google Cloud Functions, Kubeless is for you! 

評語: 
K8s 原生支援的 serverless framework ,看到這邊感覺container 的戰局大勢以定?幾乎都是支援K8s,支援語言:Python, NodeJS, Ruby, PHP and .Net Core....(Java再度哭哭)




張貼留言