OpenFaas 小记

By | 2019/03/16

发现年纪真的不饶人了,研究了很多东西,但是不记下来的话,过一段时间又忘记了,重新上手又得研究一遍,费时费力。所以还是给长满野草的博客浇浇水,做点笔记吧。

Faas毋庸多言,serverless已经破成潮流,只不过大多数应用系统规模只有那么点,远远用不上这个东西。毫不客气的说,实际上99.9%的系统单体架构足矣,不过剩下的0.1%的系统,恐怕占用了99%以上的算力和存储,这就很有必要一拆再拆了,Faas是个微服务孕育下的新生儿,不敢说一定光芒万丈,但是存在即合理,个人对这个还是有点好感的。

最早接触这个东西,还是AWS推出的Lambda,记得当时收到一个广告邮件,是一个aws lambda的国内的在线演讲,回到家很认真的参加了(反正不要钱),然后就抛到脑后了;过了挺久以后,惊闻阿里云推出了函数计算,试用了一下,颇感麻烦,限制也多,加了个官方的dingding群,时不时看看里面的大神和菜鸡共舞,也是颇为有趣;再后来,阿里云的函数计算支持了更多的语言环境,最重要的是推出了http触发器,这个一下子就把可玩性和实用性推上了一个高度,连忙重拾旧爱,最终在上面部署了小小的服务,把公司里用的不那么频繁的系统后台部署了在上面(前端直接扔cdn上面了),算是省下了一笔。随后也慢慢把一些功能,如果pdf、图片转换等东西部署了在上面,因为函数计算每个月都有免费额度,这些功能使用不频繁,所以都不用支付什么,算是薅羊毛行为?

使用多了,也就慢慢理解了这里面的东西,本质来说,就是提交一个docker镜像,运行一下,这么个概念。相比云服务器,可以说把资源切分的非常细了,容器着实算是伟大发明。

最近看到OpenFaas,而且是基于Go语言开发的,好感满满,偷闲试了一把,记录如下。

  1. 虚拟机上安装Ubuntu Server,因为电脑上已经是Ubuntu,所以也没在VirtualBox上安装过,因为OpenFaas需要集群运行,又不想把本地的docker环成Swarm mode,所以装个虚拟机比较省事。不想ubuntu server安装有个坑,他在快装完的时候会让你选一些常用的服务软件,我一看有docker,这不乐开了花就选了,然后openfaas怎么都运行不起来,总是报错”/var/lib/docker”是个只读的文件系统,用sudo也无效,顿时倍感挫折。后来突然见发现,这个docker咋是snap.docker,snap这个东西也是略奇葩,只能写$home和若干/media下的资源,美名其曰安全可对咱开发人员实在不友好。我本地一开始装了几个snap程序后来全换了正常的版本。于是卸了snap.docker按照了正常的版本,总是起来了
  2. VirtualBox上的网络问题,之前也没有建立几个虚拟机做集群的经验,起了虚拟机以后发现各自不通,而且IP还相同,宿主机访问还得映射端口。对着设置端详半天,发现默认的NAT网络模式只能虚拟机到宿主机和上网,各自隔离,我又不能用网桥模式(网络管制),最后还是加了第二块网卡HostOnly模式让各自可以访问了,不过有一台ip总是无法自动获取,总要ifconfig设置下一下(顺便记一下,ip命令设置的话是ip addr add 192.168.10.102 dev enp0s8)
  3. docker swarm mode对于小型集群确实方便,一些负载均衡,服务发现都做好了,可以满足很多需要了。不过感觉一些服务不用放到集群中,比如数据库的,资源伸缩一下要把文件给搞坏了。所以还是外面启动一个,连入集群网络比较好。因为swarm mode中的ingress网络并不能提供服务发现功能,openfaas自己准备了一个func_functions的网络(overlay类型),连入它就可以被集群的中容器访问了docker run --network func_functions xxx。

OpenFaas功能很多,暂时只是浅尝辄止的。它提供基本所有的语言模板(其实docker能运行他就能调用),这一点比公有云上的要灵活一些,不过想部署的话自然代价也要高一些因为至少要一台一直运行的服务器了……然后还有镜像的存储成本,但是这个东西在一些特定情况下,可以很好的代替consul,traefik提供服务,而且有faas-cli帮助(感觉比阿里云的fun命令行要好用,那个资源编排文件写的头晕),可以挺方便的部署一些服务。

待之后积累了一些经验后,再来追加。

One thought on “OpenFaas 小记

  1. Sky

    初玩openfaas路过,其实是给我大佬推荐的,我想将我在公司弄的环境全部整合到家里的电脑上

    Reply

发表评论

您的电子邮箱地址不会被公开。