“跑批”发展编年史

作者:程序猿
日期:2016-06-02
“跑批”也叫“批量处理”、“批处理”,英文: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系统的运行效率、降低成本、提高服务质量起到关键性的作用。从发展趋势来看,具备动态自适应能力的跑批平台无疑是最好的选择,但这类平台大多为新兴厂商,其产品面向领域特点鲜明,适用范围并不如老牌厂商一般宽泛,采用前还需仔细调研,保证适合系统业务特点。

更多资料:
https://www.threadingbuildingblocks.org/intel-tbb-tutorial
https://software.intel.com/en-us/intel-vtune-amplifier-xe
https://www-ssl.intel.com/content/www/us/en/data-center/new-center-of-possibility.html?cid=sem43700010312124707&intel_term=intel+e7+family&gclid=COnvz9GR8swCFYZjvAodgEAGzw&gclsrc=aw.ds

(转)“跑批”发展编年史相关推荐

  1. elasticJob分片跑批

    2019独角兽企业重金招聘Python工程师标准>>> 业务迅速发展带来了跑批数据量的急剧增加.单机处理跑批数据已不能满足需要,另考虑到企业处理数据的扩展能力,多机跑批势在必行.多机 ...

  2. tidb 企业_TiDB 在马上消费金融核心账务系统归档及跑批业务下的实践

    作者介绍: 康文权,马上消费金融总账高级研发工程师. 李银龙,原腾讯云运维工程师,马上消费金融容器云 TiDB 负责人,西南区 TUG Leader. 背景介绍 马上消费金融于 2015 年 6 月营 ...

  3. 金融任务实例实时、离线跑批,Apache DolphinScheduler 在新网银行的三大应用场景与五大优化...

    在新网银行,每天都有大量的任务实例产生,其中实时任务占据多数.为了更好地处理任务实例,新网银行在综合考虑之后,选择使用 Apache DolphinScheduler 来完成这项挑战.如今,新网银行多 ...

  4. 查询慢 跑批慢 性能低怎么办? | 润乾高性能计算专家

    完整资料下载: 查询慢.跑批慢.性能低怎么办?| 润乾高性能计算专家

  5. java跑批任务_【spring配置】——spring整合Quartz定时器

    第一种:为普通java类中的某个方法配置跑批任务MethodInvokingJobDetailFactoryBean CronTriggerBean SchedulerFactoryBean 1.定义 ...

  6. 虚拟化技术发展编年史

    作者 | 范桂飓 责编 | 屠敏 出品 | CSDN 博客 前言 我已经想不起来是从什么时候开始的,突然就对计算机历史产生了浓厚的兴趣.于是我想着,要不以后所有系列文章的开篇都先和大家聊聊历史吧.其实 ...

  7. 微服务设计指导-使用云原生微服务解决传统海量跑批时引起的系统间“级联雪崩”以及效率

    问题描述 这也是一起真实的生产事故,如下图所示 这种"雪崩"是属于企业内部系统雪崩. 我们都知道如果是在外部http (包括一切restful.soap请求.http类型调用)调用 ...

  8. 【中亦安图】清算/报表/日终跑批程序之性能优化案例(5)

    第一章 技术人生系列 · 我和数据中心的故事(第五期)-清算/报表/日终跑批程序之性能优化案例(一) 中亦安图 | 2016-02-18 21:40 前言 不知不觉,技术人生系列·我和数据中心的故事来 ...

  9. 学习笔记-如何设计离线跑批系统

    一.基本概念 离线跑批:通常指批量加工数据.完成一系列流程的定时任务. 业务场景:在银行.金融.支付出现较多,其他行业也可能涉及. 1. 定时的数据状态更新(到期失效) 2. 数据计算(计算罚息.计提 ...

  10. 每日跑批任务耗时性能从六分钟优化到半分钟历程及总结

    话说做了一个产品需求上线后,涉及到有一个每日凌晨七点跑批任务,跑批查询出来的待处理订单也就1100单作用,但是耗时却花费了5~6分钟,虽说跑批中,又调用外部服务,但是仅仅在空闲时间,鉴于此情况 我觉得 ...

最新文章

  1. Oracle Database基础
  2. nacos如何做配置中心?自带自动刷新配置功能?这一篇文章让你明明白白!
  3. lseek成功但未生效?
  4. 拼写校正与动态规划的小故事
  5. 大数据学情分析_多分学情大数据分析
  6. 防saq注入_去中心化交易所CYBEX将为区块链ICO注入新的价值观
  7. tomcat远程调试_docker容器远程debug(Tomcat)
  8. 灵活正确的实现.NET插件机制
  9. css补充、JavaScript、Dom
  10. 《linux设备驱动开发详解》笔记——14 linux网络设备驱动
  11. 重磅!国内首个三维重建系列视频课程,涉及SFM、立体匹配、多视图几何、结构光等...
  12. Varnish的基本应用详解
  13. mysql delphi5_Delphi 7连接MySql 5.5.15
  14. java 通过经纬度计算巨鹿,全国经纬度汇总表(全)
  15. CentOS7 Juno Cinder块重启后 实例起不来 --rescan Exit code: 21
  16. qq邮箱foxmail imap服务器,开通IMAP服务 用Foxmail远程遥控QQ邮箱
  17. 微型计算机MC定义,mc是什么意思
  18. 学之思开源代码学习(1)
  19. gitHub常用命令笔记
  20. 新手做独立站需要掌握哪些技能

热门文章

  1. ffplay不能直播red5上的直播流问题解决
  2. Obj-C的hello,world 1
  3. leetcode -- Construct Binary Tree from Preorder and Inorder Traversal
  4. 教你如何将中文转换成全拼
  5. 重写description方法
  6. wordpress搭建 ubuntu16.04 apache2 + php7.0 + mysql
  7. [转] caffe数据层参数说明
  8. Servlet(10)—请求转发和请求重定向
  9. 〖Python〗-- 函数闭包的理解
  10. CSU 8月月赛 Decimal 小数化分数