作者:jasonmysh | 来源:互联网 | 2014-05-27 20:06
各位弯友好,很长时间没发文章,实在对不起弯友和首席的厚爱,所以在这里以这篇新写的文章来向大家表达歉意^_^我记得我第一次听到“云计算”这个名词的时候,大概07年底的时候,当时云计算的开创者之一DennisQuan来到当时我工作地方IBM中国研究院做主题演讲
各位弯友好,很长时间没发文章,实在对不起弯友和首席的厚爱,所以在这里以这篇新写的文章来向大家表达歉意^_^
我记得我第一次听到“云计算”这个名词的时候,大概07年底的时候,当时云计算的开创者之一Dennis
Quan来到当时我工作地方IBM中国研究院做主题
演讲,在那次演讲中,他基于之前他在Google那里参与合作项目的实践,给我们描绘了在他眼里云计算所带来的美好前景,自从那天开始我成为了云计算的信徒,并且不才地2011年中出版我个人云计算的专著《云计算核心技术剖析》,之后就一直封笔,并始终专注于我们YunTable的开发和团队的组建。那么为什么在封笔两年之后,又重新提笔写云计算的文章呢?因为到了2013年,其实“云计算”这个概念,因为很多原因导致毁誉参半,并且随着其衍生“大数据”这个概念更愈演愈烈,但是身为一名所谓的“云计算和大数据专家”我个人认为在技术方面通过这几年的努力,云计算已经度过最近的朦胧阶段,并业界已经找出一些核心突破点,并铺以重兵攻坚,但同时也有一些有争议,并值得讨论的地方,这是我对这些加以总结,并形成此文的原因,虽然每个段落和方向都浅尝截止,但是希望能给大家一些启发。
就像前面说的那样,现在云计算技术层面,其实大的IaaS,SaaS和PaaS的架构已经清晰,但是下面几个点还是存在一定的技术难度,就像Tesla所用到核心技术,非5-10年的功夫是无法攻克的,所以个人觉得需要业界集结力量攻克。
云计算的安全性
谈到云计算的话题,安全性永远是最热的话题之一。由于这个话题牵涉面广,所以本段落只关注两点,首先,是数据中心网络的安全性,最典型的例子,莫过于云计算最有知名度的Amazon
Web
Service服务,最近几年其几次大型故障都和网络有关,特别是其基于局域网技术的云硬盘服务EBS,多位业界网络专家认为其路由器的Oversubscribe(超卖)和网络配置无法应对(比如网络控制信息方面的流量会有波动)是整个问题的关键,如何解决好这个问题看来还需要进一步的实践和创新;其次,是虚拟机本身的安全性,其实在虚拟机的发展之初,其实各个技术主要关注首先绝对是性能,比如当时Xen虽然上手其为复杂,但是由于其本身的半虚拟化的架构,使得其在性能方面,长期稍强于VMware,并拿这点作为其长期的谈资,但是随着各方面程序的优化,特别是硬件虚拟化技术的引入,其实在性能方面,各方面都已经接近均势,并且大的优化空间也不多,所以虚拟机的安全性很有可能将会作为今后的主要考量之一,据一些行业IaaS云供应商的反馈,Xen本身有严重的漏洞,通过这个漏洞,虚拟机里面的程序可以直接攻击到物理机本身,并且KVM也有类似的问题,比如KVM直接有两个IO端口可以和QEMU通信,
所以虚拟机的安全性还有待完善。
云计算的安全绝对是一个需要重视,并且需要花大力气的领域。
数据中心大二层和SDN
去年我曾经走访了几家做私有IaaS云的厂家,根据和他们的沟通,对于这些厂家而言,他们面对最大的技术挑战,基本都是“网络难配、网络难配”,主要有下面这三个原因:其一是现在云服务多个节点之间需要连接大量内部的通信,最明显的例子就是Hadoop,当集群大小超过千台时,网络会成为比IO更大的一个瓶颈;其二是虚拟机各节点只能在同一个二级网段内才能进行非常重要的动态迁移;其三是每个虚拟主机都会运行十个以上的虚拟机,这会导致过一个网段内实际所需要承受的机器数量和具体流量都倍增;这些因素都导致数据中心网络从之前对外为主的南北向,慢慢转为以内部为主的东西向,同时数据中心不得不出现大二层的现象。为了解决这些问题,网络界推出了各种解决方案,包括将路由能力带到二层网络的TRILL和FabricPath,用于识别虚拟机流量的VN-Tag和VEPA,用于二层互联的VPLS和OTV,最后就是号称改变整个网络世界的SDN(软件定义网络);
对于这些技术,我个人觉得的确能让现有的云服务,特别是IaaS层在技术层面有一个质的的飞跃,但是整体成熟度和成本要下降到一个让大家都满意程度,并非易事。
OpenStack完整的生态环境
2012年云计算的业界,其中有一个名词绝对是OpenStack,它和之前的IaaS开源项目,比如CloudStack、桉树(Eucalyptus)等不同的是,OpenStack强调的核心是生态圈,并且它的生态圈有两个特色,其一是模块众多,它不仅有传统用于虚拟机的模块,而且它还有提供云存储模块Swift,以及用于虚拟机镜像管理的Glance,另外还有最具创新型的网络模块Quantum;其次,整个圈子里面初创公司极为活跃,不仅国外有已经被VMware以巨资收购的Nicira,而且在国内,无论是九州云还是UnitedStack都做的有声有色。
虽然表面而言,OpenStack生态圈“歌舞升平”,但是其实个人觉得其实有很多隐患,最重要的是缺乏一个领军的企业来引导,光靠一个松耦合的社区真的有点难度。
Hadoop的生态圈的完善
虽然我个人对现在业界各种五花八门的Hadoop用例有点疑惑,但是Hadoop社区的确在最近几年,通过Cloudera和Hortonworks这两大巨头推动,并且再加上类似淘宝云梯这样案例不断成熟,使的Hadoop快成为业界标准的大数据服务平台。同时由于MapReduce这样新的编程框架,使得传统的基于关系型数据库的周边工具都无法继续使用,所以一些新的周边工具不断推出,包括用于数据流支持的Pig,用于SQL解析的Hive,用于日志收集的Flume,用于ETL的Scribe,用于实时分析的Impala等。
对于Hadoop这个生态圈,我个人也是很有疑虑的,虽然和OpenStack的圈子相比,它表面有两大巨头支持,但这两大巨头各怀鬼胎,而且其整体所需要投入的工程量和OpenStack相比不相上下,希望两大巨头能抛弃成见,起心协力。
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界,真正有实力的公司和产品并没有出现;
虽然上面提到了很多关注点,但是在我看来,还是有很多争议点,就像梅西和C罗各有各自的优点,还需要进一步讨论才能分出优劣或者各自适合的场景,个人觉得通过这样的讨论,能帮助大家抓住关键点,从而引发质的飞跃。
OpenStack 还是 CloudStack?
其实,OpenStack和CloudStack虽然其提供功能大体类似,但是个人觉得它们在核心理念是大相径庭,CloudStack本质是产品的思路,也就是通过这个产品能够非常快速地构建一个提供IaaS服务的私有云,并且通过其主要用户Zynga的使用来进行逐步地优化,而OpenStack则本质是一个生态圈,就像上面提到的那样,里面有很多公司和团队参与,并且功能强大的模块很多,可惜实际的案例不多,特别是大规模的。那么到底OpenStack的模式还是CloudStack的模式是今后IaaS云计算的主流,我个人很难判断,但最近一年,使用OpenStack来构建一个大型IaaS云,个人觉得至少在整体项目的技术支持还缺乏一个能全面理解OpenStack的团队来做。
结构化数据,Hadoop适合吗?
首先,个人一直觉得虽然现在Hadoop使用面很广,包括类似OLAP的结构化数据分析,但是其实Hadoop这样MapReduce的框架,最初的需求主要是用于类似网页这样的半结构化数据的处理和分析,而且MapReduce这样暴力的方式也特别适合类似地理数据和视频这样非结构化数据。同时虽然现在有类似Hive这样的解决方案,但是基于我最近几年我在底层的收获,和一些朋友反馈,Hadoop在处理结构化数据时,无论是处理速度,还是处理成本,都和基于列式存储的
NewSQL数据库无法接近的。另外,虽然Cloudera推出用于准实时分析的Impala,但是由于其重写了极为耗时耗力的SQL解析引擎,所以个人觉得等它全面支持SQL语句那天,还为时尚远。综上所述,诚然Hadoop能做对结构化数据的分析,但是是否合适,个人觉得是一个仁者见仁,智者见智的问题。
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届那种是潮流,这个很难说。
SDN有需求吗?
就像前面所说的那样,SDN是一种新兴的控制与转发分离并直接可编程的网络架构,并且号称是可以改变整个网络世界。对于这种一个大的颠覆,首先,在技术层面,个人觉得的确有发展的前途,这估计也是VMware花巨资收购Nicira的原因之一,但是在实际应用方面,是否能找到“Killer
App”也是核心的关键,有资深专家说,网络虚拟化,安全等方面会存在这样的需求,但个人觉得,还是需要一定的时间进行检验。
云计算是否需要API规范?
在这个争议点方面,属于也是个人非常感兴趣的一个环节,因为云计算API规范方面,我是国内最早涉及的人之一,并且个人非常推崇用于虚拟镜像分发的OVF规范,同时也是国内最早为其撰文推广的。
言归正传,对于这个争议点,个人觉得主要是两方面,其一是,业界是否需要公共的API规范?其二是如果需要这个规范,业界会更多地采用来自专业的,经过多方流程思考的DMTF(分布式管理工作组)的规范,还是更多地借鉴一些成功产品现成的API,比如现在很多云主机服务所提供的API基本和Amazon
EC2所提供的基本一致。个人觉得现在还处于云计算初中期,硬推行一种规范,个人觉得成本有点高,并且有可能会阻碍创新,然而具体使用DMTF还是其他的,我个人觉得都可以。
最后,我想说,身为一名所谓“云计算和大数据专家”,我真心觉得云计算和大数据本身就是下一代技术,能在很多方面解决现在用户和企业所遇到的痛点,但是如果业界没有人专注核心的技术点,并且解决某些有争议的问题,那么整体技术将会陷入不断“Reinvent
the wheel”的阶段,而驻足不前,还有,希望我的担忧是多虑的,希望云计算的发展越来越好。