您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 系统/运维 > 正文

为什么微软、AWS都选择无服务器架构?3分钟读懂其优势和用例

发表于:2018-10-24 作者:芯享家科技 来源:今日头条

在传统的客户端-服务器应用程序中,基于数据的所有API和端点都需要由开发人员实现。

无服务器架构(server less)是指依赖第三方服务运行的企业IT基础架构,而不是使用内部部署架构。

但这并不意味着不需要服务器,而是企业无需购买、租用或配置物理服务器,从而无需预配置或管理服务器即可运行代码(由服务商提供基础设施)。

无服务器基础结构不必独立于基于服务器的基础结构运行,某些代码可以在服务器上运行。Web应用程序就是一个很好的例子,它结合了微服务和无服务器代码来使它们运行。

后端即服务(BaaS)和功能即服务(FaaS)

无服务器基础架构可以分为两个单独的类别:后端即服务(BaaS)和功能即服务(FaaS)。

BaaS最初是作为移动架构(移动后端即服务或MBaaS),但已经发展为支持桌面程序,而不仅仅是移动应用程序。

BaaS提供完整的在线服务,管理代码的每个部分。通常,代码将在触发后不断运行,因此向提供商支付订阅。

BaaS使用相同的后端服务在各种应用程序的共享基础架构上运行。提供BaaS基础设施的供应商的例子有Parse,Kinvey,Buddy,Appcelerator和StackMob。

 

为什么微软、AWS都选择无服务器架构?3分钟读懂其优势和用例

FaaS与BaaS不同,因为它仅提供执行开发人员设计的代码的工具。

FaaS通过按需触发代码来工作,例如当某个事件发生时。这意味着你不必担心管理操作,因为它们都是自动发生的,并且运行起来非常便宜,只需支付在该触发器上消耗的内容,在几分之一秒内,测量内存和CPU使用率。

FaaS基础结构的示例包括AWS Lambda、Azure Functions、IBM OpenWhisk和Google Cloud Functions。它们都支持大多数编程语言和运行时,包括Node.js、Python、.NET Core和Java。

 

为什么微软、AWS都选择无服务器架构?3分钟读懂其优势和用例

无服务器架构实现的示例

无服务器基础架构不适用于每个应用程序或服务,特别是FaaS设置的情况。

因为它专为快速查询而设计,所以它最适合实时应用程序,例如数据分析、推送通知(如游戏应用程序、传输更新应用程序和社交网络或消息程序)以及其他不运行的应用程序经常,但在事件驱动的时间间隔,如数据库清理。

由于无服务器基础架构可以与微服务一起使用,因此还有其他应用程序可以使用此功能,包括API引导的SaaS应用程序或依赖第三方源数据的应用程序。

 

为什么微软、AWS都选择无服务器架构?3分钟读懂其优势和用例

无服务器架构的好处

除了较低的前期成本以及通常基于消费的支付模式之外,无服务器基础架构可以更容易维护,提供商管理维护确保它们按需启动和运行。

这意味着你不必聘请工程师来管理服务器,开发人员可以专注于编写代码和创新。这也意味着企业可以更好地响应不断变化的市场条件,调整代码而不必考虑它将驻留在何处。

FaaS特别提供了进一步的好处。例如,用户不必等待HTTP请求或API调用,因为代码仅在需要时执行。提供商管理包括扩展在内的所有其他内容,使其成为管理资源的更简单方法。

一旦执行了任务,容器就会被提供者停止服务,因此你不会为休眠容器付费。

 

为什么微软、AWS都选择无服务器架构?3分钟读懂其优势和用例

无服务器架构的缺点

因为基础架构的管理依赖于提供者而不是开发人员,所以存在一些缺点。

最大的问题之一是开发人员或程序员不会像管理基础架构那样拥有相同的应用程序可见性。因此,如果代码出现中断或问题,他们可能无法立即解决问题。

供应商锁定也是一个很大的挑战。如果在一个服务上设置所有内容,那么在提供商之间切换是很棘手的,有时候,实施的复杂性可能意味着在提供支持和切换时在经济上不可行。

无服务器架构的其他限制是因为它使用共享基础架构,在初始服务器请求期间可能会出现一些级别的延迟,这可能会使应用程序显得迟缓。

无服务器功能都是无状态的(stateless ),状态信息不能从一个函数的调用传递给下一个。有些应用程序不适合无服务器体系结构,例如长时间运行的进程,因为FaaS被设计为在代码启动后销毁容器。

 

为什么微软、AWS都选择无服务器架构?3分钟读懂其优势和用例

虽然无服务器平台也许可以轻松满足初始部署和缩放等需求,但依然无法完全省略基础架构运维