关于Serverless无服务器架构的神话和误解

以及为什么应该考虑使用Serverless无服务器


Photo by Jordan Harrison on Unsplash

对Serverless无服务器计算解决方案的需求正在增长。 但是,在继续进行之前,让我们尝试解释一下这种相对较新的现象是什么。 无服务器这个名字很矛盾。 不,无服务器并不意味着不涉及任何服务器。 当然,某处必须有服务器。 否则我们还怎么能做任何计算呢?

那么什么是无服务器? 维基百科是这样说的:

“无服务器计算是一种云计算执行模型,其中云提供商运行服务器,并动态管理机器资源的分配。”

我最喜欢的描述来自Gojko Adzic。 他说,无服务器就是无线WiFi一样的无服务器。 因为即使使用WiFi,仍然涉及很多电缆。 无线连接到网络后,您无需考虑连接路由器等的所有电缆。

无服务器也是如此。 即使仍有服务器在运行您的代码,您也不必考虑这些服务器。



为什么要采用Serverless架构?

有几个原因让您考虑使用Serverless架构。

可扩展

想象一下这样一种情况,邮局可以以某种方式神奇地随意添加和停用运输卡车。 在情人节前后,当邮件数量激增时,邮局可能会增加送货卡车的数量。 另一方面,在需要更少的交付次数的时候,可以减少运输卡车的数量。 从本质上讲,这就是无服务器应用程序能够做到的。

作为开发人员,无服务器时无需考虑扩展,因为它会自动发生。

无需管理服务器

使用无服务器时,无需担心如何为服务器打补丁以获取最新的安全更新或其他需要完成的维护任务。

这就留出了更多的时间来专注于实际生产代码和从事核心业务。 除此之外,您无需雇用具有管理服务器专业知识的人员。

这将节省您的时间和金钱,这对每个企业都是宝贵的资产。

便宜

您不必为闲置的服务器付费,只需在服务器实际在做某事时付费。 换句话说,如果服务器上没有代码运行,则无需付费。

由于大多数服务器在大部分时间里都没有积极地做某事,因此,使用无服务器可以节省很多钱。 在某些情况下,成本可以降低90%。

但是,由于变得无服务器,性能可能会受到一点损害。 由于无服务器代码不是一直在运行,因此在使用无服务器代码时可能需要“启动”。 此启动时间可能会降低性能。 这就是所谓的“冷启动”。

如果定期使用一段代码,则无服务器提供程序将始终保持激活状态。 这称为“热启动”,不会影响性能。

快速且受控的部署

使用无服务器时,无需将代码上传到服务器即可发布该产品的新版本。 开发人员可以非常快速地上传少量代码并发布该产品的新版本。 代码可以一次全部上传,也可以一次上传一个功能。 这是可能的,因为该应用程序是功能的集合,而不是一大堆代码。

这样就可以快速更新,修补,修复产品或向产品添加新功能。 开发人员可以一次更新应用程序的一项功能,这使他们可以更好地控制部署。

安全

供应商负责系统的安全性以及运行代码的服务器周围的网络配置。 发生崩溃时,供应商将修补其所有服务器,您甚至不必考虑它们。


总体而言,我们可以说无服务器使开发团队的工作职责减少了,这意味着有更多的时间来处理对客户产生实际影响的事情。


神话和误解

无服务器架构仍在日趋成熟,这就是为什么对它的实际运行方式有很多神话和误解的原因。

误区1:每个请求都会出现冷启动

人们通常倾向于夸大冷门的作用。 并非每次请求都会发生冷启动。 资源在可能的情况下被重用。 仅当没有容器与您的代码一起运行时,冷启动才会发生。

误区二:提价

关于无服务器成本的最常见问题之一是:但是,如果亚马逊决定提高Lambda的价格呢? 这可能是一个值得关注的问题,但对于市场力量而言却是完全无知的。 如果提高Lambda的价格,则客户可能会转向其竞争对手。

除此之外,从历史上看,数据不支持这件事。 亚马逊在过去五年中宣布降价67次,零涨价。

误解三:无服务器成本更高

无服务器可能使您付出同样甚至更多的代价,但是您要做的事情更多。 无需花费任何时间和资源来维护服务器。 您无需为知道维护这些服务器的知识的人花钱。

减少了开发人员要做的操作量,使他们有更多的时间来生产代码。 因此,即使花费更多的钱,也可以将更多的时间花费在满足客户需求上。


(本文翻译自Daan的文章《The Myths and Misconceptions About Serverless》)

举报
评论 0