欢迎来到天天文库
浏览记录
ID:21538820
大小:45.00 KB
页数:15页
时间:2018-10-22
《云计算中几种基础设施朴素看法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、云计算中几种基础设施的朴素看法前言云计算的概念近期可谓如火如荼,备受关注。我先前听到“云”这个名词时,很是觉得太过玄乎——也不知道它用在哪里,更不了解它如何实现,总有雾里看花的感觉!好在近期工作需要的缘故,学习和开发过类似于“云计算”基础设施的内部系统,之后再回过头来看看业界两大寡头(Google,Amazon)推出各自的云计算服务,从认识上才算是真的将“云”这个天书般的概念落实。后面的文章中我将在个人理解的基础上,针对云计算的概念,体系结构,以及适用性等方面作一些不算很深入分析和对比,希望对大家理解云计算架构有所帮助。第一部分什
2、么是云计算云计算的标准定义留给大家去Google吧,我这里谈谈我简化理解后的云计算是什么东东:先来看云计算的产生原因吧!——首要原因是为了应对待处理数据爆炸式增长与当今机器存储能力和计算能力不足之间的矛盾(借用一下我国当前基本矛盾的书法:)。由于待处理数据越来越多(不是用多少G就能描述的范畴了。想象一下假若要存储并计算数千万用户的访问日志,或者计算数亿个网页的PageRank),多到了很难在一台或有限数目的存储服务器内容纳,且更无法由一台或数目有限的计算服务器就能处理这样的海量数据。——当然,你也许会想到买来漂亮的EMC存储阵列和
3、HP的SUPERSTONE这样的小型机搞定一切,但是它们有点贵喽,这种砸钱的大家伙只能留给阔绰的银行、电信企业,或者国家气象局这些机构使用了——这时就需要能在普通机器(比如在中关村攒出的廉价PC)上分布式的存储这些数据,并能在其上分布式计算这些数据。你肯定会说,这不久是分布计算吗?没错,云计算可以说是经分布计算,并行计算,网格计算一脉相承的技术路线,甚至可以说它们基因相同。但它们的给人的外貌却不同,这是因为云计算是经过商业包装的名词,其实就是将分布存储和分布计算这种技术找了个盈利模式——将存储能力和计算能力出售给第三方企业。而第三
4、方不需知道其数据到底存在那个机器上,也不需要知道那个机器在处理它们的数据,因此对它们来说数据在云端,计算也在云端,大约如此,才有了“云计算”这个概念。目前出售云计算服务的有Amazon和Google两个业界老大(听说Oracle和APPLE也开始搞了,EMC似乎也有计划),出售的服务内容大体相同,盈利方式也大同小异(具体参看他们的网站的S3服务,EC2服务,或GoogleAppEngine服务等)。它们技术架构虽有差异,但从概念上讲可把云计算看成是“存储云”结合“计算云”的有机结合,即“云计算=存储云+计算云”第二部分存储云的架构
5、介绍存储云概念存储云依我看就是一个被商业包装过的分布存储系统——只不过它对第三方用户公开存储接口,用户可买容量和带宽,且规模相当宏伟的分布存储系统。关于商业模式问题我们就不多作探讨了,大家可到其网站上仔细瞧瞧。我这里的重点是对用于存储云的分布存储系统作对比分析。(不过假如你对存储云完全不了解,那我建议在看下面内容之前,先去读读相关的论文什么的介绍吧!以便我们的讨论事半功倍。)存储云结构比较——DynamoVSBigtable比较典型的存储云基础系统有Amazon公司的Dynamo系统与Google公司的Bigtable系统,这两种
6、系统不但已经开始是商用(参见S3服务和GoogleAppEngine服务),而且都公开了比较详细的实现论文(尤其dynamo系统论文格外详尽——可见Amazon公司的无私和自信)。它们各自实现架构迥异,存储特性不一,但都结构优美,技术上各有可称道的地方,可谓各有千秋,却又殊途同归。下面我们将针对它们两者存储数据的要求、体系架构、扩容、负载均衡、容错、数据存取及查询等我觉得重要的方面进行一些点到为止分析比较,以辨明良莠。数据结构化问题首先要提到的是两者存储数据属性上的区别,虽然两者都是以key/value形式进行存储,但Dynamo
7、偏向存储原数据,因为其所存储的数据是非结构化数据,对value的解析完全是用户程序的事情,Dynamo系统不识别任何结构数据,都统一按照binary数据对待;而Bigtable存储的是结构化或半结构化数据(web数据特点就是介于结构化和非结构化之间,因此称为半结构化数据。我这里不展开说它了,不了解半结构化数据的赶紧去google一下吧!),其value是有结构的数据——就如关系数据库中的列一般,因而可支持一定程度的Query(比如可按单列进行)。这点上看Bigtable更接近数据库(接近而不是等价!至于和关系数据库的具体区别可去g
8、oogle一下,网上论述可不少!);另外,Bigtable所存储的数据都是以字符串格式实现,所以对主建或者列(以及其自动加上的时间戳)排序都是以字符序进行,而dynamo的键值并非以字符串存储,而是统一经过md5算法转后成16字节md5_key存储
此文档下载收益归作者所有