Serverless新的CGI?

Serverless是什么
Serverless是一种云计算服务模型,它允许开发人员构建和运行应用程序,而无需管理底层的服务器。在Serverless架构中,开发人员只需关注编写代码,而不必担心服务器的管理、扩展和维护。
对比了一圈云服务商:AWS Lambda(亚马逊)、Azure Functions(微软)、Google Cloud Functions(谷歌)、IBM Cloud Functions(IBM)和Alibaba Cloud Function Compute(阿里云)。
说人话的总结如下: 云服务商提供了一种在后台提交函数就能出接口的功能。 当有事件触发函数时,云服务提供商会动态地分配资源来运行函数,并在函数执行完成后释放这些资源。这种按需执行的方式使得Serverless函数能够实现弹性扩展和高效利用资源的优势。

什么是CGI模式
CGI(Common Gateway Interface,通用网关接口)是一种标准,用于在Web服务器和外部程序之间传递数据。通过CGI,Web服务器可以调用外部程序(通常是脚本或可执行文件),并将请求的数据传递给这些程序,然后将程序的输出返回给客户端浏览器。

在CGI模式下,当Web服务器接收到一个HTTP请求时,它会检查请求的URL路径是否与配置的CGI脚本路径匹配。如果匹配成功,服务器会调用相应的CGI脚本或程序来处理请求。
当年开发php、jsp、asp等的老人肯定对这个cgi模式非常熟悉。
当年java批判php性能不高主要也是说它不能常驻内存。是的大部分php运行在cgi模式,它就是每次请求都运行一次,结束后就关闭进程。
对比一下Serverless是不是很像?所以技术是个圆,当年对php批判得多激烈,用起它的特性就越多。
当然它们还是有点区别的,就是负载均衡不需要管了,云服务商帮你管。
Serverless优缺点对比
如果你去用了就会发现没宣传那么神。 首先,你得熟悉各平台的接口,这需要你花大量时间去熟悉这些不能在本地调试的接口。 然后各平台是互不兼容的。所以程序基本与平台深度绑定(这就是为啥要推广Serverless)。 最后,服务出问题了,你一步一步排查,最后发现是服务器问题,你只能和客服联系,祈祷服务尽快恢复正常。
优点就是不需要考虑扩容,请求量少的时候非常便宜(如果遇到ddos就考虑一下账单吧)。
Serverless和低代码对比
Serverless和低代码在代码管理上都是后台提交代码,然后立刻可以生成应用的工具。
Serverless主要是给有编程经验的人使用的,特别是有大量服务类接口,需要开发去查开发文档。
低代码有大量可视化配置,因此可以让没有开发经验的人也能开发应用。并附加脚本功能,让它能实现自定义内容。
码小螈平台还提供api接口功能,让你能像Serverless一样直接写代码来开发你的应用。
总结
一定程度上Serverless是CGI在云服务的延续,Serverless主要优势是低频应用或性能需求变化大的场景。 Serverless和低代码有不同的应用场景。但随着发展,低代码平台逐渐增加类似功能,将逐渐取代Serverless云服务。