大数据技术与应用
上QQ阅读APP看书,第一时间看更新

3.1 云端大数据

基于大规模数据的系列应用正在悄然推动着IT基础设施的发展,尤其是大数据对海量、高速存储的需求。为了对大规模数据进行有效的计算,必须最大限度地利用计算和网络资源。计算虚拟化和网络虚拟化要对分布式、异构的计算、存储及网络资源进行有效的管理。 

云计算为人们提供了跨地域、高可靠、按需付费、所见即所得和快速部署等能力,这些都是长期以来IT行业所追寻的。随着云计算的发展,大数据正成为云计算面临的一个重大考验。 

3.1.1 什么是云计算

云计算(Cloud Computing,见图3-1)是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。 

“云”是网络、互联网的一种比喻说法。过去往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。云计算是继20世纪80年代大型计算机到客户端—服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无须直接进行控制。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展并且经常是虚拟化的资源,它意味着计算能力也可作为一种商品通过互联网进行流通。 

978-7-111-53304-7-Chapter03-1.jpg

图3-1 云计算 

Wiki(维基)的定义是:云计算是一种通过因特网以服务的方式提供动态可伸缩的虚拟化的资源的计算模式。 

美国国家标准与技术研究院(NIST)的定义是:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件和服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。 

云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)和负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。 

3.1.2 云计算的服务形式

云计算按照服务的组织及交付方式的不同,有公有云、私有云和混合云之分。公有云向所有人提供服务,典型的公有云提供商是亚马逊,人们可以用相对低廉的价格方便地使用亚马逊EC2的虚拟主机服务。私有云往往只针对特定客户群提供服务,比如一个企业内部IT可以在自己的数据中心搭建私有云,并向企业内部提供服务。目前也有部分企业整合了内部私有云和公有云,统一交付云服务,这就是混合云。 

云计算包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。这里,分层体系架构意义上的“层次”IaaS、PaaS和SaaS分别在基础设施层、软件开放运行平台层和应用软件层实现。 

IaaS(Infrastructure as a Service):基础设施即服务。消费者通过因特网可以从完善的计算机基础设施获得服务。 

IaaS通过网络向用户提供计算机(物理机和虚拟机)、存储空间、网络连接、负载均衡和防火墙等基本计算资源;用户在此基础上部署和运行各种软件,包括操作系统和应用程序。例如,通过亚马逊的AWS,用户可以按需定制所要的虚拟主机和块存储等,在线配置和管理这些资源。 

