写了个 FaaS 的规范,欢迎大家一起来补充和 PR

2018-09-10 12:32:37 +08:00
 ivydom

Fnlib - 一个简单的 FaaS 规范

正文在 Github:fnlib,欢迎大家 PR。

English | 中文翻译

Function as a Service Lib

Fnlib ( Function Lib )是一个简单的 FaaS 规范,旨在使个人开发者和企业可以轻松地将其作为参考以实现具体的 FaaS 功能。

Fnlib 只定义了一个客户端使用协议,因此 Fnlib 不关心服务器的实现方式。但是为了给开发人员提供最佳体验,最好在接口级别遵循 fnlib 规范。

The specification of fnlib includes API gateway, function context, function parameters, HTTP request, error handling, and GraphQL.

Fnlib 的规范包括 API 网关,函数上下文,函数参数,HTTP 请求,错误处理和 GraphQL,目前 GraphQL 正在制定中。

这是一个早期规范,未来可能会进行修改。

什么是 FaaS ?

功能即服务( FaaS )是指支持无服务器应用程序开发和管理的云服务。这意味着开发者只用操心业务逻辑,而无需管理自己的服务器。

FaaS 于 2014 年由 hook.io 首次引入,但由亚马逊的 AWS Lambda 以及 Google Cloud Functions 和 M icrosoft Azure Functions 扩大规模。 除此之外,IBM 还有一个名为 OpenWhisk 的开源 FaaS 系统,而 Uber 拥有一个在私有云平台上运行的 FaaS。

除了美国公司之外,中国的阿里云和腾讯云也推出了 FaaS 平台,此外还有两家创业公司从事相关工作( bomb 和知晓 云)。

为什么要使用 Fnlib ?

减少设计时间

Fnlib 是一个最简单的规范,也是一种外包解决方案。由于你使用的是很多人使用过的规范,我们所预估的结果是:你不必关心项目文档和业务设计,因为这些已经设计好了。

为人类编写的拥有良好设计的规范

无服务器近年来发展迅速,每个制造商都有自己的标准。 为了与多个平台兼容,开发人员不可避免地要编写大量逻辑以实现兼容。 所有这些软件还衍生出一些开源软件,以便与一个接口的多个实现兼容,但这些开源软件目前彼此独立。

Fnlib 希望提供一套标准规范,让开发人员可以像构建网页一样构建 FaaS 程序。

正文在 Github:fnlib,欢迎大家 PR。

2346 次点击
所在节点    程序员
9 条回复
whileFalse
2018-09-10 12:59:43 +08:00
前面的部分似乎是照着 aws lambda 写的;
后面错误处理的部分,type 这个东西就能看出楼主对 json 不熟。
whileFalse
2018-09-10 13:03:01 +08:00
再以及,put 凭啥一定是 json 啊,我 put 一个文件呢?把它 base64 了放 json 里吗?
whileFalse
2018-09-10 13:09:35 +08:00
建议楼主多用用各个平台的甭管 lambda 还是 functions,至少做出一整个业务来,把整体都摸清楚了,自己用熟了再总结出一套方法来,而不是上来纯凭思考出个规范。
ivydom
2018-09-10 21:22:41 +08:00
@whileFalse 欢迎 PR : )
defunct9
2018-09-11 06:59:57 +08:00
顶下。这个东西天生是 nodejs 友好的,对 java go php 就较劲了,考虑到平台的特殊性,麻烦就大了
whileFalse
2018-09-11 08:48:11 +08:00
@defunct9 你大概是有什么误解……这货的问题是对于需要大量内存、长初始化时间的应用环境不友好。比如那些动不动需要 30s 初始化的 java 框架。对于其他的没啥要求。

而且 lambda 的大优势是不同的接口可以用不同的语言、框架实现。之前微服务的优势不是每个服务可以用不同的语言写么,现在 faas 把这个优势扩大到接口级别了。
defunct9
2018-09-11 09:31:38 +08:00
@whileFalse 刚用 aws 的 lambda 实现了个 php 的接口,自己编译出来的 php (注:是从纯正的 aws 系统里弄出来的)不可用,所以这么说,另外类似 java 数据连接池等东西也比较难实现。
ShineSmile
2018-09-11 13:11:50 +08:00
linshuang
2018-09-12 10:28:38 +08:00
serverless 么,已星

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX