吴朱华是《云计算核心技术剖析》一书的作者,他认为,目前云计算的技术已经度过了的最初的“朦胧期”,业界已经找出一些核心的突破点,铺以重兵攻坚。但发展中也存有一些争议点,值得讨论。
核心技术难点
从云计算的技术层面来讲,整体的IaaS,SaaS和PaaS的架构已经足够清晰,但是还有几个点仍然存在一定的技术难度。
1. 云计算的安全性
安全性永远是云计算最热的话题之一,文章关注了两点:
首先是数据中心网络的安全性(可用性),最典型的例子,Amazon Web Service服务最近几次大型故障都和网络有关,特别是其基于局域网技术的云硬盘服务EBS。多位业界网络专家认为其路由器的Oversubscribe(超卖)和网络配置无法应对(比如网络控制信息方面的流量会有波动)是整个问题的关键。
其次是虚拟机本身的安全性,其实在虚拟机的发展之初,各个技术主要关注点绝对是性能,比如Xen虽然上手复杂,但是由于其本身的半虚拟化的架构,其在性能方面稍强于VMware,并拿这点作为长期的谈资。但是随着程序的优化,特别是硬件虚拟化技术的引入,在性能方面,各方面都已经接近均势,并且优化空间也不多,所以虚拟机的安全性很有可能将会作为今后的主要考量之一。
据一些行业IaaS云供应商的反馈,Xen本身有严重的漏洞,通过这个漏洞,虚拟机里面的程序可以直接攻击到物理机本身,并且KVM也有类似的问题,比如KVM直接有两个IO端口可以和QEMU通信,所以虚拟机的安全性还有待完善。
2. 数据中心大二层和SDN
很多做私有IaaS云厂商面对最大的技术挑战,基本上都是“网络难配”,主要有三个方面的原因:
现在云服务多个节点之间需要连接大量内部的通信,最明显的例子就是Hadoop,当集群大小超过千台时,网络会成为比IO更大的一个瓶颈;
虚拟机各节点只能在同一个二级网段内才能进行非常重要的动态迁移;
每个虚拟主机都会运行十个以上的虚拟机,这会导致过一个网段内实际所需要承受的机器数量和具体流量都倍增。
这些因素都导致数据中心网络从之前对外为主的南北向,慢慢转为以内部为主的东西向,同时数据中心不得不出现大二层的现象。为了解决这些问题,网络界推出了各种解决方案,包括将路由能力带到二层网络的TRILL和FabricPath,用于识别虚拟机流量的VN-Tag和VEPA,用于二层互联的VPLS和OTV。最后就是号称改变整个网络世界的SDN(软件定义网络)。这些技术的确能让现有的云服务,特别是IaaS层在技术层面有一个质的的飞跃,但是整体成熟度和成本要下降到一个让大家都满意程度,显然并非易事。
3. OpenStack完整的生态环境
2012年云计算的业界,如果说只有一个“明星”的话,那绝对是OpenStack莫属,和之前开源的CloudStack、Eucalyptus不同的是,OpenStack强调的核心是生态圈,并且它的生态圈还有两个特色,其一是模块众多,它不仅有传统用于虚拟机的模块,而且它还提供云存储模块Swift,以及用于虚拟机镜像管理的Glance,最具创新型的网络模块Quantum;其次,整个圈子里面初创公司极为活跃,不仅国外有已经被VMware以巨资收购的Nicira,国内的九州云还有UnitedStack都做的有声有色。虽然表面而言,OpenStack生态圈“歌舞升平”,但是还是存在很多隐患,最重要的就是缺乏一个领军的企业来引导,光靠一个“松耦合”的社区的确还有点难度。
蒋清野在OpenStack、OpenNebula、Eucalyptus、CloudStack社区活跃度比较中表示,OpenStack项目提交代码的人数远远超过其他三个项目,并且一直保持迅猛增长的势头。CloudStack项目提交代码的人数也有所增长,但是其增长速度较为缓慢。Eucalyptus项目和OpenNebula项目提交代码的人数相对较少,并且在过去12个月当中基本上没有增长,这表明OpenStack的发展势头还是很猛的。
4. Hadoop的生态圈的完善
虽然业界各种五花八门的Hadoop用例让人有点疑惑,但是Hadoop社区在Cloudera和Hortonworks这两大巨头的推动下,再加上类似淘宝云梯这样案例不断成熟,使Hadoop快要成为业界标准的大数据服务平台。同时由于MapReduce的编程框架,使得传统的基于关系型数据库的周边工具都无法继续使用,所以一些新的周边工具不断推出,包括用于数据流支持的Pig,用于SQL解析的Hive,用于日志收集的Flume,用于ETL的Scribe,用于实时分析的Impala等。
不过对于Hadoop这个生态圈,吴朱华也表示有些疑虑,虽然和OpenStack生态圈相比,表面上有两大巨头的支持,但这两大巨头”各怀鬼胎“,而且其整体所需要投入的工程量和OpenStack相比也是不相上下,只有两大巨头抛弃成见,齐心协力才能将Hadoop推向一个新的高度。
5. NewSQL的兴起
前几年谈及NoSQL,虽然其伸缩性不错,但因为其不支持完整SQL语句,使得其学习成本变得很高,所以吴朱华认为既能伸缩、又能支持SQL的NewSQL兴起再所必然。
提起NewSQL,首先可能会想到MemSQL或者SAP HANA这类新型的基于内存的数据库,但是其实在NewSQL方面,最强大的始作俑者绝对是研发出MapReduce的Google,虽然其最初整套用于半结构化数据解析的索引构建模块是基于MapReduce的,并且研发了著名NoSQL技术BigTable,但是随着它业务的需求和对性能等方面要求的不断提升,在技术方面,它做了优化和转型,基于现有公开的资料,主要两部分,其一在索引构建和OLTP方面,Google以BigTable为基础发展出可以对大数据集进行增量更新的Percolator系统以用于索引的构建和服务,同时也在BigTable基础上,推出用于分布式海量OLTP的Megastore和F1 Spanner,并且他们分别被用于Google App Engine的Data Store数据库服务和Google的现金牛广告服务,同时在OLAP方面,它推出有点类似MPP列式数据库的Dremel,通过Dremel这个系统能够构建有千台规模的分析集群,并能快速地对PB级别的数据进行处理。
无论是F1 Spanner还是Dremel,它们在伸缩性方面都非常不错,并且在语法上面支持一定的SQL语句,吴朱华认为它们绝对是NewSQL的典范之作。不过现在NewSQL界,真正有实力的公司和产品并没有出现。
悬念
虽然上面提到了很多关注点,但是在吴朱华看来,还是存在很多争议点,还需要进一步讨论才能分出优劣或者各自适合的场景,从而引发质的飞跃。
1. OpenStack 还是 CloudStack?
其实,OpenStack和CloudStack虽然其提供功能大体类似,但是它们在核心理念上是大相径庭。CloudStack本质是产品的思路,也就是通过这个产品能够非常快速地构建一个提供IaaS服务的私有云,并且通过其主要用户Zynga的使用来进行逐步地优化;而OpenStack则本质是一个生态圈,并且功能强大的模块有很多,但可惜实际的案例不多,特别是大规模的部署。那么到底OpenStack模式还是CloudStack模式会成为未来IaaS云计算的主流,其实很难判断,但最近一年,如果使用OpenStack来构建一个大型IaaS云,至少在整体项目的技术支持上,还缺乏一个能全面理解OpenStack的团队。
2. 结构化数据,Hadoop适合吗?
首先,虽然现在Hadoop使用面很广,包括类似OLAP的结构化数据分析,但是其实Hadoop这样MapReduce的框架,最初的需求主要是用于类似网页这样的半结构化数据的处理和分析,而且MapReduce这样暴力的方式也特别适合类似地理数据和视频这样非结构化数据。同时虽然现在有类似Hive这样的解决方案,但是Hadoop在处理结构化数据时,无论是处理速度,还是处理成本,都和基于列式存储的NewSQL数据库无法接近的。
另外,虽然Cloudera推出用于准实时分析的Impala,但是由于其重写了极为耗时耗力的SQL解析引擎,所以如果等它全面支持SQL语句那天,还为时尚远。综上所述,诚然Hadoop能做对结构化数据的分析,但是否合适,这就是一个仁者见仁,智者见智的问题。
3. GAE,还是Cloud Foundry?
虽然PaaS这个名词在2012年比较沉寂,但是Cloud Foundry和GAE(Google App Engine)都有一定的进步,Cloud Foundry有了更多用户,GAE又发布了新的版本。争论的核心是Cloud Foundry和GAE在方向性上面的差别比OpenStack和CloudStack更大。
Cloud Foundry核心是快速部署,快速开发,支持各种编程模式也非常灵活。
GAE的优势是通过分布式的架构能快速伸缩,并且能够最大限度地进行超买,从而在一定用户规模的基础上实现较大的盈利,但是初期构建成本比Cloud Foundry高的多。
所以Cloud Foundry这个方案比较适合私有云,而GAE更适合公有云,具体今后的PaaS届谁会成为潮流,这个还很难说。
4. SDN有需求吗?
就像前面所说的那样,SDN是一种新兴的控制与转发分离并直接可编程的网络架构,并且号称可以改变整个网络世界。对于这种大的颠覆,首先,在技术层面是有发展的前途的,这估计也是VMware斥巨资收购Nicira的原因之一。但是在实际应用方面,是否能找到“Killer App”也是核心的关键,虽然有资深专家表示网络虚拟化,安全等方面会存在这样的需求,但还是需要一定的时间来进行检验。
5. 云计算是否需要API规范?
在云计算API规范方面,吴朱华也是国内最早涉及的人之一,并且他非常推崇用于虚拟镜像分发的OVF规范。不过对于这个争议点,吴朱华谈到了两方面:其一,业界是否需要公共的API规范?其二,如果需要这个规范,业界会更多地采用来自专业的,经过多方流程思考的DMTF(分布式管理工作组)的规范,还是更多地借鉴一些成功产品现成的API,比如现在很多云主机服务所提供的API基本和Amazon EC2所提供的基本一致。吴朱华认为,现在还处于云计算初中期,硬推行一种规范,成本就有点高,并且有可能会阻碍创新,然而具体使用DMTF还是其他的,应该都可以。
云计算和大数据本身就是下一代的技术,能在很多方面可以解决现在用户和企业所遇到的痛点。但是如果业界没有人专注核心的技术点,并且解决某些有争议的问题,那么整体技术将会陷入不断的“Reinvent the wheel”阶段,就会驻足不前。