加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

深入理解无服务器架构(Faas/Serverless)

发布时间:2019-03-23 20:05:21 所属栏目:外闻 来源:DevOps
导读:副标题#e# 无服务器架构(Faas/Serverless),是软件架构领域的热门话题。 AWS,Google Cloud和Azure - 在无服务器上投入了大量资金,已经在看到了大量专门针对Faas/Serverless的文章、书籍,开源项目,会议。 但什么是无服务器,为什么(或不是)值得考虑? 1.

另一个主题是无服务器FaaS是“存储过程即服务”。原文中也解释过了,但因为它实际上只是FaaS功能的一个子集,还有文章中提到的代码版本控制的问题,其他的几种开源方案不清楚,但是OpenFaas中有一个项目OpenFaas-Cloud,基于Github做了一个很棒的持续集成过程。

6. 使用Faas/Serverless的好处有哪些?

降低运营成本

无服务器是最简单的外包解决方案。你可以向云服务商付费以管理服务器,数据库甚至应用程序。基于规模经济效应:你为托管数据库支付的费用较少,因为一个供应商运行着数千个非常相似的数据库。

降低的成本来源于两方面,首先是纯粹来自与其他人共享基础设施(例如,硬件,网络)的基础设施成本。第二个是人工运维成本。

但是,这种好处与IaaS、PaaS并无太大差别,只是更省钱了。

BaaS:降低开发成本

IaaS和PaaS基于服务器或容器的商品化。而无服务器 BaaS是应用程序组件的商品化。例如:身份验证是一个很好的例子,许多应用程序编写自己的身份验证功能,这些功能通常包括注册,登录,密码管理以及与其他身份验证提供程序集成等功能。总的来说,这个逻辑在大多数应用程序中非常相似,并且已经创建了像Auth0这样的服务,以允许我们将现成的身份验证功能集成到我们的应用程序中,而无需我们自己开发它,不得不说,真的很省钱。

关于BaaS数据库,如Firebase的数据库服务。一些移动应用程序团队发现让客户端直接与服务器端数据库通信是有意义的。 BaaS数据库消除了大部分数据库管理开销,并且通常提供以无服务器应用程序所期望的模式对不同类型的用户执行适当授权的机制。

是不是有些担心安全?我想在新的云计算时代,我们都要慢慢接受这些变化。

扩容成本

但在基础设施方面,最大的好处是您只需支付所需的计算费用,在AWS Lambda的情况下,AWS 为开发人员提供每月 100万的请求和 400,000 GB 的计算时间 ——无需任何费用,省去的可是真金白银!

示例:低频的请求

假设正在运行仅每分钟处理一个请求的服务器应用程序,处理每个请求需要50毫秒,并且您在一小时内的平均CPU使用率为0.1%。如果将此应用程序部署到其自己的专用主机,那么这非常低效。这个机器你明明可以运行一千个类似的应用程序,共享在这台机器。

FaaS把降低的成本交给了你。使用上面的示例应用程序,每分钟只需支付50毫秒的计算费用。

示例:不规律的流量洪峰

让我们看另一个例子。 假设你的服务收到的基准流量是每秒20个请求,但是每隔5分钟每秒会收到200个请求(通常数量的10倍),持续10秒。你当然不希望在流量峰值阶段减少响应时间。 你是如何解决这个问题的?

在传统环境中,你可能需要将总硬件数量增加10倍,仅仅为了处理峰值的情况,即使峰值的总持续时间不到总机器正常运行时间的4%。 自动扩展可能不是一个好的选择,因为新的实例启动时,服务器需要多长时间才能启动,峰值阶段将结束。

就像下图中的处理一样:

使用FaaS这就不会成为一个问题,只需在峰值阶段支付额外的计算费用就好。显然,这是一个Serverless/FaaS可以节省大量成本的示例,但重点是从扩展的角度来看。

优化是成本节约的根本

还有一个有趣的方面:对代码进行的任何性能优化不仅会提高应用程序的速度,而且还可以直接关系到运营成本的降低。例如你的FaaS函数,之前的相应需要100ms,进过优化后减少到50ms,那么恭喜,成本降低了一半,就是这么直接,不需要改任何基础架构。

运维管理的提升

扩容带来的便利

这个前文提到过多次,FaaS的扩展功能不仅降低了计算成本,而且还减少了操作管理,因为扩展是自动的。

在最好的情况下,如果扩展是手动的,那么运维人员需要明确地向一组服务器添加和删除实例 - 使用FaaS,忘记这一点并让FaaS供应商扩展你的应用程序。即使您已经在非FaaS架构中使用自动扩展,仍然需要设置和维护。 FaaS不再需要这项工作。

降低了打包和部署的复杂性

与部署整个服务器相比,打包和部署FaaS功能非常简单。 你所做的就是将所有代码打包到一个zip文件中,然后上传它,也没有决定是否在计算机上部署一个或多个容器。 如果您刚开始使用,甚至不需要打包任何东西 - 您可以在供应商控制台本身编写代码。OpenFaaS好玩了,它允许你直接拉取Github的源码,一个配置好CI参数后,一个Commit就会让你的函数更新掉。

这个过程不需要花费很长时间来描述,但对于某些团队而言,这种好处可能非常巨大:完全无服务器的解决方案需要零系统管理。

PaaS解决方案具有类似的部署优势,但正如我们之前看到的,在将PaaS与FaaS进行比较时,扩展优势是FaaS独有的。

交付速度和持续的验证

随着团队和产品越来越多地面向敏捷,,我们希望不断尝试新事物并快速更新现有系统。虽然在持续交付的情况下进行简单的重新部署可以快速迭代稳定的项目,但是从具一个Idea到初始部署能力使我们能够以极快和低成本尝试新的实验。

前文提到的,基于FaaS的持续集成,非常完美的让你持续的实验下去

虽然成本效益是无服务器最容易表达的改进,但是这种缩短的交付时间让我最兴奋。它可以实现持续实验的产品开发思维,这是我们如何在公司中交付软件的真正革命。

“绿色”计算?

在过去的几十年中,世界上数据中心的数量和规模都在大幅增加。除了建立这些中心所需的物理资源外,相关的能源需求如此之大,苹果,谷歌等都在谈论将一些数据中心托管在可再生能源附近以减少化石燃烧。

通电后的空闲,使得服务器消耗了大量的能量。

Typical servers in business and enterprise data centers deliver between 5 and 15 percent of their maximum computing output on average over the course of the year. – Forbes

这非常低效,并产生巨大的环境影响。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读