会员服务 登录 注册
×
资讯活动

无服务器架构:云计算的演变

发布时间:2023-07-05 来源:金属加工

随着无服务器架构在cloudscape上的发展,下面是基于MongoDB谈谈对无服务器架构的看法,以及它们如何适应变化的时代

介绍

自从计算机问世以来,构建软件一直是一个复杂的过程。在过去的十年中,出现了新的基础设施方法(IaaS和PaaS)、软件体系结构(SOA和微服务)和方法(敏捷、持续交付和DevOps),以减轻应用程序开发的复杂性。虽然微服务在过去几年中一直是热门趋势,但无服务器架构通过提供一种新的方法来构建可伸缩且具有成本效益的应用程序而获得了发展势头。无服务器计算通过自动提供服务器和存储、维护基础设施、升级软件和只对消耗的资源收费,将开发人员从构建应用程序的传统成本中解放出来。

什么是无服务器计算?

无服务器计算是云计算中的下层抽象状态。这并不意味着没有服务器,而是底层的基础设施(物理和虚拟主机、虚拟机、容器),以及操作系统,都是从开发人员那里想象出来的。应用程序是在事件触发的无状态计算容器中运行的(例如,用户上传的照片触发了对他/她的追随者的通知)。开发人员创建应用,并依赖基础设施分配适当的资源来执行应用。如果应用上的负载增长,基础设施将创建应用的副本,并进行扩展以满足需求。

无服务器计算支持多种语言,因此开发人员可以选择他们最喜欢的工具。用户只对运行时和应用消耗的资源(例如RAM)收费;因此,不再存在供应不足或过剩的概念。

例如,如果一个应用的运行时间为500ms,并且消耗了15mb的RAM,那么用户只需要为500ms的运行时间和使用15mb RAM的成本付费。

无服务器体系结构是微服务的自然扩展。与微服务类似,无服务器体系结构应用程序被分解为特定的核心组件。微服务可以将类似的功能分组到一个服务中,而无服务器应用程序将功能划分为更细粒度的组件。自定义代码是作为运行在无状态计算服务中的独立、自治、细粒度应用开发和执行的。

对于无服务器架构,“用户”服务将被分成更细粒度的功能。在图 2 中,每个 API 接口对应一个特定的应用和文件。当客户端发起“创建用户”请求时,“用户”服务的整个代码库不必运行;相反,只有 create_user.js 会执行。无需预先配置容器,因为独立功能仅在需要时消耗资源,并且用户只需为其功能的实际运行时间付费。这种粒度还有助于并行开发工作,因为可以独立测试和部署功能。

无服务器计算的好处

成本随使用而增加:

无服务器计算的最大好处之一是您只需为应用的运行时间付费。没有“空闲”资源的概念,因为如果不执行该功能,则不会向您收费。这对于每小时仅使用几次的应用程序特别有用,这意味着任何专用硬件、VM 或容器在大部分时间都处于闲置状态,并且用户需要为未充分利用的资源付费。借助无服务器计算,企业可以构建整个基础架构,并且在客户开始使用该应用程序之前无需为任何计算资源付费。

弹性可扩展性:

无服务器架构的弹性可扩展性也很简单。如果应用需要扩展,基础设施将制作应用的副本来处理负载。这方面的一个例子可能是响应天气请求的聊天机器人。在无服务器架构中,聊天机器人功能将通过检索用户的位置并响应温度来处理响应。对于少数请求,这不是问题,但是如果聊天机器人服务每秒充斥着数千个请求,会发生什么。对于这种情况,聊天机器人功能将通过实例化该功能的数千个副本来自动扩展。一旦请求平息,环境将终止空闲实例并缩减,从而允许成本与用户需求成比例地扩展。

快速开发和迭代:

无服务器计算非常适合需要快速开发、原型和迭代的公司。开发速度更快,因为对 IT 运营没有任何依赖。应用是单线程的,这使得调试和部署应用更简单。构建过程也被分解成更小、更易于管理的块。这增加了可以通过持续交付管道推送的更改数量,从而实现快速部署和更多迭代反馈。迭代速度快,因为架构有利于快速进行大量代码更改,从而产生更多客户反馈和更好的产品市场契合度。

更少的系统管理:

无服务器并不意味着您完全消除了基础设施的操作元素,但它确实意味着更少的系统管理。无需管理、配置和扩展服务器,也无需修补和升级。服务器自动部署在多个可用区,提供高可用。支持也得到了简化;如果在半夜出现问题,则云提供商有责任解决问题。

开发人员生产力:

通过使用无服务器架构,开发人员可以更专注于编写代码,而不必担心管理应用程序的操作任务。这使他们能够开发创新功能并专注于对业务最重要的核心业务逻辑。

MongoDB Atlas 和无服务器计算

借助MongoDB Atlas,用户可以从无服务器环境中利用 MongoDB 的丰富功能——富有表现力的查询语言、灵活的架构、永远在线的可用性、分布式横向扩展。

MongoDB Atlas 是一种数据库即服务,提供数据库的所有功能,而无需设置操作任务的繁重工作。开发人员不再需要担心供应、配置、修补、升级、备份和故障恢复。Atlas 提供了弹性的可扩展性,无论是通过在一系列实例大小上扩展还是通过自动分片进行扩展,所有应用程序都不会停机。