今天大多數公司在開發應用程序並將其部署在服務器上的時候,不管是選擇公有云仍是私有的數據中心,都須要提早了解究竟須要多少臺服務器、多大容量的存儲和數據庫的功能等。並須要部署運行應用程序和依賴的軟件到基礎設施之上。假設咱們不想在這些細節上花費精力,是否有一種簡單的架構模型可以知足咱們這種想法?這個答案已經存在,這就是今天軟件架構世界中新鮮可是很熱門的一個話題——Serverless(無服務器)架構。git
目前已經有一批優秀的serverless架構開源項目,OpenFaas就是其中的佼佼者。奈何其中的中文資料比較少,我也是邊學邊翻譯,但願可以拋磚引玉,助力serverless的發展。github
這是一個自學研討會,學習如何構建、部署和運行OpenFaas 函數。docker
OpenFaas能夠在Docker Swarm和Kubernetes的過幾個主要平臺之上運行。在此教程裏,咱們將會在的您本地電腦使用Docker Swarm來入門。數據庫
Macwindows
Windows服務器
備註:全部步驟中請使用Git Bash:不要嘗試使用WSL或Bash for Windows。
Linux - Ubuntu 或 Debian架構
你能夠從 Docker Store中安裝Docker CE
OpenFaas在Docker Swarm和Kubernetes上工做。由於Docker Swarm很容易設置,因此在此Workshop中咱們使用Docker Swarm。在文檔中有他們兩個的指南。less
在你的筆記本或虛擬機中設置一個單節點的Docker Swarm:curl
$ docker swarm init
若是運行此命令出錯,加上 --advertise-addr 你的IP 參數。
註冊一個Docker Hub帳號。Docker Hub容許你在互聯網中發佈本身的Docker鏡像來用於多節點集羣或社區共享。在Workshop中咱們使用Docker Hub發佈函數。ide
你能夠在這裏註冊:Docker Hub
備註:Docker Hub也能夠設置爲自動構建鏡像。
打開一個終端或者Git Bash窗口,而後使用上面註冊的用戶名登錄Docker Hub。
$ docker login
你能夠在mac上使用brew或者在Linu和mac上使用一個集成腳原本安裝OpenFaas CLI。
在Mac或Linux上終端中輸入:
$ curl -sL cli.openfaas.com | sudo sh
對於windows平臺,從releases page中下載最新的的faas-cli.exe。你能夠把它放在一個local文件夾或者在C:Windows路徑中,這樣它就能夠在命令行中使用。
若是你是一個高級Windows用戶,把CLI放在你自定義的文件夾中,而後把此文件夾添加到環境變量。
咱們將會使用faas-建立新函數的腳手架,build,deploy和invoke函數。你能夠從faas-cli —help中找到這些命令。
測試faas-cli
打開一個終端或Git Bash窗口,而後輸入:
$ faas-cli help $ faas-cli version
發佈OpenFaas的說明文檔修改了不少次,由於咱們努力使他簡單。接下來將會在60秒左右的時間使得OpenFaas部署起來。
git clone https://github.com/openfaas/faas
$ cd faas && \ git checkout master
備註:你也能夠在 project release page中找到最新導入release版本。
$ ./deploy_stack.sh
你如今應該已經把OpenFaas部署了。
若是你如今在一個共享WIFI鏈接中,它將會須要幾分鐘時間拉取鏡像並啓動。
在此屏幕上檢查服務是否顯示爲1/1:
$ docker service ls
若是你期間有遇到任何問題,請查閱Docker Swarm的 部署指南。
如今進入Lab 2。