BaaS/FaaS 手动部署
# 步部署到阿里云
阿里云是使用上最为规范、标准化场景下的serverless部署方式。
如果你对serverless的运作感兴趣,并希望寻找更多的玩法,阿里云是一个不错的选择,各种选项可以帮助你更好地理解和配置serverless。
# 如何部署
如果你了解云函数,可以使用自定义镜像 / 自定义运行时 / 二进制等等方式部署。
下文是基于对完全不了解云函数的同学给出的最简单的部署方式。
# Step.1
- 阿里云首先要开通函数计算服务。
- fork 该仓库(https://github.com/DVKunion/SeaMoon.git)到您自己的 github 账户下
- 进入阿里云控制台,点击应用 -> 创建应用
# Step.2
选择 通过仓库导入应用
, 授权Github账户后,选择fork好的仓库,如果您之前没有使用过阿里云,在角色权限处还需要进行一次授权。
# Step.3
点击创建,等待服务部署成功
# 效果展示
# 叹息的腾讯云
注意
由于腾讯云 grpc 也没调研,加上拉胯不推荐使用,所以此处的文档依旧为 v1.1.3 版本,非最新版本文档。 如果要使用最新版本,请看上两篇的部署方式。
先说结论,个人不建议腾讯云部署,原因众多:
- 腾讯云go代码部署仅支持代码上传,这种过时的部署方式完全不符合devops的生态。
- 如此必须依赖自定义镜像部署,腾讯云又不支持公网镜像部署,还需要手动将镜像推送至个人腾讯云仓库(虽然个人版免费)
- 最最最最最重要的一点:腾讯云SFC不免费了,没有了免费调度的礼包,必须得买套餐,不买套餐TMD血贵,只是测了个速花了我4毛钱!
因此使用腾讯云的用户请先考虑下钱包,虽然最低配置的流量包9.9一个月。
# 如何部署
步骤很多,一步一步操作吧。。。大概对比一下就知道为什么不推荐腾讯云部署了。
# Step.1
结论也提到了,腾讯云不支持go代码级别部署,所以我们为了方便,只能通过自定义镜像部署模式,函数类型选择web类型:
在填写部署参数之前,需要先手动来上传server镜像到个人仓库(个人镜像仓库10个以内免费)
点击选择镜像,将会跳转至个人镜像仓库:
创建个人镜像仓库,先要创建命名空间,这个随便起个名字就好。
然后需要创建镜像仓库,镜像仓库的名称必须为:seamoon-server
然后点击快捷操作,会出现命令提示:
复杂的步骤来了。现在需要找一台i386/amd64架构、且有docker的电脑......如果不懂如何查看电脑架构/不知道如何安装docker,建议还是放弃腾讯云。
执行以下命令
# 拉取dockerhub 服务镜像
$ docker pull dvkunion/seamoon-server:latest
# 重新tag镜像
$ docker tag dvkunion/seamoon-server:latest <上图命令的地址>/<上图命令的地址>/seamoon-server:latest
# 登陆腾讯云
$ docker login <上图命令的地址> --username=<上图提供的用户名>
# 推送镜像
$ docker push <上图命令的地址>/<上图命令的地址>/seamoon-server:latest
还需要注意,登录时是需要填写登录密码的,如果是在不知道这个密码在哪里,建议重置一下;重置密码的位置也隐秘的感人:
至此,第一步已完成。
# Step.2
回到函数创建的页面,我们继续来创建函数。
现在选择部署镜像的位置已经有了,选择刚推送的seamoon-server镜像,开始填写配置吧:
基础配置中,函数类型必须选择web函数。名称建议填写seamoon比较容易识别,地域按照你自己的需求选择即可。
函数代码选完我们上传的镜像,不需要改动。
日志要花钱的,钱多就开。
高级配置中主要是环境配置:函数内存给个最低的64就够,初始化时间按照建议给90s,超时时间给600 10分钟足够。
重要的是环境变量的配置,如果是socks5代理这个值填写socks5; 如果你想要http代理,这里填写http。
往下滑,记得开启公网IP,并且不要绑定IP, 如果想要固定 IP 的再勾选绑定IP。来到协议配置,开启websocket,超时时间设置60,其他的都可以默认不动。
触发器也默认不动即可。
点击部署,终于,服务部署完成。
# Step.3
部署完成后,几秒后自动跳转到函数页面,点击触发管理,可以看到函数地址,将此地址直接复制到客户端配置即可。
# 效果展示
勉勉强强及格吧,大概10MB下行带宽的样子。
而且初次启动的冷启动速度相比其他家腾讯云是有明显感受上的启动时间的;IP池也逐步下滑了(benchtest大概在17-30个左右)。
而且从服务群来看,感觉腾讯云已经摆烂了,这玩意就这样了你爱用不用吧......哎。