PaaS(Platform as a Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。 

平台通常包括操作系统、编程语言的运行环境、数据库和 Web服务器,用户在此平台上部署和运行自己的应用。用户不能管理和控制底层的基础设施,只能控制自己部署的应用。目前常见的PaaS提供商有CloudFoundry、谷歌的GAE等。 

SaaS(Software as a Service):软件即服务。它是一种通过因特网提供软件的模式,用户无须购买软件,而是向提供商租用基于Web的软件来管理企业经营活动,例如邮件服务、数据处理服务和财务管理服务等。 

3.1.3 云计算与大数据

半个世纪以来信息技术的发展主要解决的是云计算中结构化数据的存储、处理与应用。结构化数据的特征就像到银行去存取款,银行的计算机系统记录着客户的名字,在名字之后是存取款的数量、时间和类型等信息。这些数据的特征是“逻辑性强”,每个“因”都有“果”。然而,现实社会中大量数据事实上没有“显现”的因果关系,如一个时刻的交通堵塞、天气状态或人的心理状态等,它们的特征是随时、海量与弹性的,如一个突变天气分析会包含几百 PB 数据。而一个社会事件如乔布斯去世在互联网上瞬间产生的数据(微博、纪念、文章和视频等)也是突然爆发出来的。 

传统的计算机设计与软件都是以解决结构化数据为主,对“非结构”要求一种新的计算架构。互联网时代,尤其是社交网络、电子商务与移动通信把人类社会带入一个以PB为单位的结构与非结构数据信息的新时代,它就是“大数据”(Big Data)时代。 

简单地概括云计算和大数据之间的关系,在很大程度上它们是相辅相成的,它们最大的不同在于:云计算是你正在做的事情,而大数据是你所拥有的东西。以云计算为基础的信息存储、分享和挖掘手段为知识生产提供了工具,而通过对大数据进行分析和预测会使得决策更加精准,两者相得益彰。从另一个角度讲,云计算是一种IT理念、技术架构和标准,而云计算也不可避免地会产生大量的数据。所以说,大数据技术与云计算的发展密切相关,大型的云计算应用不可或缺的就是数据中心的建设(见图3-2),大数据技术是云计算技术的延伸。 

978-7-111-53304-7-Chapter03-2.jpg

图3-2 位于美国艾奥瓦州的谷歌数据中心,占地1万m2 

大数据为云计算大规模与分布式的计算能力提供了应用的空间,解决了传统计算机无法解决的问题。目前的基本计算单元常常是普通的x86服务器,它们组成了一个大的云。而未来的云计算单元里可能有独立的存储单元、计算单元和协调单元,总体效率会更高。 

海量的数据需要足够的存储来容纳它,快速、低廉价格、绿色的数据中心部署成为关键。Google、Facebook和Rackspace等公司都纷纷建设了新一代的数据中心,大部分都采用更高效、节能、订制化的云服务器,用于大数据存储、挖掘和云计算业务。 

数据中心正在成为新时代知识经济的基础设施。从海量数据中提取有价值的信息,数据分析使数据变得更有意义,并将影响政府、金融、零售、娱乐和媒体等各个领域,带来革命性的变化。 

3.1.4 云基础设施

大数据解决方案的构架离不开云计算的支撑。支撑大数据及云计算的底层原则是一样的,即规模化、自动化、资源配置和自愈性。也可以说,大数据是构建在云计算基础架构之上的应用形式,因此它很难独立于云计算架构而存在。云计算下的海量存储、计算虚拟化、网络虚拟化、云安全及云平台就像支撑大数据这座大楼的钢筋水泥一样,只有好的云基础架构支持,大数据才能立起来,站得更高。 

虚拟化(Virtualization)是云计算所有要素中最基本、最核心的组成部分。和云计算在最近几年才出现不同,虚拟化技术的发展其实已经走过了半个多世纪(开始于1956年)。在虚拟化技术的发展初期,IBM是主力军,它把虚拟化技术用在了大型机领域。1964年,IBM设计了名为CP-40的新型操作系统,实现了虚拟内存和虚拟机。到1965年,IBM推出了System/360 Model 67(见图3-3)和TSS分时共享系统(Time Sharing System),允许很多远程用户共享同一高性能计算设备的使用时间。 

978-7-111-53304-7-Chapter03-3.jpg

图3-3 IBM System/360

1972年,IBM发布了用于创建灵活大型主机的虚拟机技术,实现了根据动态需求快速而有效地使用各种资源的效果。作为对大型机进行逻辑分区以形成若干独立虚拟机的一种方式,这些分区允许大型机进行“多任务处理”—同时运行多个应用程序和进程。由于当时大型机是十分昂贵的资源,虚拟化技术起到了提高投资利用率的作用。 

利用虚拟化技术,允许在一台主机上运行多个操作系统,让用户尽可能地充分利用昂贵的大型机资源。其后,虚拟化技术从大型机延伸到UNIX小型机领域,HP、Sun(已被Oracle收购)及IBM都将虚拟化技术应用到其小型机中。 

1998年,VMware公司成立,这是在x86虚拟化技术发展史上十分重要的一个里程碑。VMware发布的第一款虚拟化产品VMware Virtual Platform,通过运行在Windows NT上的VMware来启动Windows 95,开启了虚拟化在x86服务器上的应用。 

相比于大型机和小型机,x86服务器和虚拟化技术兼容得并不是很好。但是VMware针对x86平台研发的虚拟化技术不仅克服了虚拟化技术层面的种种挑战,其提供的VMware Infrastructure更是极大地方便了虚拟机的创建和管理。VMware对虚拟化技术的研究开创了虚拟化技术的x86时代,在很长一段时间内,服务器虚拟化市场都是VMware一枝独秀。 

虚拟化技术中最核心的部分分别是计算虚拟化、存储虚拟化和网络虚拟化。 

3.1.5 云平台

PaaS(platform-as-a-service,平台即服务)是云计算中最为重要的一个类型,如图3-4所示,在云计算的技术实现环节起到了承上启下的作用。PaaS有以下几个特点。 

978-7-111-53304-7-Chapter03-4.jpg

图3-4 医疗云平台架构 

(1)PaaS提供的是一个基础平台,而不是某种应用。在传统的观念中,平台是向外提供服务的基础。一般来说,平台作为应用系统部署的基础,是由应用服务提供商搭建和维护的,而PaaS颠覆了这种概念,由专门的平台服务提供商搭建和运营该基础平台,并将该平台以服务的方式提供给应用系统运营商。 

(2)PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,而且包括针对该平台的技术支持服务,甚至是针对该平台而进行的应用系统开发、优化等服务。PaaS的运营商最了解他们所运营的基础平台,所以由PaaS运营商所提出的对应用系统优化和改进的建议也非常重要。而在新应用系统的开发过程中,PaaS运营商的技术咨询和支持团队的介入,也是保证应用系统在以后的运管中得以长期、稳定运行的重要因素。 

(3)PaaS运营商对外提供的服务不同于其他服务,这种服务的背后是强大而稳定的基础运营平台,以及专业的技术支持队伍。这种“平台级”服务能够保证支撑SaaS或其他软件服务提供商的各种应用系统长时间、稳定的运行。PaaS的实质是将互联网的资源服务化为可编程接口,为第三方开发者提供具有商业价值的资源和服务平台。有了PaaS平台的支撑,云计算的开发者就获得了大量的可编程元素,这些可编程元素有具体的业务逻辑,这就为开发带来了极大的方便,不但提高了开发效率,还节约了开发成本。有了PaaS平台的支持,Web应用的开发将变得更加敏捷,能够快速响应用户需求的开发能力,也为最终用户带来了实实在在的利益。