用 Docker 建立 serverless 應用

2021-07-26 08:13:21 字數 1428 閱讀 9126

當今世界會時不時地出現一波波科技浪潮,將以前的技術拍死在海灘上。針對 serverless 應用的概念我們已經談了很多,它是指將你的應用程式按功能來部署,這些功能在被用到時才會啟動。你不用費心去管理伺服器和程式規模,因為它們會在需要的時候在乙個集群中啟動並執行。

但是 serverless 並不意味著沒有 docker 什麼事兒,事實上 docker 就是 serverless 的。你可以使用 docker 來容器化這些功能,然後在 swarm 中按需求來執行它們。serverless 是一項構建分布式應用的技術,而 docker 是它們完美的構建平台。

從 servers 到 serverless

投票系統由下面5個服務組成:

後台處理投票的程序很容易轉換成 serverless 構架,我們可以使用以下**來實現:

import dockerrun

client = dockerrun.from_env()

client.run("bfirsh/serverless-record-vote-task", [voter_id, vote], detach=true)

這個投票處理程序和訊息佇列可以用執行在 swarm 上的 docker 容器來代替,並實現按需自動部署。

我們也可以用容器替換 web 前端,使用乙個輕量級 http 伺服器來觸發容器響應乙個 http 請求。docker 容器代替長期執行的 http 伺服器來挑起響應請求的重擔,這些容器可以自動擴容來支撐更大訪問量。

新的架構就像這樣:

紅色框內是持續執行的服務,綠色框內是按需啟動的容器。這個架構裡需要你來管理的長期執行服務更少,並且可以自動擴容(最大容量由你的 swarm 決定)。

我們可以做點什麼?

你可以在你的應用中使用3種技術:

在 docker 容器中按需執行**。

使用 swarm 來部署集群。

通過使用 docker api 套接字在容器中執行容器。

結合這3種技術,你可以有很多方法搭建你的應用架構。用這種方法來部署後台環境真是非常有效,而在另一些場景,也可以這麼玩,比如說:

下一步怎麼做

我們提供了這些前衛的工具和概念來構建應用,並沒有深入發掘它們的功能。我們的架構裡還是存在長期執行的服務,將來我們需要使用 swarm 來把所有服務都用按需擴容的方式實現。

希望本文能在你搭建架構時給你一些啟發。

玩得愉快。

本文由 lctt 原創編譯,linux中國 榮譽推出

用 Docker 建立 serverless 應用

當今世界會時不時地出現一波波科技浪潮,將以前的技術拍死在海灘上。針對 serverless 應用的概念我們已經談了很多,它是指將你的應用程式按功能來部署,這些功能在被用到時才會啟動。你不用費心去管理伺服器和程式規模,因為它們會在需要的時候在乙個集群中啟動並執行。但是 serverless 並不意味著...

eclipse無法建立Server

報錯 cannot create a server using the selected type 1.退出eclipse 2.到 工程目錄下 metadata plugins org.eclipse.core.runtime settings 3.把 org.eclipse.wst.server....

用docker安裝YCM建立自己的vim開發環境

考慮到最後生成的映象體積一定要小,所以不選用ubuntu或是centos系統,而是使用輕量級linux作業系統alpine,只有幾兆 大小。實際上docker hub上有基於alpine的vim映象,jare vim bundle 本文很多地方也參考了其dockerfile的寫法。這個映象整合了很多...