了解 Azure 中的无服务器计算

Posted xiaobozi6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解 Azure 中的无服务器计算相关的知识,希望对你有一定的参考价值。

无服务器计算是对服务器、基础结构和操作系统的抽象。 有了无服务器 计算,Azure 将负责管理服务器基础结构和按需的资源分配/解除分配。 无需负责基础结构。 缩放和性能可自动得到处理,你只需为使用的确切资源付费。 甚至没有必要保留容量。

无服务器计算涉及三点:服务器抽象、事件驱动缩放和微额账单:

  1. 服务器抽象:无服务器计算会对运行的服务器进行抽象。 你无需显式保留服务器实例;平台会为你进行管理。 每个函数执行都可以在不同的计算实例上运行,并且这种执行上下文对代码是完全透明的。 采用无服务器体系结构,只需部署代码,即可在高可用性下运行。

  2. 事件驱动缩放:无服务器计算非常适合响应传入事件的工作负载。 其中包括由计时器(例如某个函数需要在 UTC 时间每天上午 10:00 运行)、HTTP(API 和 webhook 方案)、队列(例如订单处理)等触发的事件。 开发者不再编写整个应用程序,而是编写一个函数,使其包含有关其触发器和绑定的代码和元数据。 平台会自动安排函数运行,并根据传入事件的速率调整计算实例的数目。 触发器定义函数的调用方式,而绑定提供从代码内部连接到服务的声明性方式。

  3. 微额账单:传统计算是按秒计费的,但通常情况下,这并没有看起来那么有用。 即使客户的网站一天只点击了一次,仍然需要为一整天的可用性付费。 采用无服务器计算,只需为其代码运行的时间付费。 如果未执行任何活动的函数,则无需付费。 例如,如果代码一天运行一次,一次两分钟,则计费时只考虑这一次执行,且计算时间为两分钟。

Azure 中的无服务器计算

Azure 有两种无服务器计算实现:

  • Azure Functions,它可以执行几乎任何现代语言的代码。
  • Azure 逻辑应用,在基于 Web 的设计器中设计,可执行由 Azure 服务触发的逻辑而无需编写代码。

Azure Functions

若只关心运行服务的代码,而不关心基础平台或基础结构,Azure Functions 是理想选择。 需要执行工作以响应事件(通常通过 REST 请求、计时器或来自其他 Azure 服务的消息),并且该工作可在几秒钟或更短时间内快速完成时,通常会用到它们。

Azure Functions 会自动按需缩放,所以当需求变化时,它们是可靠的选择。 例如,你可能收到来自用于监控运输车队的 IoT 解决方案的消息。 可能会在工作时间内收到更多数据。

使用基于 VM 的方法将产生成本,即使 VM 处于空闲状态。 借助函数,Azure 会在触发代码时运行代码,并在函数完成时自动释放资源。 在此模型中,只需为函数运行时使用的 CPU 时间付费。

此外,Azure Functions 可以是无状态的(默认),其行为就像每次响应事件时都要重启一样;也可以是有状态的(称为“Durable Functions”),这种情况下将通过函数传递上下文来跟踪之前的活动。

Functions 是无服务器计算的关键组件,但是它们也是用于运行任何代码类型的常规计算平台。 如果开发者的应用需求发生变化,可以在非无服务器的环境中部署项目,从而灵活地管理缩放,在虚拟网络上运行,甚至可以完全隔离函数。

Azure 逻辑应用

Azure 逻辑应用类似于 Functions - 两者都使你能够基于事件触发逻辑。 Functions 执行代码时,逻辑应用执行从预定义逻辑块构建的工作流,这些工作流旨在自动完成业务方案 。 每个逻辑应用工作流都从触发器开始,在发生特定事件或新的可用数据符合特定条件的情况下触发。 许多触发器包括基本的计划功能,可以让开发人员指定工作负载的运行频率。 每当触发器触发时,逻辑应用引擎都会创建一个逻辑应用实例来运行工作流中的操作。 这些操作也可包括数据转换和流控制,如条件语句、开关语句、循环和分支。

可以在 Azure 门户或 Visual Studio 中使用可视化设计器创建逻辑应用工作流。 工作流将保留为具有已知工作流架构的 JSON 文件。

Azure 提供了 200 多个不同的连接器和处理块与不同服务交互 - 包括最受欢迎的企业应用。 如果未涵盖需要与之进行交互的服务,还可以构建自定义连接器和工作流步骤。 然后使用可视化设计器将连接器和块链接在一起,通过工作流传递数据进行自定义处理 - 通常不需要编写任何代码。

例如,假设 ZenDesk 收到一个票证。 你可以:

  1. 使用认知服务检测消息的意图
  2. 在 Sharepoint 中创建一个项目来跟踪问题
  3. 如果客户不在数据库中,则将其添加到 Dynamics 365 CRM 系统
  4. 发送跟进电子邮件以确认他们的请求

所有这些都可以在可视化设计器中进行设计,这使得查看逻辑流变得非常容易,因而是业务分析师角色的理想选择。

Functions 与逻辑应用

函数和逻辑应用都可以创建复杂的业务流程。 业务流程是函数或步骤的集合,将执行这些函数或步骤来完成复杂任务。 使用 Azure Functions,可以编写代码来完成每个步骤,使用逻辑应用,可以使用 GUI 来定义操作以及它们之间的关联方式。

在构建业务流程、从逻辑应用中调用函数以及从函数中调用逻辑应用时,可以混合使用各种服务。 下面是两者之间的一些常见差异。

表 1
-函数逻辑应用
状态 通常是无状态的,但 Durable Functions 会提供状态 有状态
开发 代码优先(命令性) 设计器优先(声明性)
连接 有关十多个内置的绑定类型,为自定义绑定编写代码 大型连接器集合、适用于 B2B 方案的 Enterprise Integration Pack、构建自定义连接器
操作 每个活动都是一个 Azure 函数;为活动函数编写代码 现成操作的大型集合
监视 Azure Application Insights Azure 门户、Log Analytics
管理 REST API、Visual Studio Azure 门户、REST API、PowerShell、Visual Studio
执行上下文 可以在本地或在云中运行 只能在云中运行。

以上是关于了解 Azure 中的无服务器计算的主要内容,如果未能解决你的问题,请参考以下文章

无服务器计算是什么?管理员过来了解一下

Azure SQL Serverless 层从不关闭

在 Azure API 管理中查看已发布的无隐私浏览模式的开发者门户

Azure 数据工厂集成运行时

Azure基础:何时使用Azure Functions无服务器计算(11)

云原生数据湖架构中的无服务器 Kafka