1

今天大多数公司在开发应用程序并将其部署在服务器上的时候,无论是选择公有云还是私有的数据中心,都需要提前了解究竟需要多少台服务器、多大容量的存储和数据库的功能等。并需要部署运行应用程序和依赖的软件到基础设施之上。假设我们不想在这些细节上花费精力,是否有一种简单的架构模型能够满足我们这种想法?这个答案已经存在,这就是今天软件架构世界中新鲜但是很热门的一个话题——Serverless(无服务器)架构。

目前已经有一批优秀的serverless架构开源项目,OpenFaas就是其中的佼佼者。奈何其中的中文资料比较少,我也是边学边翻译,希望能够抛砖引玉,助力serverless的发展。

这是一个自学研讨会,学习如何构建、部署和运行OpenFaas 函数。

Lab1 - OpenFaas的准备工作

OpenFaas可以在Docker Swarm和Kubernetes的过几个主要平台之上运行。在此教程里,我们将会在的您本地电脑使用Docker Swarm来入门。

预备条件

Docker

Mac

Windows

备注:所有步骤中请使用Git Bash:不要尝试使用WSL或Bash for Windows。

Linux - Ubuntu 或 Debian

  • Docker CE for Linux
你可以从Docker Store中安装Docker CE

设置一个单节点的Docker Swarm

OpenFaas在Docker Swarm和Kubernetes上工作。因为Docker Swarm很容易设置,所以在此Workshop中我们使用Docker Swarm。在文档中有他们两个的指南。

在你的笔记本或虚拟机中设置一个单节点的Docker Swarm:

$ docker swarm init
如果运行此命令出错,加上 --advertise-addr 你的IP 参数。

Docker Hub

注册一个Docker Hub账号。Docker Hub允许你在互联网中发布自己的Docker镜像来用于多节点集群或社区共享。在Workshop中我们使用Docker Hub发布函数。

你可以在这里注册:Docker Hub

备注:Docker Hub也可以设置为自动构建镜像。

打开一个终端或者Git Bash窗口,然后使用上面注册的用户名登陆Docker Hub。

$ docker login

OpenFaas CLI

你可以在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

发布OpenFaas的说明文档修改了很多次,因为我们努力使他简单。接下来将会在60秒左右的时间使得OpenFaas部署起来。

  • 首先clone项目
git clone https://github.com/openfaas/faas
  • 然后使用git检出到最新版本
$ cd faas && \
  git checkout master
备注:你也可以在project release page中找到最新导入release版本。
  • 现在使用Docker Swarm部署stack
$  ./deploy_stack.sh

你现在应该已经把OpenFaas部署了。

如果你现在在一个共享WIFI连接中,它将会需要几分钟时间拉取镜像并启动。

在此屏幕上检查服务是否显示为1/1:

$ docker service ls

如果你期间有遇到任何问题,请查阅Docker Swarm的 部署指南

现在进入Lab 2

未完待续


zhenfeng_zhu
19 声望1 粉丝

我要赚好多好多money~~