中国联合网络通信有限公司软件研究院济南分院 裴宏祥 杜 宇
电信业务支撑系统基于大数据的云计算解决方案
中国联合网络通信有限公司软件研究院济南分院 裴宏祥 杜 宇
时至今日,海量数据时代的来临已经毋庸置疑,尤其是在互联网、电信、金融等行业,几乎已经到了“数据就是生产力”的地步。这种趋势已经让很多相信数据之力量的企业做出改变,随之而来的,则是企业在IT架构上的改变。本文针对在新的形势下电信业务支撑系统如何采用云计算技术,X86及低端磁盘阵列等搭建一个低成本、全新系统架构来解决大数据的处理、存储、管理和查询问题。
大数据;云计算;X86;资源池;作业池;弹性计算
在过去,海量数据一直是互联网行业Web搜索引擎的创建者们首当其冲面对的问题。而今天电信行业的业务支撑系统每天也创建着上PB的数据。
以往人们认为,把企业的运营数据进行深入分析后,就会有回报。但很多企业面临的一个问题是,数据处理不够全面和及时。从道理上讲,谁掌握的数据越全面,得出的结论就越趋向于合理。企业只有构建一个容纳了足够多信息的“数据仓库”,才更有可能做出正确的决策。企业需要找到更好的方法来应对它们所产生的日益增加的大数据。拥有对大数据有效的数据管理、数据利用、快速响应成为探索的焦点。
目前这种情况已经让很多企业做出改变,更加相信“数据的力量”,自然而然,企业会在IT系统架构上做一些改变。海量数据的出现,数据结构的改变,对数据管理及分析带来挑战。传统的数据库无法有效存储不断增长的数据:随着数据量的增加,随着应用复杂导致的数据量的增加,这些数据量导致了数据存储和处理压力;数据仓库无法线性扩容,管理难度大,扩容需求高,建设成本高,数据处理效率下降等一系列问题。
在过去几十年中,企业都是把自己的数据放在自己的服务器中,用一道道的防火墙和各种安全屏障严加看管。传统的建设方案面临着建设成本高、运营成本高、扩展性有限等问题。日益增大的数据流并不只是一个需要技术来解决的问题,它同时还带来了新的可能性。比如云计算,海量数据处理平台等,现在已经成为了部分竞争力强的企业必需。尤其是云计算似乎成了低成本高效率IT系统的必然选择。
对于大数据或者称为海量数据的处理系统,如果按照小型机+高端存储+商业化数据库的传统架构进行建设,一般系统建设初期根据业务量的预估对计算能力和存储使用量测算,然后开始系统设计和软硬件选型,最后在选定的基础软件和硬件平台上进行应用软件的开发,应用软件模块间耦合度较高。系统的架构、处理能力、软件和硬件型号较为固定,软件和操作系统耦合度较高。再者为了满足系统的高可用性,一般会系统的每一个节点设置一个备份。传统建设方案面临以下问题:(1)资源不能充分利用:在系统建成初期如果业务量较小,则会存在资源闲置或空转的情况。再者为了满足系统的高可用性,一般会系统的每一个节点设置一个备份,备份用资源一般处在“守候”状态。(2)可扩展性不足:因系统软硬件间耦合度较高,扩容较为困难。(3)实现高可用性的成本较高:对备份节点的投资基本与活动节点相当。
海量数据、低成本、易扩展 、高可用、高效支撑等问题对传统解决方案带来的挑战,传统的小型机+高端存储+大型关系型数据库的建设模式,已经不能适应要求。本文基于电信运营商间业务支撑系统的特点,提出了基于云计算的X86+低端磁盘阵列+开源数据库的创新系统解决方案,在完成系统功能和节约投资方面取得了较好的效果,为其他类似系统的集中化建设提供参考。
3.1 何为云计算
云计算的核心思想,是将大量主机资源进行统一管理和调度,构成一个计算资源池向用户按需服务。“云”中的资源是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用付费。云计算技术使整个IT产业发生了质的变化,用户从关注 软硬件到关注服务。
云计算的诸多定义直接反映了提出者的理解角度和利益,以Google、Amazon、Salesforce.com、Yahoo、Facebook为代表互联网企业极力推崇云计算是一种新的业务模式和用户体验,力图颠覆传统的IT运营模式,借助云计算向IT领域拓展。这些互联网企业自行开发或借鉴Google披露的技术,通过强大的分布式技术将上万台(Google号称百万台)服务器聚合为一台逻辑上能够提供强大的计算和存储能力的“虚拟机”,并致力于开发一套互联网“云操作系统”,用户通过互联网共享这台“计算机”。互联网企业通过相对低端服务器、开源的Linux操作系统、开源的MySQL数据库、开源的Apache、开源的Java开发语言追求更大的性价比,从理念上讲,用户通过门户(通常是WEB)直接使用应用程序,云计算平台由互联网公司建设维护,传统的IT巨头们的利润空间大大缩水了。
3.2 适合云计算的典型场景
人们往往将云看做无所不能的技术,但目前在云技术发展的初级阶段,并非所有的应用都适合云计算的方式,根据云计算的特点,下面几个应用场景可以从云计算应用中得到最为显著的效果。
(1)间断性应用场景
间断性应用场景的特点是不需要连续的使用计算服务。典型的案例是测试环境的搭建,云计算通过按需分配的方式可以比较好地符合这类应用场景。
(2)快速增长应用场景
快速增长应用场景指的是应用需求量增长比较迅速的情况,传统的升级很难快速满足。云计算可以通过动态分配资源的方式来满足这类应用场景。
(3)需求突增性应用场景
需求突增性应用场景是指应用的使用量短时间内快速增加又很快回落的情况。比如话费查询的访问在月初出账后突增,月中回落,10010客服系统话务量月末月初会达到顶峰,过后自然回落。
在系统设计中引入云计算的思想,通过主机资源自适应管理、分布式并行处理、数据库网关等关键技术的实现,实现了系统自动平滑伸缩功能,提升了系统的可扩展性、低成本、负载均衡、高可用性及分布式、高性能计算。
4.1 主机资源自适应管理
根据系统监控对系统中的主机资源收集的数据和事件,对主机资源统一透明管理,实现资源可加入、移除及容错,提高系统的可扩展性、高可用性和系统资源的利用率。系统通过智能监控实现对每台加入系统设备和系统软件的监控。
4.2 分布式并行批处理作业调度
系统处理核心为“作业调度+业务原语”, 将应用拆解抽象为若干个相互独立的原语操作,原语实例化为作业。作业生成负责将作业生成到作业池,作业调度按照预定的路由策略实现对作业的调度,各节点则通过管理节点的作业调度来进行负载均衡。目前设计的调度策略有:计算能力算法(Capacity Scheduler)、计数法、轮询法(Round Robin)。
4.3 数据库网关
通过数据库网关来实现分布式数据库,数据库性能可以根据主机节点的增加而线性提高。利用分布式计算来实现大数据量计算需求。主要功能特点如下:(1)统一管理:提供统一的表模式管理、数据分布及主机资源的监控管理。(2)统一访问:将现在不同数据的存储方式整合在一起,实现在线数据,历史数据的统一访问。(3)高度透明:用户可以通过数据库网关使用自己的数据库用户,查询各自的数据,无需关心数据的具体位置。
本文以电信运营商间的业务支撑系统为例,对电信业务支撑系统基于海量数据的云计算解决方案进行了较为全面的分析。通过“主机资源负载均衡管理”实现了资源的动态、按需自动服务;通过“分布式并行批处理作业调度”实现了计算的云化;通过“数据库网关”实现了数据存储的云化。