无服务计算的利与弊

据IBM最近的一项调查显示,无服务器的采用正在逐年增加,68% 的用户表示他们可能会在未来两年内采用无服务器架构。

乍一看“无服务器”一词可能带有一定的误导性。这并不意味着服务器不存在,而是用户不必担心后端架构或服务器,因为管理它的这部分工作转移到了服务提供商身上,它将员工从服务器管理工作和基于架构的任务中解放出来。无服务器计算和无服务器架构概念经常互换使用。

无服务器计算如何工作?

管理服务器是一个复杂的过程,通常涉及大量的跑腿工作。设置服务器并将服务器部署应用只是第一步,后续还必须对其进行监控、定期维护、配置、更新、扩展等等。

相比之下,无服务器可以摆脱所有繁杂的工作。开发人员可以专注于业务需求,而无需担心管理任何底层基础设施。通过编程语言(最常见的是 Python 和 Node.js),开发人员可以使用第三方资源来托管应用,从而变得更加快速且高效。

从开发人员的角度来看,这就好像服务器不存在一样。因此才有了“无服务器”这个术语。事实上,服务器仍然提供后端服务,只是由服务提供商处理所有事情。

无服务器计算的特点

无服务器计算的显著特点包括:

  • 抽象出服务器和维护它们的复杂性。
  • 提供即用即付(pay-as-you-go)成本模式,仅对使用的资源收费,减少了闲置资源或未使用空间的成本。
  • 可以根据需求的变化快速、自动地扩展。
  • Serverless是事件驱动的, 因此它仅在特定事件触发时运行。一旦触发事件,它就会执行任务,然后在几分钟后终止。
  • 开发人员可以专注于构建代码,而不是浪费时间维护基础设施。

无服务器计算的好处

无服务器计算有几个优点:

  • 更快的上市时间:使用无服务器无需担心设置后端基础架构,可以轻松设置开发环境,快速进入市场。
  • 没有服务器管理:无服务器计算依旧在服务器上运行,但是由云服务提供商 (CSP) 管理这些服务器。因此,开发人员不必担心服务器的管理工作,他们需要做的就是运行和执行代码。
  • 更低的成本:对于传统系统,通常需要购买容量过剩的服务器以避免出现宕机等情况。但是在无服务器的情况下,只需为所使用的资源和它们运行的时间付费。因此,无服务器计算的成本更低。
  • 高度可扩展性:无服务器的最大优势之一是它可以自动、轻松地扩展以适应需求,而无需用户干预。

无服务器计算的缺点

虽然无服务器计算对特定用例极具优势,但它也有一些缺点。

  • 厂商锁定:无服务器平台大多由云服务提供商提供,因此企业会面临厂商锁定问题。
  • 运行时间有限:无服务器的一个缺点是它只能在有限的时间内运行。因此,长时间运行的工作负载不适合部署在无服务器上。
  • 调试很困难:在无服务器环境中调试应用是一项挑战,因为它是在分布式网络上进行的,几乎没有时间来确定问题的根本原因,而且日志记录能够提供的帮助也很有限,所以需要更先进的工具方法来进行准确的调试。
  • 延迟更高:通常,当无服务器功能长时间处于空闲状态时,供应商会将其关闭。因此在下一次调用时可能会遇到更高的延迟或冷启动问题,这对于时延敏感型应用来说很不友好。

无服务器平台

目前市面上主流的无服务器平台包括 AWS Lambda、Azure Functions、Google Cloud Functions 和 IBM OpenWhisk。下面一起来看一下。

AWS Lambda

无服务器计算领域的“大腕”之一 ,AWS Lambda ,于 2014 年推出,被誉为无服务器概念的引领者。它与其他 AWS 服务无缝集成,是AWS产品用户的首选。

特征:

  • 它原生支持 Node.js、Python、Ruby code、Java、Go、.Net Core、PowerShell 和 C# 等语言。
  • 涵盖每月 100 万次的免费执行套餐。
  • 最长执行时间为 15 分钟。
  • 可以同步、异步地调用函数,或者使用基于轮询的调用模型。

Azure Functions

Azure Functions 是微软 Azure 的无服务器计算服务,可让开发人员运行事件触发代码。

特征:

  • Azure Functions 提供三种托管计划以满足用户需求。免费套餐同样包括每月 100 万次执行。超过之后针对不同的需求提供分层定价。
  • 支持 JavaScript、C#、PowerShell、F#、JAVA、Python 和 TypeScript。
  • 最长执行时间为 10 分钟。

Google Cloud Functions

Google Cloud Functions 作为谷歌云平台的一部分,于 2016 年发布,可以与谷歌的其他产品很好地集成,对于已经使用 Google 产品的用户来说,它是一个不错的选择。

特征:

  • 免费处理前200万个请求。
  • 与 Azure Functions 和 Lambda 相比,它更便宜。
  • 支持多种基于事件的触发器,例如 Cloud Pub/Sub 触发器、HTTP、Cloud FireStore、Firebase 实时数据库、Firebase 身份验证等。

IBM Cloud Functions

IBM Cloud Functions 是基于 Apache OpenWhisk 的一个开源无服务器平台,允许用户按需执行代码。

特征:

  • 支持 PHP、Swift、Node.js runtime、Java 和 Python。也可以将其他编程语言与 Docker 容器集成。
  • 最长执行时间为 10 分钟。
  • 提供了 99.95% 的 SLA。
  • IBM Cloud Functions 与 IBM Monitoring Service 集成可以提供更好的可见力。

无服务器的未来

全球无服务器市场预计将以 30% 的复合年增长率增长,到 2026 年市场将达到 160 亿美元。对于不能够承担额外的容量规划和资源供应负担的企业来说,无服务器计算是一种经济高效的选择。同样,对于寻求低运营成本和更快上市时间的公司来说,事件驱动的方法也极具吸引力。

但是,无服务器计算也有自己的缺点,它并不适合所有场景,因此企业在选择无服务器之前需要作出充分的考虑和规划。

本文编译自Enterprise Networking Planet


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/25662.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于22-03-18
0