“跑批”也叫“批量处理”、“批处理”,英文:Batch Processing,是现今各类IT系统中常见业务之一,根据统计,70%的业务系统中的操作,是通过跑批方式完成的。“跑批”简单来说,是将一类相同的业务“积攒”到一定的量(业务相同,成批量),在指定时间点启动进行自动处理,达到简化操作,提升效率的目的。分析批处理的过程,我们不难总结出批处理业务的特点:处理量大(成批),有特定的触发时机(指定时间点),可自动处理(无需人工干预)。

“跑批”的发展历程

  跑批业务的特点特别适合使用计算机进行处理,因此从计算机出现的那一天开始,人们就开始使用计算机来处理跑批业务。处理跑批业务的计算机软件,被称为批量业务处理软件。批量业务处理软件伴随着跑批业务发展经历了多个阶段,从最初的一段小脚本发展到动态自适应的跑批处理平台,成为了现代IT系统中不可或缺的一部分,可谓波澜壮阔,精彩纷呈。下面我们来重温一下跑批软件的发展历程吧。

计算机“跑批”的雏形,1952-1964。

  计算机诞生伊始,尚没有现代计算机的输入和输出设备,只能通过在纸带上打孔的方式进行输入输出,一笔一笔地处理数据,需要不停地打孔,读孔,既费时又费力。为了提高效率,渐渐形成了将要处理的数据积攒成“批”,在指定时间一次性进行处理,极大地减少了频繁打孔读孔的操作,提高了效率。这种处理方法,被称为批处理,这也是使用计算机处理跑批业务的雏形。

跑批软件形成,1965-1985。

  计算机尚未小型化,应用最多的是大型机(MainFrame),IT系统规模通常较小。此阶段的跑批,大多集中在一台计算机中,使用的最多的就是JCL(Job Control Language)及定时调度类软件(如Cron),按照业务逻辑触发顺序编制脚本,执行跑批逻辑。此阶段的跑批业务处理,最重要的是如何按照业务要求,设计相应的调度脚本,实现跑批业务逻辑。出现了一些针对跑批的软件,基本功能均实现跑批自动调度。

统一跑批管理软件阶段,1986-2005。

  计算机小型化开始,小型机、微型机(x86)得到大量的应用。IT系统规模逐渐变大,复杂度变高,一个业务涉及的跑批操作可能分布在多个业务系统中,运行在大型机、小型机、x86等不同架构的计算机中。跑批软件从单机调度转向分布式环境统一调度,关注的如何兼容多种架构、多种操作系统,对关键业务跨多个系统的跑批进行监控,跑批触发方式从定时调度发展到由数据变化、文件操作进行触发。

跑批平台阶段,2005-2014。

  IT系统规模进一步扩大,虚拟化、云计算等技术出现,显著改变了IT系统的基础设施架构及构建方式。跑批业务不仅会涉及多个平台、多种操作系统,甚至多个数据中心,跨越传统物理环境和云环境;跑批业务除了定时触发之外,发展到可扩展的事件触发;由于跑批业务繁多,很可能出现资源争抢,跑批系统要对涉及跑批的主机进行管理,智能负载均衡;跑批系统需要对整个业务系统故障,任务执行过程、时间做出统一监控,对未来的执行情况进行预测,给出流程优化建议;调度业务类型进一步丰富,除了传统的命令、数据库操作之外,扩展到WebService、REST等等,这一阶段的跑批软件渐渐向综合跑批管理平台软件转变。

