什么是 Azure Batch?

已完成

很少有组织能准备资源来支持功能非常强大的计算平台的永久部署,这些平台可能只是偶尔才会满负荷使用。 更常见的情况是,你需要灵活且可缩放的计算解决方案(如 Azure Batch),以提供计算能力。

在使用 Azure Batch 对上传的水净化仪图片执行 OCR 的过程中,你需要了解 Azure Batch 工作流的主要部分。

你将在此处了解 Azure Batch 的设计目标,以及 Batch 组件在典型工作流中的使用方式。

计算密集型任务和并行工作负载

一些工作负载需要大规模的计算能力。 例如,金融风险建模、3D 图像渲染、媒体转码和基因序列分析。 在某些情况下,这些工作负载可以细分为单独的子任务,并且可以并行运行,以便在更短的时间内执行任务。 三个虚拟机 (VM) 可以在三分之一的时间内完成一项工作。

在非营利组织的 OCR 项目中,可以使用 Azure Batch 对执行 OCR 的工作进行分区,以便并行完成处理并缩短完成时间。

Azure Batch 组件

你可以使用 Azure Batch 处理 Azure 上的这些大规模并行和计算密集型任务。 大体而言,Azure Batch 涉及许多协同工作的组件。 所有操作都需要在 Azure Batch 帐户的上下文中进行,该帐户充当所有 Batch 资源的容器。

在部分用例中,用户可能希望将此帐户与 Azure 存储帐户关联,以便下载输入文件和应用程序以供在执行期间以及存储结果时使用。 在Azure Batch 帐户中,可以创建运行 Windows 或 Linux 的指定 CPU 数量和内存大小的虚拟计算节点池,这些池由 Azure Batch 服务为你管理和安排。 一个批处理帐户可以包含多个 Batch 池。

创建了一个或多个池后,可以创建各个作业,这些作业像安排的所有任务的逻辑容器那样运作,并且具有共同的属性。 同样,完全可以拥有多个作业。

最后,创建任务,这些任务描述工作实际完成的方式。 可以使用任务直接调用命令行,或者任务可以运行上传到 Azure 存储的应用程序。 下一个练习中将介绍 Azure Batch 的所有主要组件。

典型的 Azure Batch 工作流

那么典型的 Azure Batch 工作流实际上是什么样的? 如下图所示,一个典型的真实 Azure Batch 场景需要数据和应用程序文件。 Batch 工作流首先将这些数据和应用程序文件上传到 Azure 存储帐户。 然后,根据需要使用尽可能多的 Windows 或 Linux 虚拟计算节点创建 Batch 池。 如果你的工作负载的需求会随时间而变化,那么也可以相应地自动缩放它们。

然后,Batch 服务会进行处理,使节点联机并将要执行的任务调度到节点上。 在任务开始执行之前,可以从存储中下载需要处理的任何数据和应用程序文件。 任务正在执行时,可以查询节点的状态和任务的进度。 节点完成其任务后,可以检查任务输出或将任务输出推送到 Azure 存储。

Diagram of the Azure Batch workflow.