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

无服务架构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是否会合并,但是就目前而言,它是经过十年开发和使用的可靠选择。

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

Google App引擎

网络任务

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

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

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

网络任务

顶尖

通过使用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客户端的对象都可以请求响应。

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

胡克

无核

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

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

OpenFaas

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

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

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

OpenFaaS

铁功能

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

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

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

无服务器框架

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

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

结论即服务

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

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

无服务架构faas