动态自适应平台阶段,2014至今。

  跑批软件开始关注在动态基础设施环境下的自适应能力。适应能力体现在:在IT基础设施由大型机、小型机等物理设备向x86、虚拟化等转变的趋势下,跑批平台可以提供适应于不同基础设施环境的跑批处理方案,保证业务平稳运行。x86和虚拟化趋势对跑批业务处理方式的影响可谓巨大:一方面,IT系统越来越复杂,跑批规模越来越大,要求处理跑批计算机提供更强的处理能力,以便保证在指定时间内完成业务。另一方面,x86和虚拟化环境中,单体计算机的处理能力(配置)相比于传统的小型机、大型机下降很多。因此,在越来越多的系统中,出现了一个跑批业务中的某个步骤执行时间远远超出时间窗口,导致整个跑批业务无法完成,甚至影响到其他业务的执行。此阶段的跑批平台软件,必须能够帮助业务系统适应IT基础设施的变化,实现跑批业务由大型机、小型机平稳过渡到x86或虚拟机。并行计算技术通过联合多台主机的处理能力与存储,形成一个具有强大处理能力的集群,是现今有效提高批量业务处理效率的有力途径。领先的跑批平台软件已经可以提供基于并行计算技术的跑批方案,极大提升处理效率。此外,主流的硬件厂商也为并行计算这类场景提供了很多的技术支持,使得多机并行跑批方案受益良多。最典型的就是英特尔多核技术。在过去的十几年,英特尔等处理器厂商大力推动了多核处理器技术的发展。多核心处理器在并行计算的多线程、多进程场景下表现优异,可以充分体现并行带来的高效率。Intel在服务器领域的英特尔® 至强® 处理器,更是将并行做到了极致,单处理器中包含12, 14 个核心(core)已经很普遍,高端型号甚至可以做到24 核心(core),一部服务器至少两个处理器, 高端型号甚至可以达到4到8个处理器。再结合超线程技术,会形成“恐怖”的单机处理能力,这无疑对并行处理是极大的利好。更有趣的是,硬件厂商在软件方面支持也毫不示弱,英特尔为多核心处理器环境下并行处理提供了英特尔® 线程构建模块(Intel® TBB)、Intel® VTune™ Amplifier XE等一系列软件,Intel® TBB提供了使用更少代码即可编写出具备高度可扩展性和可靠性的并行应用,应用可以自动适配不同核心数的主机,性能会随处理器内核数量的增加而自动提升。Intel® VTune™ Amplifier XE多线程评测工具可以帮助定位并行程序热点,性能瓶颈,进一步提高应用的效率。

跑批软件的市场发展

  经过多年的发展、跑批软件具有鲜明的市场特征,即巨头突显,百花齐放。巨头突显是指这个领域具有多个规模大、历史悠久的套装软件厂商雄踞市场多年。另一方面,多个新兴的厂商根据自身优势不断创新,形成了各具特色的产品,形成了百花齐放的局面。

老牌厂商及产品:

BMC Control-M、Automic Automic(厂商产品同名)、CA Workload Automation、IBM Workload Automation、StoneBranch Universal、HelpSystem Automate。

老牌厂商优势:

具备较多成功案例,对传统设备(如大型机)等系统支持完备,产品线完整,产品功能繁多。

劣势:

普遍缺乏动态自适应能力。新技术应用较少,面向领域不够聚焦,繁多功能导致上手难度大,部署复杂,灵活性不强。

新兴厂商:

Neusoft SaCa P3、batch.ly Batchly、微软Azure Batch、阿里云Batch。

优势:

强调动态自适应能力、适用于云环境、高易用性,采用技术先进。面向领域清晰,产品功能设计聚焦,易学易上手。

劣势:

历史较短、成功案例相对较少,对传统设备支持普遍不足。

总结

  跑批是各大IT系统中最重要业务之一,使用跑批软件自动处理批量业务,保证跨系统、跨平台复杂环境及业务逻辑下,批量业务高效、有序处理,规避了人工操作低效及错误,是IT技术自然发展的必然方向。在IT系统日益繁杂的今天,采用跑批平台软件将对提高IT系统的运行效率、降低成本、提高服务质量起到关键性的作用。从发展趋势来看,具备动态自适应能力的跑批平台无疑是最好的选择,但这类平台大多为新兴厂商,其产品面向领域特点鲜明,适用范围并不如老牌厂商一般宽泛,采用前还需仔细调研,保证适合系统业务特点。