如果搜索“无服务器”,则会发现无服务器是构建现代应用程序的一种新的流行方式。 无服务器真的是新的吗?
无服务器是指您无需担心服务器的概念-无需置备,部署和维护服务器。 显然有服务器,但是您无需考虑或担心它们,运行代码的云或平台将为您解决这些问题。 另一个主要优点是,无服务器功能(云功能或功能即服务)将在需求增加时自动扩展。
有趣的是,在云中执行代码的想法作为后端即服务(BaaS)或移动后端即服务(mBaas)的一部分已经存在很长时间了。 诸如Parse (成立于2011年。已被Facebook收购,现在是一个开源项目), StackMob (由PayPal收购), Kinvey (由Progress收购), Appery.io (我以前的公司)等公司。
这些公司除了提供开发人员可以编写和执行代码的服务器端环境外,还提供了其他服务,例如数据库,与第三方API和服务的集成,推送通知(针对移动设备),分析,文件存储,与登录提供程序和其他功能。 他们还提供了各种客户端SDK来与后端服务一起使用。
我认为无服务器只是构建现代应用程序的一种方法。 这不是特定功能,而是一种方法。 至于命名,我个人更喜欢云功能或功能即服务的名称。
无服务器和“旧的” BaaS服务器端代码执行部分之间存在三个区别:
- 语言支持
- 价钱
- 规模
语言支持
所有无服务器云提供商都是多语言的,换言之,它们都支持多种语言(JavaScript,Python,Swift,C#,Java等)来构建云功能。 BaaS提供者大多仅支持JavaScript(或Node.js)来编写服务器端代码。
价钱
使用无服务器时,您需要为执行时间和所用内存的组合付费。 您也仅在功能运行时付费。
使用BaaS,您需要为许多API调用支付前期费用和执行时间。 如果您全部使用它们–太好了。 如果您没有全部使用它们-好吧,您无能为力,那么您已经为它们买单了。 如果您超过了限额,您将被收取超额费用。
规模
如何扩展您的应用程序/服务只是一个灰色区域。 我认为基本想法是–如果您的应用程序快速增长,并且您需要更多的计算资源,请告诉我们,我们将找出解决方案。
今天,无服务器会在需求增加时自动扩展您的功能。 这是当今无服务器的核心优势之一。
无服务器只是一种 方法
我认为无服务器只是构建现代应用程序的一种方法。 几年前它被称为BaaS,今天它被称为无服务器。
无服务器架构应包括:
- 云功能(FaaS)
- 数据存储/数据库
- 通知(手机,台式机)
- 消息传递(电子邮件,短信)
- 与第三方/外部API集成
- 任何其他即服务
重要的是所有这些服务都应该扩展,而不仅仅是云功能。 如果您的云功能使用的数据库无法扩展–很好,那将无法正常工作。
让我知道你的想法。 您是否同意无服务器更多是一种方法而不是特定功能?
翻译自: https://www.javacodegeeks.com/2018/09/serverless-modern-applications.html