联系我们
 

Serverless架构的优缺点有哪些?

By

CI&T

无服务器(Serverless)计算是云用例中最火热的技术架构之一。传统的云模式(通常称为Cloud 1.0),你将存储和网络移到云中,仍需通过虚拟机(VM)远程访问和监控它。无服务器的方法则带我们进入了另一个级别。程序员选择编写代码的环境(Node.js.Python,C#等),并上传代码文件,然后由系统自动部署。
通过服务商的生态系统,你可以轻松描述这些服务如何通信以及它们可以访问数据的位置。这是一种近乎NoOps的方法,大多数Ops都外包给服务商。在过去的几年里,无服务器已经成为BBC、Airbnb、Netflix、Nike等品牌的主流架构,大多品牌都采用新方法来处理其后端。

无服务器计算的优点

从开发的角度来看,无服务器的好处显而易见。这是一种简化的开发方法,消除了复杂的层面,简化了工程设计。但是从业务角度,该如何说服利益相关者,证明无服务器架构是未来方向?

比传统云便宜

在传统的云模式中,你需要服务器随时准备处理请求。不管实际使用的CPU时间和内存如何,持续的服务器可用性都会导致每月大量的后端成本。而无服务器供应商允许你为每个请求支付一小部分的费用,这意味着你的成本仅取决于你本月的流量。

可扩展

无服务器方法非常灵活,是扩展应用程序的理想选择。服务商将你的每个功能都分别放在不同的容器中运行。这使你可以无限制地自动调整它们。这是无服务器和传统云之间的另一个区别。在这里你不必购买预订的资源量,你可以尽可能地灵活。

减少人力和资源浪费

在无服务器计算中,开发人员仅在功能运行时付费,与IaaS和PaaS不同,IaaS和PaaS为每台服务器24/7收费。这对于拥有庞大的应用程序,API或微服务设置的公司来说非常有用,这些应用程序,API或微服务目前全天候运行并且100%的时间使用资源,无论是否需要。但是对于无服务器,我们可以按需执行功能并共享资源,而不是全天候运行应用程序,因此我们可以大大减少空闲时间,并使应用程序运行得更快。

更快的上市时间

OPS变得更加简单,开发人员就可以把工作时间专注于他们的开发上。OPS团队无需编写处理扩展或担心底层基础架构的代码。此外,团队可以在第三方集成的帮助下更快地构建应用程序,例如OAuth、Twitter和Maps等API服务。

无服务器计算的缺点

供应商限制

当你让供应商控制你的运维时,必须按照他们的规则来玩。如果你已将应用程序设置到Lambda上,将应用程序移植到Azure也不是一件容易的事情。同样的问题涉及编程语言:现在只有Node.js和Python开发人员可以自由选择现有的无服务器选项。

学习曲线

尽管有全面的文档和社区资源,你可能很快就会发现它的学习曲线非常陡峭。此外,为了平滑的迁移到无服务器,你可能希望将你的“庞然大物”分为微服务,这是另一个需要解决的复杂任务。这就是为什么最好从无服务器工具经验丰富的专业人士那里获得帮助。

不适合长期任务

Lambda给你五分钟执行任务,如果花费更长时间,你将不得不调用另一个函数。无服务器非常适用于发送电子邮件等短实时或接近实时的流程。但长时间操作(如上传视频文件)需要额外的FaaS(函数即服务)功能,或者更适合“服务器”的架构。


CI&T

CI&T