Serverless

最近关注ServerMesh时,又听到一个Serverless,所以又了解了解,做个笔记吧。

最近google开源了Knative,感觉Serverless可能又要起飞了。

Serverless也是一种架构模式,中文意思是“无服务器”架构。目前,业界并没有给出明确的定义,把其分成两种类型,分别为“Backend as a Service” 和 “Functions as a Service”。

个人理解就是开发是不需要维护基础设施以及基础组件,直接填业务代码。

Serverless与传统架构比较

传统的互联网APP主要采用C/S架构,服务器端需长期维持业务进程来处理客户端请求,并调用代码逻辑完成请求响应流程。而在Serverless架构中,应用业务逻辑将基于FAAS架构形成独立为多个相互独立功能组件,并以API服务的形式向外提供服务;同时,不同功能组件间的逻辑组织代码将存储在Amazon Lambda,Azure Function,Google Cloud Functions等产品上,业务代码仅在调用时才激活运行,当响应结束占用资源便会释放。

个人理解类似事件驱动的感觉,来了请求就触发业务代码。我理解这种形式是不是很有可能比传统的长期维持的方式要慢一些,因为传统是等着你时刻准备着,serverless是你来了我再启用。

Serverless 如果是在高并发而且要求数据安全性、独立性的场景应该是不适用。和云厂商真的是强耦合了。后续有时间继续学习吧。

如果想试一试,可以去Cloudflare](https://workers.cloudflare.com/docs)试试跑一个简单的js脚本感受一下。

参考: