标签:实现 功能 nal 流控制 本地 空闲 studio 业务 变化
无服务器计算是对服务器、基础结构和操作系统的抽象。 有了无服务器 计算,Azure 将负责管理服务器基础结构和按需的资源分配/解除分配。 无需负责基础结构。 缩放和性能可自动得到处理,你只需为使用的确切资源付费。 甚至没有必要保留容量。
无服务器计算涉及三点:服务器抽象、事件驱动缩放和微额账单:
服务器抽象:无服务器计算会对运行的服务器进行抽象。 你无需显式保留服务器实例;平台会为你进行管理。 每个函数执行都可以在不同的计算实例上运行,并且这种执行上下文对代码是完全透明的。 采用无服务器体系结构,只需部署代码,即可在高可用性下运行。
事件驱动缩放:无服务器计算非常适合响应传入事件的工作负载。 其中包括由计时器(例如某个函数需要在 UTC 时间每天上午 10:00 运行)、HTTP(API 和 webhook 方案)、队列(例如订单处理)等触发的事件。 开发者不再编写整个应用程序,而是编写一个函数,使其包含有关其触发器和绑定的代码和元数据。 平台会自动安排函数运行,并根据传入事件的速率调整计算实例的数目。 触发器定义函数的调用方式,而绑定提供从代码内部连接到服务的声明性方式。
微额账单:传统计算是按秒计费的,但通常情况下,这并没有看起来那么有用。 即使客户的网站一天只点击了一次,仍然需要为一整天的可用性付费。 采用无服务器计算,只需为其代码运行的时间付费。 如果未执行任何活动的函数,则无需付费。 例如,如果代码一天运行一次,一次两分钟,则计费时只考虑这一次执行,且计算时间为两分钟。
Azure 有两种无服务器计算实现:
若只关心运行服务的代码,而不关心基础平台或基础结构,Azure Functions 是理想选择。 需要执行工作以响应事件(通常通过 REST 请求、计时器或来自其他 Azure 服务的消息),并且该工作可在几秒钟或更短时间内快速完成时,通常会用到它们。
Azure Functions 会自动按需缩放,所以当需求变化时,它们是可靠的选择。 例如,你可能收到来自用于监控运输车队的 IoT 解决方案的消息。 可能会在工作时间内收到更多数据。
使用基于 VM 的方法将产生成本,即使 VM 处于空闲状态。 借助函数,Azure 会在触发代码时运行代码,并在函数完成时自动释放资源。 在此模型中,只需为函数运行时使用的 CPU 时间付费。
此外,Azure Functions 可以是无状态的(默认),其行为就像每次响应事件时都要重启一样;也可以是有状态的(称为“Durable Functions”),这种情况下将通过函数传递上下文来跟踪之前的活动。
Functions 是无服务器计算的关键组件,但是它们也是用于运行任何代码类型的常规计算平台。 如果开发者的应用需求发生变化,可以在非无服务器的环境中部署项目,从而灵活地管理缩放,在虚拟网络上运行,甚至可以完全隔离函数。
Azure 逻辑应用类似于 Functions - 两者都使你能够基于事件触发逻辑。 Functions 执行代码时,逻辑应用执行从预定义逻辑块构建的工作流,这些工作流旨在自动完成业务方案 。 每个逻辑应用工作流都从触发器开始,在发生特定事件或新的可用数据符合特定条件的情况下触发。 许多触发器包括基本的计划功能,可以让开发人员指定工作负载的运行频率。 每当触发器触发时,逻辑应用引擎都会创建一个逻辑应用实例来运行工作流中的操作。 这些操作也可包括数据转换和流控制,如条件语句、开关语句、循环和分支。
可以在 Azure 门户或 Visual Studio 中使用可视化设计器创建逻辑应用工作流。 工作流将保留为具有已知工作流架构的 JSON 文件。
Azure 提供了 200 多个不同的连接器和处理块与不同服务交互 - 包括最受欢迎的企业应用。 如果未涵盖需要与之进行交互的服务,还可以构建自定义连接器和工作流步骤。 然后使用可视化设计器将连接器和块链接在一起,通过工作流传递数据进行自定义处理 - 通常不需要编写任何代码。
例如,假设 ZenDesk 收到一个票证。 你可以:
所有这些都可以在可视化设计器中进行设计,这使得查看逻辑流变得非常容易,因而是业务分析师角色的理想选择。
函数和逻辑应用都可以创建复杂的业务流程。 业务流程是函数或步骤的集合,将执行这些函数或步骤来完成复杂任务。 使用 Azure Functions,可以编写代码来完成每个步骤,使用逻辑应用,可以使用 GUI 来定义操作以及它们之间的关联方式。
在构建业务流程、从逻辑应用中调用函数以及从函数中调用逻辑应用时,可以混合使用各种服务。 下面是两者之间的一些常见差异。
- | 函数 | 逻辑应用 |
---|---|---|
状态 | 通常是无状态的,但 Durable Functions 会提供状态 | 有状态 |
开发 | 代码优先(命令性) | 设计器优先(声明性) |
连接 | 有关十多个内置的绑定类型,为自定义绑定编写代码 | 大型连接器集合、适用于 B2B 方案的 Enterprise Integration Pack、构建自定义连接器 |
操作 | 每个活动都是一个 Azure 函数;为活动函数编写代码 | 现成操作的大型集合 |
监视 | Azure Application Insights | Azure 门户、Log Analytics |
管理 | REST API、Visual Studio | Azure 门户、REST API、PowerShell、Visual Studio |
执行上下文 | 可以在本地或在云中运行 | 只能在云中运行。 |
标签:实现 功能 nal 流控制 本地 空闲 studio 业务 变化
原文地址:https://www.cnblogs.com/xiaobozi6/p/12740443.html