谈一谈我对 serverless 的看法,我非程序员,只是最近小小研究了下这类架构,认识可能很肤浅,望大佬们指点批评。
Serverless 或者 FaaS 总得来说的做的事就是进一步解耦业务逻辑和运维,将一系列微分的、模块化的函数彼此间及与外界以一种简单统一的方式连接起来。但是,我觉得这些连接还能做到更简单、更统一。
一个云函数与外界数据的接口就两种形式:1 ) HTTP,2 )平台的预定义事件(如对象存储发生变化)
对于 1 ),我觉得 HTTP 是业务逻辑之上的一层额外的转接。头部和参数就像无类型的 JSON,拿到后又要反序列化之类的过后才能用。所以,应该甩掉 HTTP 包袱的数据接口,直接对外开放端口,可以用 gRPC over sockets 这样最小化的协议,玩法也多多(全双工流什么的)。
我并不是说要革 HTTP 接口的命,毕竟有些业务本身就跟 HTTP 相关联,这时候用 HTTP 显得自然。只是 HTTP 承载了太多的功能,针对性不够强(不过优势是通用性带来的普适性,可以利用现有生态)。
对于 2 ),首先不能指望各大厂商统一。对于这些差异,只能指望厂商们在各自消息 API 上做得更人性化、文档更清晰些。
之前看到一篇文章讲 AWS lambda 与 PaaS 并无本质区别,我觉得也有一定道理,FaaS 的限制一多,与平台的耦合又回来了。
我对生产环境所知甚少,是不是当今的 serverless 已经可以满足绝大多数的微服务需求了呢?再次,有肤浅或错误的地方请指正!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.