龚德志,段 勇
(中国电信股份有限公司上海研究院 上海 200122)
云计算是一种新型的业务交付模式,同时也是新型的IT基础设施管理方法。通过新型的业务交付模式,用户将通过网络充分利用优化的硬件、软件和网络资源,并以此为基础提供创新的业务服务。新型的IT基础设施管理方法让IT部门可以把海量资源作为一个统一的大资源进行管理,支持IT部门在大量增加资源的同时无需显著增加相应的人员进行维护和管理。
(1)虚拟化
虚拟化可以大幅度提高组织过程中资源和应用程序的效率和可用性。虚拟化把物理资源和最终呈现给用户的资源进行了分离,实际上是一个替代过程,在具有统一良好架构设计的物理资源上创建出多个替代资源(即虚拟资源),替代资源和物理资源具有相同的接口和功能,对用户来说虚拟资源具备与物理资源相同的使用功能,同时还可以有不同的属性,如价格、容量、可调整性等。
(2)自动化部署
云计算的一个核心思想是通过自动化的方式尽可能地简化任务,使得用户可以通过自助服务方式快捷地获取所需的资源和能力。部署是基础设施管理中十分重要,也是需要花费很大工作量的一部分,包括操作系统、中间件和应用等不同层次的部署。自动化部署可提供简化流程,用户提出申请后由自动化部署平台根据调度和预约自动完成相应的部署,因此用户只需花十几分钟,甚至几分钟就可以得到一个完整的环境,极大地提高了工作效率。
(3)应用规模扩展
云计算提供了一个巨大的资源池,而应用的使用又有不同的负载周期,根据负载对应用的资源进行动态伸缩可以显著提高资源的有效利用率,即高负载时动态扩展资源,低负载时释放多余的资源,这就是应用规模扩展技术所解决的问题。该技术以应用为基本单位,为不同的应用架构设定不同的集群类型,每一种集群类型都有特定的扩展方式,然后通过监控负载的动态变化,自动为应用集群增加或者减少资源。
(4)分布式文件系统
分布式存储的目标是利用云环境中多台服务器的存储资源来满足单台服务器所不能满足的存储需求。其特征是,存储资源能够被抽象表示和统一管理,并且能够保证数据读写与操作的安全性、可靠性等各方面的要求。
云计算催生了一些优秀的分布式文件系统和云存储服务。最典型的云平台分布式文件系统是Google的GFS(Google file system)和开源的Hadoop。这两种可伸缩的分布式文件系统利用容错和故障恢复机制,有效地克服了单节点故障导致的系统故障,实现了大规模海量级的文件存储。
以Hadoop文件系统为例,Hadoop文件系统(HDFS)是一个运行在普通硬件之上的分布式文件系统,它和现有的分布式文件系统有着很多相似性。然而,与其他分布式文件系统的区别也是很明显的:HDFS是高容错性的,可以部署在低成本的硬件上,HDFS高吞吐量地对应用程序进行数据访问,它适合大数据集的应用程序,HDFS放开一些POSIX的需求去实现流式地访问文件数据。一个HDFS集群由一个管理文件系统元数据的Name Node和存储实际数据的一些Data Node组成。
(5)分布式数据库与非结构化数据存储
在分布式文件系统上,典型的存储海量结构化数据的分布式存储系统包括Google的BigTable、开源的HBase等。这些系统可将非结构化数据(如网页等)存储为分布式的、多维的、有序的图。
以HBase为例。HBase是一个分布式的、面向列的开源数据库。HBase是Apache的Hadoop项目的子项目,HBase在Hadoop上提供了类似于Bigtable的能力。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同是,HBase基于列的而不是基于行的模式。HBase使用和Bigtable非常相似的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可选择的键和任意数量的列。表是疏松存储的,因此用户可以给行定义各种不同的列。HBase主要用于需要随机访问,实时读写大数据。在系统架构上,HBase分成 Master与Region Server两部份。Master负责告知 client对一个表访问时,应该转向哪台 Region Server,而 Region Server就是实际上提供数据的节点。
(6)分布式计算
基于云平台的最典型的分布式计算模式是MapReduce编程模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念“Map(映射)”和“Reduce(化简)”的主要思想都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。简单说来,一个映射函数就是对一些独立元素组成概念列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里创建了一个新的列表来保存新的答案。也就是说,Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。Reduce操作指的是对一个列表的元素进行适当的合并。虽然它不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。
3.1 问题和现状
对于EDC和业务支撑系统而言,大量的业务涉及数据分析和商业智能。如上海电信的相关系统按大类可划分为BSS、MSS、OSS、EDI等;按具体应用系统则分为计费、CRM、DW、综合结算、网厅、OA、ERP、门户、EDW、全息视图、计费分析、营销分析、资源管理、综合保障、综合报警等。彼此独立的系统占用了大量的硬件资源。由于资源彼此隔离,服务器的平均利用率非常低。由于生产要求,月初出账(主要是报表)期,计算扎堆严重,资源又明显不足。
通过对电信EDC和业务支撑系统的分析,我们可以总结出以下几个业务特性。
(1)高性能计算的需求
数据量大、运算量大的系统如计费、CRM、EDW等对高性能计算有需求。四川电信的数据分析都架构在小型机上,CPU资源仍然不够。虽然有一系列扩容优化计划,但计算与资源一直有矛盾。上海电信的EDA/WS部门也面临针对海量数据做分析报表的压力,由于计算资源分离,不能共享,资源利用率低下,目前主要通过不断扩容来应对压力。
(2)时间窗口问题需求
数据分析的一个突出问题是时间窗口,这在上海电信和四川电信都很突出。由于生产要求,月初出账(主要是报表)期,计算扎堆严重,资源明显不足。目前的主要对策是,对于阶段性以及突发性的作业需求进行动态调整以满足作业对计算能力的要求。即:对于重要业务需预留资源,对于其他业务则进行调度管理;在出账前,根据资源需要,停掉低优先级的计算,从而满足高优先级计算的需求。然而,在时间窗口之外,计算资源又相对空闲。
云计算在数据分析与商业智能分析中有两种应用模式。
为电信内部EDC和业务支撑系统提供数据分析和商业智能业务,实现传统数据分析与商业智能应用的云化。要实现此类应用模式需要完成以下工作:利用虚拟化和自动化等云计算关键技术整合现有硬件资源;部署云模式数据分析与商业智能平台;遵照云模式选择性地重构现有业务系统中用到的数据分析与商业智能服务;将上述用户任务调度到云平台上进行计算,获得云模式带来的好处。
采用云模式开发新的数据分析与商业智能服务,实现企业数据分析云。要实现此类业务应用模式需要依托整合共享的硬件资源,在云模式数据分析与商业智能平台上开发新的服务,以支持各类新兴的应用模式和需求(如:移动社交网络,基于客户社交网络的客户价值发现和营销;客户分群,基于用户地理位置和轨迹的信息服务和广告推送等)。
3.2 典型的应用场景
本节阐述几个典型的利用数据分析和商业智能云平台的新数据分析业务,包括客户流失分析、客户社群发现、客户多重身份识别,客户价值发掘。上述典型应用涵盖了云模式数据分析与商业智能平台提供的数据挖掘和社会网络分析功能。然而,该平台并不仅限于支持以上业务,传统的各类数据分析业务均可通过定制化开发,移植到该平台上。
(1)客户流失分析
针对当前中国电信C网客户流失严重的现象,利用云数据分析平台提供的CHAID (chi-squared automatic interaction detector)等客户分群算法,将客户划分为“稳定客户”和“潜在流失客户”,从而可以让中国电信将营销资金投入到挽留“潜在流失客户”上,有效地提高营销资金的使用效率。
经过清洗和预处理的客户数据会被提交给这个应用并加以分析。分析过程包括CHAID模型的建立和评估两个步骤。评估结果会以预测准确度和LIFT两个指标的形式展现。
(2)客户社群发现
针对性营销不仅需要了解单个顾客的特征,更需要识别和理解顾客形成的各种社群。如识别家庭用户形成的社群结构,对于特定种类的业务营销会有很大的帮助。然而,传统的统计方法往往只对代表社群规模的一些简单指标进行统计和比较,无法分析客户社群内在结构的差异。
利用云平台BI算法库中的连通分量、K-core和极大团等算法,可深入分析客户社群的组成,发现具有商业价值的特殊结构。如:K-core和极大团算法分析一个网络社区,可以通过分析结果发现,不同社群的内部联系紧密程度的差异是否很大;K-core算法可以获得清晰的坍缩序列,极大团算法进而发现了该社群内部一些联系紧密的小团体。
(3)客户多重身份识别
在各类客户分析应用中,往往需要识别单一客户的多重身份。如在电信网中需要识别重入网客户,在广告营销管理中需要识别虚假好评。云平台算法库提供的个体中心网和极大团等算法,可以辅助识别用户的多重身份。
电信网中的重入网客户识别。利用网络分析算法库提供的个体中心网算法,可以计算得到每个客户的朋友以及朋友之间的联系,这一信息可以被看作是该客户的社会关系指纹。将这一分析工具与时态分析等工具相结合,可以有效地判断一个客户是否是该运营商过去某个用户再入网的身份。
虚假好评/马甲的识别。云平台网络分析算法库提供的极大团等社群发现算法可以识别客户社群中一些有趣的小团体。以网络社区数据为例,可发现一些包含两个用户的强极大团实际上是一些用户的多个身份。
(4)客户价值发现
传统的客户价值分析方法往往将客户看作是一个个独立的个体,依据客户的统计属性来判断客户的价值。然而,统计属性并非有效表征客户价值。利用云平台社会网络分析pagerank和HITS等算法,可分析客户在社会网络中的位置对其价值的影响,从而有效挖掘出价值客户。
3.3 分布式技术模型
数据分析和商业智能云平台的技术架构如图1所示,由以下4层结构组成:
·数据分析与商业智能的应用;
·数据分析中间件(算法库和工具);
·云模式分布式并行计算框架;
·云模式分布式文件系统和特定主题的数据模型。
前述功能模型中的4个具体分析应用归属于应用层。平台未来将要支持的各种应用层业务逻辑也在这层定制化开发。
(1)数据分析中间件
这层中间件是架构在Hadoop之上,遵照MapReduce计算模型开发的一系列算法库和工具。为支持现有各种数据分析和商业智能应用,本层应至少包含统计查询、社会网络分析、数据挖掘、机器学习的算法库和工具。此外,随着云模式数据分析与商业智能平台及其应用的发展,本层的算法库和工具也将不断得到丰富和完善。
图2展现了一个典型的数据分析和商业智能应用流程,包括问题定义、数据收集、数据分析、决策、行动/监控/学习及其迭代过程。
云模式数据分析与商业智能平台所提供的算法库和工具将为应用提供数据分析和决策两个环节的支持。依托下层的Hadoop MapReduce分布式并行计算框架和Hadoop分布式文件系统,本层中间件适合处理满足下列特征的数据。
·非结构化或半结构化源数据,如CDR、短信日志等。
·大规模数据集。
·快速增长的数据集(如每日更新的手机用户的通话日志)。
本层中间件与传统数据分析与商业智能中间件相比,其特点在于:
·针对海量数据提供高性价比的计算分析;
·依附于最通用的云计算平台(Hadoop)上,可有效地与其他云计算中间件进行协调整合;
·快捷地支持各种类型的商业智能解决方案的开发和部署;
·依托MapReduce编程模型,可以有效地建立协作式的分析知识库。
(2)云模式分布式并行计算框架
基于云平台的最典型的分布式计算模型是MapReduce编程模型,这也是本平台首选的分布式并行计算模型。MapReduce将大型任务分成很多细粒度的子任务,这些子任务分布式且并行地在多个计算节点上进行调度和计算,从而在云平台上获得对海量数据的处理能力。概念“Map(映射)”和“Reduce(化简)”的主要思想都是从函数式编程语言里借鉴来的。
遵照MapReduce编程模型,数据分析与商业智能算法库的开发者可以编写一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,还可以编写一个Reduce(化简)函数,用来处理Map函数产生的键值对中的共享相同的键的所有键值对。简单说来,一个映射函数就是对一些独立元素组成概念上列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里将创建一个新的列表来保存操作的结果。因此,Map操作是可以高度并行的,这对有高性能要求的应用以及并行计算领域的需求非常有用。Reduce操作则是对一个列表的元素进行适当的合并。虽然不如Map函数那么并行,但是因为有许多的运算中用到的化简都有简单的输入和化简结果,所以Reduce函数在高度并行环境下往往也很有用。
目前,存在的MapReduce分布式并行计算框架实现有几种,其中最主要的是Apache Hadoop MapReduce,已经形成了成熟活跃的开发和用户社群,这也是本平台首选的依托方案。在 Apache Hadoop MapReduce中,Map操作和Reduce操作的执行被包裹为任务 (task),而任务又以Map-Reduce对的形式被包裹为作业(job),负责在Hadoop集群节点上安排任务执行的软件被称作TaskTracker。通常在每个计算节点上部署一个,负责在集群范围内调度作业和任务执行的软件被称作JobTracker,通常在Hadoop集群内挑选独立的机器来部署。
(3)特定主题的数据模型
尽管MapReduce分布式并行编程模型对底层数据存储并无硬性的要求,但是,为了最好地利用该模型带来的伸缩性优势,往往需要采用分布式文件系统作为输入数据、中间结果以及输出数据的载体。
在Apache Hadoop套件中,这样的分布式文件系统就是Hadoop分布式文件系统 (hadoop distributed file system,HDFS),这也是本平台首选的分布式文件系统方案之一。该系统利用Hadoop集群中各个节点的本地磁盘来存放数据文件,可以在普通的硬件平台上实现可靠的数据存储。
对外部客户机而言,HDFS就像一个传统的分级文件系统,可以创建、删除、移动或重命名文件等。但是 HDFS的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 :NameNode负责在 HDFS内部提供元数据服务;DataNode负责为 HDFS提供存储块。Hadoop集群往往包含一个 NameNode和大量 DataNode。DataNode通常以机架的形式组织,机架之间通过交换机实现连接。Hadoop HDFS和Hadoop MapReduce的一个假设是机架内部节点之间的传输速度和延迟都好于机架间。
从传统的数据分析与商业智能分析模式向基于云计算的数据分析云的进化是电信数据分析的终级目标。转型过程应该从资源整合与平台虚拟化着手,分步引入虚拟化高级功能和云计算概念。
(1)资源整合与点应用
以现有的数据分析与商业智能分析系统为基础,进行资源整合,实现物理资源的虚拟化,通过虚拟化技术实现资源池化和资源动态扩展等功能,实现基础平台与应用平台的扩展。目前,实现虚拟化的产品有很多,其中以Vmware、微软、ctrix的虚拟化产品为主流。
依托基础平台与应用扩展平台,实现数据分析和商业智能平台的快速部署和资源动态扩展。
在此基础上,借助平台快速部署功能和系统无缝移置功能,选择性地开发和部署一批数据分析和商业智能应用。
(2)平台扩展和应用推广
在整合的基础上扩展平台,开发和部署更多的云模式数据分析和商业智能应用,同EDW、ODS和其他现有BI平台集成。
(3)平台开放和自主演化
这个阶段的平台建设目标是标准化云模式数据分析和商业智能应用的开发接口和运行时接口,提供较为完善的开发套件,鼓励和吸引合作伙伴共同丰富平台和应用的功能。
在数据分析与商业智能分析中应用云计算技术,能提高数据分析的效率,让企业更加能适应快速变化的市场,为快速推出新的产品提供数据依据,但是云计算也存在一些难点和风险。
(1)产品选择问题
服务器虚拟化技术和产品没有统一的标准平台和开放协议,业内服务器虚拟化产品良莠不齐,选择不合适的产品会带来严重的投资风险,而且服务器虚拟化软件价格不菲,短期、小范围内的应用难见效益。
(2)可靠性问题
由于在一台服务器上运行多个重要的应用程序和数据库,虚拟化的IT环境比大型计算机和微型计算机环境更容易遭到灾难性崩溃的破坏,因为它们有同样集中的资源,但是,硬件的可靠性不同。
(3)数据安全问题
数据是企业的生命,数据的丢失和泄露对电信来说是不容忽视的风险。云计算带来便利的同时,也给数据带来了风险。
(4)环境的复杂化
虚拟化的本质是应用只与虚拟层交互,而与真正的硬件隔离。在造成便利的同时,也造成了风险。软件和硬件之间被切断联系将导致安全人员看不到设备背后发生的风险,服务器环境变得更加不固定、复杂,安全人员最终失去硬件本身提供的稳定性。当应用出现故障时,需要精确定位是硬件还是软件故障,在虚拟化世界中,这将是一项复杂而冗长的工作。
中国电信实现数据云之后,可以快速搭建一个数据分析云计算平台,这个过程将通过管理平台自动化实现。数据分析云的扩展性,保证各类平台都可以参与到云计算中。参与平台的机器可以是资源池的闲置机器,也可扩展到非生产环境的机器,如开发测试资源池,甚至办公机器。数据分析云具有灵活弹性,因此各类机器可选择空闲时段加入云平台,如办公机器可在夜间空闲时段加入云分析,白天仍进行各自任务。灵活地加入与退出并不中断云计算本身。数据分析云具有高可靠性,即使出现一些机器的临时故障,云平台能够自动检测和适应,并不中断云平台分析与计算。
1 石屹嵘,段勇.云计算在电信IT领域的应用探讨.电信科学,2009,25(9)