LFCA:了解无服务器计算、优势和缺陷 - 第 15 部分
无服务器技术在技术社区引起了很大的轰动,引起了很多好奇,但也在一定程度上引起了一些反对。这项技术始于2014 年AWS Lamba的推出,随后Azure Functions于 2016 年晚些时候推出。
随后,谷歌也于 2018 年 7 月发布了Google Cloud Functions。那么,什么是无服务器技术呢?为了最好地回答这个问题,让我们回顾一下传统的基于服务器的计算。
在传统的 IT 模式下,你基本上掌控着一切。作为企业主,你必须为服务器和其他网络设备(如路由器和交换机)以及用于维护服务器的机架制定预算。
您还必须担心获得一个纯净安全的数据中心,并确保它能够充分提供冷却和冗余电源以及互联网服务。设置完成后,您必须安装操作系统,然后部署应用程序。此外,您还需要设置监控系统并实施安全功能,例如防火墙和入侵防御以及检测系统。
你可能已经猜到了,这是资源密集型的、成本高昂的、耗费精力的。
随后,云计算进入科技界,彻底改变了我们部署和管理服务器和应用程序的方式。它预示着一个新时代的到来,开发人员可以立即轻松创建云服务器和数据库并开始开发他们的应用程序。无需担心传统 IT 计算相关的问题,例如停机、昂贵的设备和租用数据中心。
虽然云计算带来了部署 IT 资源的便利性和规模经济,但一些公司会过度购买服务器空间和 RAM 和 CPU 等资源,以应对网络流量或活动激增可能使应用程序不堪重负的情况。
虽然这是一个谨慎的举措,但意想不到的结果是服务器资源利用不足,而这些资源往往会被浪费。即使使用自动扩展,意外的突然激增也可能带来高昂的成本。此外,您仍然需要执行其他任务,例如设置负载平衡器,这也可能会增加运营成本。
显然,尽管转向了云,但一些瓶颈仍然存在,并且有可能增加成本并造成资源浪费。这就是无服务器计算的用武之地。
什么是无服务器计算
无服务器计算是一种按使用量付费的方式向用户提供后端服务的云模型。简单来说,云提供商分配计算资源,并只对应用程序运行的时间收费。这相当于从有线电视的月费计划转换为仅在观看电视节目时付费。
“无服务器”一词可能有点误导。有服务器吗?当然,但是,在这种情况下,服务器和底层基础设施完全由云提供商处理和维护。因此,您不必担心它们。作为开发人员,您的重点是开发应用程序并确保它们能够让您满意。
这样一来,无服务器计算就消除了管理服务器的麻烦,并节省了您处理应用程序的宝贵时间。
无服务器计算提供的后端服务
无服务器后端服务的一个完美示例是函数即服务( FaaS ) 平台。FaaS是一种云计算模型,它使开发人员能够根据事件开发、执行和管理代码,而无需构建和管理通常与微服务部署相关的底层基础设施。
Faas是无服务器计算的一个子类别,但有细微的差别。无服务器计算涵盖广泛的服务,包括计算、数据库、存储和 API 等。FaaS 仅专注于事件驱动的计算模型,其中应用程序按需执行,即响应请求。
FaaS计算模型的示例包括:
- AWS 的 AWS Lambda
- Microsoft 提供的 Azure 函数
- Google 的云功能
- Cloudflare 的 Cloudflare Workers
总之,我们已经看到,使用FaaS,你只需为应用程序运行的时间付费,而云提供商几乎为你做所有事情,包括处理底层基础设施。管理服务器是你最不用担心的事情。
无服务器计算的好处
现在,您已经很好地了解了无服务器计算带来的一些优点。让我们更深入地探讨采用该技术的优势。
1. 无需服务器管理
这也许是采用无服务器计算模型的最大优势之一。尽管“无服务器”一词可能被误解为不涉及任何服务器,但事实是,应用程序仍在服务器上运行。问题的关键是服务器管理完全是云供应商的业务,这让您有更多时间来处理应用程序。
2. 轻松高效地扩展
无服务器基础设施可自动扩展应用程序,以应对使用量、需求或用户群增长的激增。如果应用程序在多个实例上运行,服务器将在需要时启动和停止。在传统的云计算设置中,流量或活动激增很容易导致服务器资源过载,从而导致正在执行的应用程序不一致。
3. 内置可用性
作为开发人员,您无需构建任何特殊基础设施即可使您的应用程序具有高可用性。无服务器计算为您提供内置的高可用性,以确保您的应用程序在需要时能够正常运行。
4.降低运营成本
无服务器计算按使用量付费分配资源。您的应用程序仅在代码执行时才需要后端功能,并将根据工作负载量自动扩展。
这提供了规模经济,因为您只需为应用程序运行的时间付费。在传统的服务器模型中,无论应用程序是运行还是空闲,您都必须支付服务器空间、数据库和其他资源的费用。
5. 更快地部署应用程序
无服务器架构消除了传统设置中后端配置和手动将代码上传到服务器的需要。开发人员可以轻松高效地上传小段代码并推出出色的产品。
易于部署还允许开发人员轻松修补和更新代码的某些功能,而无需改变整个应用程序。
无服务器计算的缺陷
无服务器模型有什么缺点吗?让我们来一探究竟。
1. 安全
配置不当的应用程序是无服务器计算的最大风险之一。例如,如果您选择AWS,则明智的做法是为您的应用程序配置不同的权限,这反过来将决定它们如何与 AWS 内的其他服务进行交互。如果权限不明确,则功能或服务可能拥有比所需更多的权限,从而为安全漏洞留下足够的空间。
2. 供应商锁定
在迁移到其他供应商时,选择无服务器模型可能会带来挑战。这主要是因为每个供应商都有自己的功能和工作流程,与其他供应商略有不同。
3. 测试和调试应用程序的困难
无服务器模型带来的另一个挑战是难以在上线之前重现无服务器环境来测试和监控代码性能。这主要是因为开发人员无法访问属于云提供商的后端服务。
4. 无服务器应用程序监控困难
监控无服务器应用程序是一项复杂的任务,原因与调试和测试是一项艰巨的任务相同。由于缺乏与AWS Lamba等后端服务集成的工具,情况更加复杂。
结论
无服务器计算继续受到企业和开发人员的青睐,主要有三个原因。一是价格合理,这意味着运营成本降低。二是无服务器计算有利于自动快速扩展。三是开发人员不必担心由供应商处理的底层基础设施。
与此同时,云提供商正在夜以继日地努力解决无服务器计算带来的一些问题,例如应用程序调试和监控的困难。