Serverless Computing

菜单图标

Serverless Computing

在本指南中,了解无服务器编程模型是如何在云中更简单,更具成本效益的构建和操作应用程序。

什么是无服务器计算?

无操作系统是计算对云提供商和工具的常见基础架构管理任务(例如,缩放,调度,修补,供应等)卸载责任,允许工程师将其时间和精力集中在其应用程序所特有的业务逻辑上或过程。

定义和理解无操作系统的最有用方式专注于区分从其他计算模型的无服务器计算的核心属性,即:

  • 无服务器模型不需要基础架构的管理和操作,使开发人员能够在代码/自定义业务逻辑上更狭窄地关注。
  • 无操作系统计算仅在每个请求的基础上仅按需运行代码,透明地缩放为正在服务的请求数。
  • 无操作系统计算使最终用户仅为使用的资源支付,从不支付空闲容量。

无操作系统基本上是关于在代码上花费更多时间,少于基础设施。

无服务器计算中是否存在服务器?

与无服务器计算相关的最大争议不是其价值,用例,或者哪些供应商提供的是合适的作业,而是名称本身。无服务器周围的持续参数是名称不合适,因为无服务器计算中仍然存在服务器。

为什么名称“无服务”已持续存在是因为名称正在描述最终用户的体验。在被描述为“无操作系统”的技术中,底层服务器的管理需求对最终用户无形。服务器仍在那里,你只是看不到他们或与他们互动。

无服务员与FAAS.

无要和 功能 - AS-A-Service(FAAS) 经常彼此混淆,但事实是FAAS实际上是无服务器的子集。如上所述,无操作系统的专注于任何服务类别,是它计算,存储,数据库等。在服务器的配置,管理和账单中对最终用户不可见。另一方面,FAAS,虽然可能是无服务器架构中最中心的技术,其专注于事件驱动的计算范式,其中应用程序代码或容器仅响应事件或请求而运行。

无服务器架构优点和缺点

凡好

虽然无服务器计算有许多个人技术好处,但无服务器计算有四个主要优点:

cons

虽然有很多关于无服务的计算,但在采用它们之前,有一些挑战和权衡值得考虑的挑战:

  • 长期流程: FAAS和无服务器工作负载旨在响应工作负载而完全缩放,为尖刺工作负载提供重大成本节约。但是对于以长期运行过程为特征的工作负载,这些相同的成本优势不再存在并管理传统的服务器环境可能更简单,更具成本效益。
  • 供应商锁定: 无服务器架构旨在利用管理云服务的生态系统,并且在架构模型方面,将最远的是从更可移植的内容删除工作负载,如VM或容器。对于某些公司来说,与云提供商的本机管理服务深入整合,可以找到云的大部分价值;对于其他组织,这些模式表示需要减轻的材料锁定风险。
  • 冷启动: 由于无服务器架构进行了长期运行的流程,支持缩放到零,因此它们有时需要从零启动以提供新的请求。对于某些应用程序,这种延迟并不大大影响,但对于像低延迟金融应用的东西,这种延迟是不可接受的。
  • 监控和调试:  这些操作任务在任何分布式系统中都具有挑战性,并且移动到微服务和无服务器架构(以及两者的组合)只会加剧与仔细管理这些环境相关的复杂性。

了解无服务器堆栈

定义无服务器作为一组公共属性,而不是明确的技术,使得更容易理解无服务方法如何在堆栈的其他核心区域中清晰。

  • 作为服务(FAAS)的功能: FAAS广泛被理解为无服务类别的始发技术。它代表无服务器中的核心计算/处理引擎,位于大多数无服务器架构的中心。看 ”什么是faas?“更深入潜入技术。
  • 无服务器数据库和存储:数据库和存储是数据层的基础。这些技术的“无服务”方法(与 对象存储 作为存储类别中的主要示例)涉及转迟远离提供“实例”,具有规定的容量,连接和查询限制,并在基础架构和定价中朝着需求线性缩放的模型。
  • 事件流和消息传递: 无服务器架构非常适合活动驱动和流处理工作负载,涉及与消息队列集成,最值得注意的是Apache Kafka。
  • API网关: API网关作为Web操作的代理,并提供HTTP方法路由,客户端ID和秘密,速率限制,CORS,查看API使用情况,查看响应日志和API共享策略。 

将FAAS与PAAS,容器和VM进行比较

