2017/12/25

Oracle Fn Project


Oracle發佈了Fn Project ,Fn是一個新的 open source、與雲平台無關的Serverless平台,未來 Fn 的發展將會作為 Oracle Cloud 服務的一部分。


Fn 是一個 container native serverless platform,可稱為 FaaS (Function-as-a-service) 的平台,目前支援了 Java, Go, Ruby, Python, PHP, and Node.js。Fn 是以 Go 撰寫的,包含四個主要的元件: Fn Server、FDK、Flow和Fn負載平衡器。


Fn 最基本的執行單元是 containers,每個 function 定義都會獨立封裝在自己的 container 中,目前以 docker 為最主要的 container 平台。


Programmer 可利用某個程式語言透過 FDK(Function Development Kit) 撰寫 function,然後部署到 Fn Server,Fn Flow 提供工作流程及順序的工具,用以實現更高階的商業邏輯。


Fn Project 這篇文章的內容得知,當 Fn 啟動時,就會產生新的 docker image,並將 function 移動到該 image 內進行運算。


Serverless Architecture


Serverless 架構是由 Amazon 帶領的一種架構,也有人說是新型態的 Internet OS,採用 Serverless 架構,一方面除了改變了 IT 架構,沒有了 Server 甚至連 VM 都沒有,開發者只需要設計 function 跟 流程,其他的部分就交給 serverless 架構服務的提供者處理,不需要煩惱 conncurrent 使用量的硬體問題。


另一方面是成本的考量,Serverless 的計價方式是依照使用量來決定的,而不是 VM 的資源,換句話說,只要使用次數很低,Serverless 的成本會比使用 VM 還低,但一旦使用量持續都很大,那麼 VM 就會比 Serverless 划算。


可口可樂的Serverless之旅 的文章為例,可口可樂北美集團的開發團隊,在開發飲料自動販賣機的會員忠誠行銷計畫時,導入無伺服器運算架構。原本用了 6 台 EC2 T2.M,包含作業系統、系統管理、資安軟體、自動化部署軟體等成本,一年下來總體成本為12,864美元;然而在使用AWS Lambda的情況下,使用量每月3千萬次,一年總體成本是4,490美元,成本省了65%。


一旦達到每月8千萬次的使用量,Lambda的總體成本就會與EC2相當,使用量大於每月8千萬次,Lambda在價格上就沒有優勢了。但因為大多數的促銷活動都有長尾效應,例如可口可樂的行銷計畫可能一推出吸引很多人使用,但過了一段時間可能使用量就降低,因此採用Serverless架構是絕佳的決定。


References


Oracle開源Fn,加入Serverless之爭


Announcing Fn–An Open Source Serverless Functions Platform


fn project github




AWS Lambda大躍進的真義:Part 1


AWS Lambda大躍進的真義:Part 2


serverless


淺析 serverless 架構與實作