亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 云计算

理解无服务器计算:简化基础设施管理

基础设施管理为现代软件开发工作流增加了额外复杂性。维护服务器运行、处理安全更新和扩展资源会占用 DevOps 团队的宝贵时间。借助无服务器计算,所有基础设施运维由服务提供商负责。因此,无服务器让开发团队专注于编写代码,而非花费过多时间在基础设施管理上。

本文解释什么是无服务器计算,以及它与不同云部署模型的对比。我们还将探讨无服务器的优缺点,并谈论一些常见用例。

什么是无服务器计算?

无服务器计算是一种在云中部署和运行代码的方法,无需处理服务器供应和基础设施管理。尽管名为“无服务器”,它仍依赖云或物理服务器执行代码。但开发者无需关心底层基础设施,这由无服务器提供商动态分配所需计算资源并代表用户管理。

对开发者而言,这意味着零时间花费在服务器管理、维护、资源扩展或容量规划上。他们只需上传代码,让提供商根据不同事件或请求运行服务端逻辑。与熟悉的云计费模型不同,无服务器服务根据代码执行次数或特定事件触发次数计费。

无服务器计算如何工作?

在无服务器环境中,代码由事件触发并作为函数执行。这就是为什么无服务器常与“函数即服务”(FaaS)联系在一起,二者概念相似。FaaS 是一种事件驱动的云模型,无需用户干预即可处理代码执行的服务端逻辑。这些事件可以是简单的 HTTP 请求、API 调用、数据库查询或文件上传。

函数在无状态容器中执行。这意味着运行函数的计算资源仅在调用时供应。无数据持久化在内存或写入磁盘。请求完成后,应用状态重置,不保留事务记忆。发起新请求需从头供应资源并执行代码,不引用前一次调用。

为适应这种无状态特性,应用需架构为可在无状态容器中运行的函数。这通常通过微服务实现。大型单体应用被拆解为较小片段并通过 API 互联。单体应用仍可作为单一函数运行,但不常见。考虑到每次请求都会供应新计算容器,大型函数将负面影响执行速度和时长。

FaaS 函数不会无限运行。被调用后一定时间会终止。大多数情况下,函数调用约五分钟后超时。这意味着发起长时任务的应用需重新设计以适应终止限制。

为函数执行供应和初始化容器也需要时间。通常以毫秒计,但复杂函数可能需要数秒初始化,导致更大延迟。

初始化函数有两种常见方式——热启动和冷启动。热启动复用前一次事件的资源,而冷启动部署新容器。初始化和执行函数所需时间取决于代码量、编程语言、脚本使用的库数量等诸多因素。就延迟而言,冷启动启动函数耗时更长。

理解无服务器计算:简化基础设施管理

无服务器计算与 BaaS、PaaS、IaaS 如何对比?

与任何软件趋势一样,没有官方定义描述什么是无服务器、什么不是。因此无服务器计算常与其他云服务和部署模型混淆。无服务器计算概念围绕两个相似领域:

后端即服务(BaaS) — BaaS 使开发者专注于编写前端界面,同时将所有后端运维卸载给服务提供商。这些幕后任务通常涉及现成的用户认证、存储、数据库管理和托管服务。此外,开发者无需管理运行其后端的服务器,从而加快应用部署。

函数即服务(FaaS) — 这种无服务器云服务模型消除了基础设施管理。服务提供商负责按需部署计算资源执行用户代码。这发生在事件或请求触发时。无服务器函数运行在无状态容器中,意味着计算资源仅在函数调用时部署。

主要混淆点在于后端即服务(BaaS)与平台即服务(PaaS)之间。前者是无服务器计算的一种技术,后者是云部署模型。尽管共享一些基本特征,PaaS 并不符合无服务器要求。

平台即服务(PaaS) — 使用 PaaS 时,用户按订阅费从服务商租用开发工作负载所需的硬件和软件解决方案。它允许开发者花更多时间编码而无需担心基础设施管理。另一方面,BaaS 提供开箱即用的用户认证、托管数据库、邮件通知等额外功能。BaaS 还允许开发者专注于构建前端,同时按需集成各种后端服务。

基础设施即服务(IaaS) — IaaS 指自助式云解决方案,提供商代表用户托管基础设施。所有服务器供应和管理操作(包括软件安装)由用户处理。一些 IaaS 提供商也提供无服务器解决方案,但作为截然不同的产品。

理解无服务器计算:简化基础设施管理

常见无服务器计算用例

如前所述,无服务器不适合所有人。但如果您的需求符合以下用例,可能从无服务器受益。

构建 API

无需管理服务器,构建高度可扩展和响应迅速的 API 是无服务器更流行的用例之一。无服务器的自动扩展特性确保 API 在高流量下始终可用。此外,无 API 调用时用户不为闲置资源付费。

网站和应用

