關於 Serverless,以及推薦一個好用的 Naive 解決方案

你好世界請叫我布拿拿發表於2018-04-15

Section A

Faas,也就是提供函式的雲端計算服務,一個函式就是一個最基本的運算單元,而函式是做什麼用的,相信大家都是知道的。

f(x) = x
複製程式碼

這就是最簡單的函式,而Faas也就是提供這種服務的東西,最初關注Faas時候,有AWS的Lambda計算,AWS是個好東西,但是依託於AWS的服務在國內並不是那麼可靠的,所以Naive(Native)的解決方案顯然更加符合我國的國情。

Section B

函式計算有幾個顯著的有點是值得稱道的,那就是無需管理伺服器基礎設施,只需要編寫程式碼片段上傳就可以使,函式計算所依託的雲會自動分配資源,以彈性可靠的方式執行。當然最值得稱道的應該就是可以使用任意語言來編寫程式碼片段,這就為整個業務場景提供了更多的可能,當然會有一些管理或者流程上的問題,但是我並不會去討論這些東西。

Section C

之前暗中觀察了幾個函式計算的平臺,AWS也好,還是 Serverless ,其實這些並不符合我的需求,知道我昨天在Github Discovery上面關注到一個fnproject,試用之後,確實能夠讓我很愉快的接受這個框架。(儘管處於早期的狀態,但是相關配套的設施還算是齊全)

Section D

使用Fn的一些基礎姿勢(你需要提前裝好 Docker,當然這個現在很好裝,還有安裝包呢。)

brew install fn
fn start
複製程式碼

上面兩個命令就是安裝 fn 的 CLI tool,然後啟動一個 fn server,當然這個 server 你可以是一個別的機器,或者資料中心。

fn run
fn deploy --app fn-app --local
複製程式碼

fn run 其實是一個讓你能方便在本地執行函式的命令,第二個就是,你把這個函式部署到別的地方,這裡是部署到了本地的 fn server,因為你可以看到 --local 的 flag。這樣你新部署的函式可以用很多種方式呼叫,一種就是 fn call fn-app func1 和 在瀏覽器訪問 localhost:8080/r/fn-app/func1(或者Postman),這樣可以讓你方便的提交引數。

具體的操作可以移步 Tutorialsfn-app

Section E

現有云計算服務其實提供了比較可靠的服務的,所以Faas依託的就是全雲端的方式去構建一個App,甚至你不需要一個真的自己的伺服器,比較大家都是SPA啦,在OSS上面可以放個index.html和index.js這樣就可以 run 起來一個網站咯。

Section F

其實之前比較喜歡的開發方式就是LeanCloud的雲引擎了,SDK也封裝了一些基礎的CRUD的操作,同時封裝了對於Cloud Function的呼叫,雖然其實大家都知道可以用 url 的形式訪問。

相關文章