虽然作为服务(FAA), 平台作为服务(PaaS), 容器, 和 虚拟机(VM) 所有在无服务器生态系统中发挥着关键作用,FAAS是最中心和最多的定义;而且因为那。值得探索FAAS如何与当今市场上的其他常见模型不同:

  • 供应时间: 毫秒,而其他型号的分钟和时间相比。
  • 正在进行的政府: 与PaaS,容器和VM的易于努力难以努力的滑块相比,无。
  • 弹性缩放: 与其他型号相比,每个动作始终立即和固有地缩放,这些模型需要自动但慢缩放,需要仔细调整自动缩放规则。
  • 容量规划: 无需其他模型,需要混合一些自动缩放和一些容量规划。
  • 持久连接和状态: 必须在外部服务/资源中保留有限的持续连接和状态。其他型号可以利用HTTP,长时间保持打开的插座或连接,并且可以在呼叫之间存储状态。
  • 维护: 所有维护均由FAAS提供商管理。这对于Paa来说也是如此;容器和VM需要大量维护,包括更新/管理操作系统,容器图像,连接等。
  • 高可用性(HA)和 灾难恢复(DR): FAAS模型中固有,没有额外的努力或成本。其他型号需要额外的成本和管理努力。在VM和容器的情况下,可以自动重新启动基础架构。
  • 资源利用率: 资源永远不会闲置 - 只有在请求时才被调用。所有其他型号至少有一定程度的闲置容量。
  • 资源限制: FAAS是唯一拥有的模型 资源限制 在代码大小,并发激活,内存,运行长度等。
  • 充电粒度和计费: 通过其他型号的小时(有时分钟)相比,每块100毫秒。

用例和参考体系结构

鉴于其属性和优点的独特组合,无服务器架构非常适合使用数据和事件处理,IOT,MicroServices和移动后端的使用情况。

无要管理和微服务

今天无服务器的最常见用例是支持 微服务架构。微服务模型专注于创建执行单个作业的小型服务并使用API​​彼此通信。虽然微服务器也可以使用PaaS或容器构建和操作,但是,鉴于它的属性围绕执行一件事,固有和自动缩放,快速供应以及永不收取空闲容量的定价模型,因此提供了显着的势头。 。

API后果

无服务器平台中的任何操作(或函数)都可以转换为HTTP端点,准备由Web客户端消耗。启用Web时,这些操作称为Web操作。有一个Web行动后,可以将它们组装成一个具有API网关的全功能API,带来额外的安全性,OAuth支持,速率限制和自定义域支持。

有关API后端的实践经验,请尝试教程“无要的Web应用程序和API。“

数据processing

无操作系统非常适合使用包含以下任务的结构化文本,音频,图像和视频数据:

  • 数据富集,转型,验证,清洁
  • PDF处理
  • 音频归一化
  • 图像旋转,锐化和降噪
  • 缩略图一代
  • 图像OCR'ing.
  • 应用ml工具包
  • 视频转码

有关详细示例,请阅读“SiteSpirit.如何快10倍,其成本的10%。

大规模并行计算/“地图”操作

任何类型的令人尴尬的并行任务非常适合在无服务器运行时运行。每个并行任务都会导致一个动作调用。可能的任务包括以下内容:

  • 数据搜索和处理(特别是云对象存储)
  • 地图( - REDUCE)操作
  • 蒙特卡洛模拟
  • HyperParameter调整
  • 网刮
  • 基因组处理
大规模并行计算/“地图”操作

有关详细示例,请阅读“蒙特卡罗模拟如何在无服务器体系结构上更快地运行160倍。。“

流处理工作负载

组合Managed Apache Kafka与FAAS和数据库/存储为数据流水线和流式应用程序的实时建设提供了强大的基础。这些架构非常适合使用各种数据流入口(用于验证,清洁,富集,转型),包括:

  • 业务数据流(来自其他数据源)
  • 物联网传感器数据
  • 日志数据
  • 财务(市场)数据

在无服务器计算上开始教程

使用这些教程扩展您的无服务器计算技能:

无要和IBM云

无服务器计算模型提供云中的更简单,更具有成本效益的建筑和操作应用方式。它可以帮助顺利的方式 现代化您的应用程序你云的旅程.

迈出下一步:

  • 学习关于 IBM云代码引擎,一个基于Red Hat的支付无服务器平台OpenShift,让开发人员使用源代码,容器图像或创建批处理所需的批次作业部署其应用程序。
  • 探索可与IBM云代码引擎一起使用的其他IBM产品和工具,包括 IBM Watson API.阴云对象存储, 和 容器注册表。 

开始使用 IBM云帐户 today.