在无服务器平台部署网站和 Web 应用无需任何前期基础设施设置。这大幅缩短启动全功能 Web 应用所需时间。自动扩展功能也在此发挥重要作用,因为用户无需担心供应更多服务器以支持需求增长。因此,维护 100% 正常运行时间变得更容易。

多语言应用

借助无服务器,单个应用可用多种语言编写。无服务器允许开发者将单体应用拆分为更小部分并作为微服务运行。这些微服务通过 API 相互通信。应用的每个片段可使用不同编程语言编写。

CI/CD 流水线

自动化是运行成功开发、测试和集成流水线的关键。无服务器允许开发者自动测试代码并更快修复 Bug。由于无服务器基于事件,用户可设置事件触发自动测试,无需人工干预。

无服务器计算的优势是什么?

与传统面向服务器的云计算相比,无服务器计算抽象掉了基础设施运维。一切开箱即用,从而确保更快的代码发布和自动化扩展,且价格更低。

以下是无服务器最常见的三大优势:

自动扩展

无服务器提供商根据需求扩展基础设施资源。扩展操作动态、自动进行,无需开发者干预。

更快的上市时间

无需供应复杂服务器集群,开发者可更专注于实现更高发布速度。这加快了将代码发布到生产环境或实施增量代码变更所需时间,从而更快向客户交付应用。

成本优化

因为一切按需供应,组织无需为未使用的存储空间、计算时间或网络付费。无服务器服务消费通常以毫秒为单位计量并据此计费。

无服务器计算的缺点是什么?

与任何软件解决方案一样,无服务器也有缺点。但取决于您构建的应用,可能不那么在意某些无服务器缺点。

延迟

执行函数时,无服务器提供商每次调用都自动部署所需资源。取决于工作负载大小,容器通常在毫秒级供应,但也可能耗时数秒。可通过“热启动”复用前一次执行的实例来降低延迟。

执行时长限制

无服务器函数执行时间有限,调用后一定时期会被中止。通常调用后约五分钟,因提供商而异。执行限制是发起长时进程应用的主要缺点。可通过将代码分段为更小块并作为微服务运行来缓解此问题。

厂商锁定

提供商通常使用专有技术实现无服务器服务。这可能给想将工作负载迁移到其他平台的用户带来问题。迁移到另一提供商时,代码和应用架构变更不可避免。

安全性

用户对运行其代码的实例配置控制很少。这对用户隐藏,属于服务提供商范畴。因此安全运维也掌握在提供商手中。若发生攻击,用户无助,完全依赖提供商减轻损害和恢复系统。在无服务器环境中拥有多个入口点的应用因攻击面增加而更易受漏洞影响。

无服务器计算的未来展望?

无服务器计算仍是相对较新技术。其未来取决于服务商解决上述缺点的能力——最重要的是冷启动。提供商需缩短函数闲置一段时间后执行所需时间。解决此问题将降低延迟并确保无缝用户体验。

无服务器目前依赖无状态容器执行函数。未来趋向于支持有状态应用以利用无服务器优势。这将允许开发者构建有状态应用而无需担心后端数据管理。

就 DevOps 而言,无服务器将推动 NoOps 扩展。这一趋势将导致无服务器提供商代表客户处理所有基础设施运维。在此设定下,企业无需内部运维团队。

未来几年,Kubernetes 预计将成为无服务器基础。凭借网络、敏捷自动扩展和多云部署支持,Kubernetes 可移植性在多方面增强无服务器计算。服务商有时限制某些应用类别在无服务器中运行显得不切实际。有了 Kubernetes,开发者将能克服这些限制,基于特定需求构建无服务器平台。

结论

尽管名称暗示没有服务器,无服务器计算仍依赖云或物理服务器。它是一种消除基础设施运维的计算模型,让开发者专注于编写和部署应用。无服务器模型围绕两大核心领域:后端即服务和函数即服务。

前者为用户提供开箱即用的后端架构,后者支持在无状态容器中运行应用。这些容器基于事件或触发器自动供应。因此,无服务器并非解决所有当前开发问题的银弹。它主要面向采用微服务架构的非单体应用。

云计算

  1. 什么是量子计算?入门指南
  2. 氧传感器 (O2) 详解:作用、位置与故障征兆
  3. 液压泵HS编码分类与应用指南
  4. 什么是编程?语言、工作流与常见挑战实战指南
  5. 无服务器计算:“即服务”创新的下一代
  6. 2026 年顶级云计算课程:从 AWS 基础到马里兰 MicroMasters
  7. 理解云计算:运作原理与重要性
  8. 大数据与云计算:双引擎如何协同驱动业务
  9. 阻碍Serverless广泛采用的核心挑战深度解析
  10. 云计算与本地部署:哪种基础设施最适合你的企业?
  11. 边缘计算详解:为何对现代业务至关重要
  12. 什么是A2钢?工业与木工通用的高性价比工具钢牌号