语言并不是使用Serverless跨不去的门槛
我们在使用Serverless进行开发的时候,你有没有想过这个问题,Serverless支持Java,Python,NodeJS等一些主流语言,那么碰到我们不支持的语言的时候,我们是否可以还可以使用Serverless呢?
当然可以,只是需要我们做一些事情。
函数的依赖
我们都知道,在使用Serverless进行开发的时候,我们只需要编写函数代码即可,这也是我们唯一可以操作的点。当我们需要一些依赖的时候,我们也是通过函数引入依赖,然后一起打包给FaaS平台,进行使用,各个语言有不同的安装依赖的方式,但是都是想想办法将依赖放入应用服务中,交给FaaS平台。但需要注意的是,FaaS平台对我们上传的代码大小是有限制的,不需要的依赖包尽量不引入,并想办法压缩一下。
自定义运行时
有了上面的安装依赖的过程,要解决我们让FaaS支持我们自定义的语言就没那么难了。要让Serverless支持某种语言,我们需要做的就是在FaaS中创建我们需要的运行环境,怎么创建呢,FaaS不帮我们做这件事情,我们能控制的就是函数,那么我们把这些运行环境和函数一起打包部署在FaaS平台中,然后告诉FaaS函数启动时需要运行的文件。至于触发器触发函数的问题,在你自定义的语言中的函数实现一个Http服务,FaaS平台会将触发器事件转发到这个http服务中,与我们自定义的运行时之间是通过http请求进行通信的。
总结
这篇文章告诉你的是,Serverless虽然支持Java、NodeJs这些语言,但它不仅仅支持这些,知道FaaS的运行原理,云服务不知道语言我们可以让它支持,语言并不是阻止我们使用Serverless的跨不去的槛,我相信未来各大云服务也会开发出各种语言的FaaS平台,让我们使用Serverless起来更加的方便,不受语言的限制。