使用 Azure 门户创建 Batch 作业
Azure Batch 在云中高效运行大规模应用程序。 你可以规划计算密集型任务并动态调整解决方案的资源,而无需管理基础结构。 Azure Batch 可创建和管理计算节点(虚拟机或 VM)池、安装要运行的应用程序,以及计划要在计算节点上运行的作业。
你可以使用 Azure Batch 来生成需要大规模执行的软件即服务 (SaaS) 应用程序或客户端应用程序。 例如,可使用 Batch 来为某家财务服务公司生成一个运行 Monte Carlo 模拟的服务,或者生成一个可处理许多图像的服务。
Azure Batch 工作原理
如下图所示,典型的真实 Azure Batch 场景将需要数据和应用程序文件。 Batch 工作流首先将数据和应用程序文件上传到 Azure 存储帐户。 根据需求创建一个 Batch 池,其中包含所需数量的 Windows 或 Linux 虚拟计算节点。 如果需求增加,计算节点可以自动缩放。
可以将关系图分为两部分:
- 服务
- 作为其后计算平台的 Batch
服务使用 Azure 作为平台,通过 Batch 来完成计算密集型工作,并通过 Azure 存储检索结果。 在后台,池是虚拟机的集合。 池是用于执行作业和任务的资源。
Batch 使用 Azure 存储执行两项操作:提取在虚拟机上完成任务所需的应用程序或数据;写入任务输出。 服务可通过 Batch API 监视作业和任务进度。 在作业和任务完成后,服务可以从 Azure 存储中检索结果。
在虚拟网络中创建 Azure Batch 池
要运行 Batch 作业,需要向 Batch 帐户添加池。 池包含运行 Batch 作业所需的计算节点。 计算节点是处理构成作业的任务的虚拟机。 创建池时,可以根据需求指定节点的数量、大小和操作系统。
Batch 服务需要与在每个池节点上运行的 Batch 节点代理通信。 例如,服务指示节点代理运行任务、停止任务或获取任务的文件。 一个或多个负载均衡器支持与池节点代理进行通信。 负载均衡器的数量取决于池中的节点数。
负载均衡器会将通信转发到所需的池节点。 每个节点都有唯一的端口号。 默认情况下,负载均衡器具有与之关联的公共 IP 地址。
还可通过远程桌面协议 (RDP) 或 SSH 远程访问池节点,默认情况下已启用。 同样,通信是通过负载均衡器终结点实现的。
创建 Azure Batch 池时,可在指定的 Azure 虚拟网络的子网中预配该池。 池中的计算节点可以相互进行通信,以便执行多实例任务,而无需单独的虚拟网络。 默认情况下,具有公共 IP 地址的终结点用于与 Batch 帐户、Batch 池和池节点通信。
Azure 虚拟网络和子网
虚拟网络是 Azure 中专用网络的基本构建块。 虚拟网络允许许多类型的 Azure 资源(例如虚拟机)以安全方式彼此通信、与 Internet 通信,以及与本地网络通信。
虚拟网络与你在自己的数据中心运行的传统网络相似,但它提供了更多的 Azure 基础结构优势,例如缩放、可用性和隔离。
使用虚拟网络可以完成的主要情况包括:
- Azure 资源与 Internet 之间的通信
- Azure 资源之间的通信
- 与本地资源通信
- 筛选网络流量
- 路由网络流量
- 与 Azure 服务集成
子网是虚拟网络中某个范围内的 IP 地址。 出于组织安全性考虑,可将一个虚拟网络划分为多个子网。 设置虚拟网络时,需指定拓扑,包括可用的地址空间和子网。 如果你打算将虚拟网络要连接到其他虚拟网络或本地网络,则必须选择不重叠的地址范围。
子网之间没有安全边界,因此每个子网中的 VM 都可以相互通信,但你可以设置网络安全组,以便控制传入和传出子网和 VM 的流量。