要无服务器吗? 比较您的FaaS选项

与新概念和新技术一样,“无服务器”或FaaS(功能即服务)的绝对定义是广泛且未定义的。 本质上,这是一个将云计算和“便捷即服务”发挥到极致的概念,在您的应用程序需要时提高处理能力并响应数据。

无服务器非常适合物联网设备,微服务架构或任何其他需要提高效率的应用程序。 在本文中,我将超越主要参与者(AWS,Azure,Google),重点介绍鲜为人知的竞争者,供您考虑用于下一个项目。

许多共享相似和功能,有些是基于容器的,有些是开源的(需要您自己进行设置),有些没有将自己描述为“无服务器”,但是共享了足够的概念相似性,无论如何我都将它们包括在内。

Google App引擎

我没有在列表中包括比较知名的Google Cloud Functions ,但是很久以前,“无服务器”一词就出现了,甚至在Lambda之前,还有Google的App Engine

它支持Node.js,Java,Ruby,C#,Go,Python和PHP,并添加了诸如将流量路由到不同版本和应用程序,安全性以及对Google其他云服务的访问等功能。 我想知道App Engine和Cloud Functions是否会合并,但是就目前而言,它是经过十年开发和使用的可靠选择。

Google App引擎

网络任务

对于Auth0背后的团队来说, Webtask是一个免费的无服务器平台,用于处理用JavaScript编写的不需要的项目。

尽管有这种成本(缺乏),它还是有一个不错的CLI工具,并支持机密,NPM模块,日志,cron任务,自定义域以及许多其他功能。 Webtask需要熟悉无服务器的概念,但是对于任何有知识的人来说,想要尝试一种服务都可以,这是完美的。

网络任务

顶尖

通过使用Node.js填充程序, Apex允许您将AWS Lambda与不支持的语言一起使用。 随着Lambda增加了对语言的支持,Apex可能会变得不那么有用了,但就目前而言,它仍然会堵塞一些有用的漏洞。

作为一个开源项目,它的确使我想知道支持新功能的速度有多快。 但是目前,它支持多种Lambda功能。

PythonAnywhere

顾名思义, PythonAnywhere仅支持Python,并且面向教育市场。

它比纯无服务器更像是功能全面的在线IDE和托管环境,但这确实意味着较小的Internet连接设备可以访问Python的功能,因此具有一些相似之处。 对于没有屏幕的设备,该平台可以接受来自任何公共存储库的代码推送。

Apache OpenWhisk

对于希望完全控制其应用程序的任何人, Apache OpenWhisk是一个有前途的开源选项。

弄清楚如何入门有点令人困惑,这是开源项目的一个常见问题。 我遵循了入门指南,该指南花了大约30秒钟才收到错误消息并被卡住。

如果您不太关心自托管方面,那么IBM的云功能将在内部使用OpenWhisk。 快速搜索将找到数十种帮助您入门的资源,但是大多数资源都是由IBM员工编写的,因此他们仍然将您推向IBM Cloud平台。

我遇到的最大障碍是如何在没有IBM Cloud的情况下使用OpenWhisk。 我终于找到了The New Stack的指南,该指南建议使用Vagrant进行本地测试。 这使我深入到OpenWhisk的代码库 ,发现虽然可以在大多数平台上安装和运行并开始接受请求,但它很复杂。

注册免费的Codeship帐户

IBM Cloud功能

由于IBM Cloud Functions是Openwhisk的托管主机,因此我将重点介绍该服务最重要的内容。 Openwhisk具有更好的运行时选择之一,并包括可以更好地代表IBM优先级的语言,例如Swift,PHP和Java。

最近,IBM添加了一个composer工具,使您可以通过编程方式组合不同的服务。 他们正在努力向用户展示其云难题的哪些部分可以满足特定的用例。 Openwhisk的最大优点之一是对IBM Watson服务的集成访问,可将您的小型Internet连接设备插入功能强大的人工智能中。

Spotinst

您可能从未听说过Spotinst作为云提供商,但是它也提供了无服务器产品 ,该产品支持JavaScript,Ruby,Python和Java 8,并且具有合理的免费套餐

Spotinst几乎是Serverless Framework的宿主,因此它的文档有些薄,您必须在两者之间进行切换。

网络实验室

当前处于私有Beta版中,他们的网站有点缺乏信息,但是Weblab (将提供)基于JavaScript的微服务托管。 定价是平均的,更多的是Heroku样式的模型-基于您正在运行的进程数而不是计算时间。

胡克

Hook.io并不是说它不是无服务器的, 但它提供的微服务和Webhook托管与这个概念非常接近,因此我可以将其包含在这里。 该平台支持多种编程和脚本语言,任何具有HTTP或cURL客户端的对象都可以请求响应。

胡克

无核

如果您已经将Kubernetes用于基础架构的其他方面,则Kubeless添加了“ ThirdPartyResource”函数定义,该函数定义使您可以将小型代码单元部署到集群中,而无需每次都构建容器映像。

它支持Python,Node.js和Ruby,并且还与Kafka和Prometheus集成,从而再次将无服务器概念引入了现有的基础架构中。

OpenFaas

与Kubeless类似, OpenFaas是一个使用Docker和Kubernetes构建无服务器功能的框架。

从理论上讲,它支持Linux和Windows容器支持的任何语言,具有自己的Web UI,并利用了Kubernetes,Docker和Prometheus的许多缩放和度量功能。 这涉及到您的少量初始设置,并且作为一个新项目,缺少当前文档 。 但是,一旦设置好 ,我建议您在 此博客文章中向您展示如何使用OpenFaas CLI创建和部署功能。

OpenFaaS

铁功能

IronFunctions是另一个利用基于容器的基础结构的解决方案, 是一个开源的无服务器框架,您可以自行托管或使用Iron的FaaS产品。

由于它在容器中运行,因此您可以使用Linux和Windows支持的任何语言。 IronFunctions支持AWS Lambda格式以及导入现有Lambda函数的功能,以及一个用于轻松创建和部署函数的CLI工具。

该项目还不到一年的时间,但是在一家知名的云原生提供商的支持下,它显示出了希望并且看起来设计得很好。

无服务器框架

顾名思义, 无服务器框架不是一个平台,而是一个可帮助您在其他平台之上创建无服务器应用程序的框架。

目的是您可以编写一次代码,然后将其部署到您喜欢的任何平台。 实际上,体验会因每个平台支持的语言和功能而异。 您可能会发现最好从“最小共享功能集”开始开发,将特定于平台的功能分离为补充功能。

结论即服务

ew 有很多选择要考虑,我确定我错过了一两个。 我很想听听您尝试过的内容,经验和建议。

翻译自: https://www.javacodegeeks.com/2017/12/going-serverless-compare-faas-options.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值