随着云计算的发展,个人和公司需要以与过去不同的方式使用和存储数据。为了实现这一目标,企业比以往任何时候都更加依赖云函数,并减少对本地部署的依赖。如今,所有领先的云服务提供商,包括 Amazon Web Services (AWS Lambda)、Microsoft Azure (Azure Functions) 和 IBM (IBM Cloud Code Engine) 在内,都提供无服务器架构平台。
与其他关键基础架构技术,如基础架构即服务 (IaaS)、平台即服务 (PaaS) 和函数即服务 (FaaS),无服务器架构可在多个重要方面为组织提供帮助:
无服务器架构代表了编码环境架构发展的最新阶段,其演进是为了让程序员能更专注于他们最擅长的事情——编写和部署代码。与无服务器架构开发相关的另外三种架构是裸机服务器、虚拟机 (VM) 和容器。下面进一步介绍每个步骤。
在无服务器架构中,函数即服务 (FaaS) ——一种允许客户响应事件运行代码的服务——对于将开发人员从管理底层基础设施中解放出来至关重要。借助 FaaS 和无服务器计算,开发人员可以完全专注于应用开发。
正如我们在裸机、虚拟机和容器中看到的那样,托管应用程序通常需要配置和管理服务器,以及安装和管理操作系统。而通过 FaaS,物理硬件、虚拟机操作系统和 Web 服务器软件管理全部由云服务提供商处理。FaaS 允许开发人员无缝部署无服务器应用程序和工作流,因此 FaaS 和无服务器这两个术语经常互换使用。
平台即服务 (PaaS)是一种云计算模型,它为客户提供完整的云平台,与在本地部署相比,这种平台更具成本效益且复杂性更低。虽然无服务器和 PaaS 架构都对开发人员隐藏后端,但相似之处仅此而已。PaaS 环境提供对部署环境的更多控制,但也需要更多管理工作。PaaS 中的应用程序需要手动配置才能扩展,并且启动所需时间可能比无服务器更长。
基础设施即服务 (IaaS)是一种通过互联网按需付费方式提供计算、服务器和虚拟机等资源的云服务。IaaS 让用户能够快速扩展,减少了因购买、设置和维护本地基础设施而产生的高额前期资本支出。在 IaaS 模型中,用户预先购买容量。在无服务器模型中,事件触发应用程序代码运行。本质上,IaaS 向用户预收资源费用,而无服务器仅对代码实际执行的时间收费。
随着云计算的持续扩展,以及企业寻求利用该技术创造新业务价值的新途径,无服务器架构用例正在迅速增长。
无服务器架构大幅降低编写和部署大数据应用程序代码的成本和复杂性。无服务器架构环境允许开发人员专注于代码和业务逻辑,而非管理基础设施的所有常规任务。此外,无服务器的永不停机功能意味着数据管道可以被设计成能够响应数据的实时变化并相应地调整应用程序逻辑。如今,无服务器架构可帮助开发人员构建可扩展的大数据管道,而无需管理底层基础设施。
无服务器架构的事件驱动能力、自动化特性和高可扩展性,使其非常适用于物联网应用程序所需的数据处理。自动化无服务器函数是无状态的,旨在处理单个事件。此外,无服务器架构灵活的计算能力使得构建物联网应用的开发人员在处理广泛分布的节点时,能够适应各种连接和数据处理需求。随着物联网设备数量的增长,无服务器技术独具优势,能够协助开发人员为事件驱动型数据分析(这对物联网应用至关重要)提供坚实的基础。
API 网关是一种软件,它接收应用程序用户的请求,将其路由到一个或多个后端服务,收集适当的数据,并将其以单个组合包的形式交付给用户。无服务器模型可充当 Web 应用程序操作的代理,并提供 HTTP 方法路由、客户端 ID 和密钥、速率限制、CORS、查看 API 使用情况、查看响应日志以及 API 共享策略。
在无服务器模型中,API 网关可用于构建REST API服务并触发与每个事件关联的代码。无服务器环境中的事件和函数可以转换为 HTTP 端点。这些操作(称为“Web 操作”)可以通过 API 网关收集到一个功能齐全的 API 中,从而增加额外的安全层和定制支持。此外,API 网关使开发人员能够访问各种量身定制的身份验证集成,这有助于缩短产品上市时间,同时提高开发人员的工作效率。
诸如 IBM watsonx Assistant 和 Microsoft ChatGPT 之类的聊天机器人非常适合无服务器环境,这是因为无服务器采用按需付费的定价模式,用户无需为未使用的资源付费。无服务器架构帮助各种规模的组织使用聊天机器人完成各种任务,例如提高客户参与度和自动化以前需要人工输入的服务。
随着各行各业、各种规模的组织寻求利用云计算来帮助实现其数字化转型目标,无服务器计算正发挥着关键作用。通过将开发人员从安装和更新操作系统、供应服务器和扩展基础设施等繁琐任务中解放出来,无服务器环境帮助开发人员专注于业务逻辑以及编写和部署代码。