云计算的由来——技术积累

来源:互联网 发布:二进制算法例子 编辑:程序博客网 时间:2024/05/01 07:21

IT领域和娱乐圈一样每个阶段总有那么几个技术(娱乐人物)去抢头条。今天就来聊一聊云计算,就像去评价一个娱乐人物一样,谁也说不清这个人到底是什么样子。因为在一定的时间里面人们对一个东西的认识往往是片面的。你不可能说就凭一篇出轨报道就说哪个明星品行不好,也不能仅凭谁搞了一个希望小学就说明那个人道德高尚。我们认识一个事物需要时间,往往最后到头来才发现,啊~原来是这么个东西。

扯远了,回来说云计算。

这得从web2.0说起,不知道的童鞋请自行维基。起初web2.0很简单为了应对与用户的交互只是需要一台机器然后上面装了数据库,装了运行时(jre, .net Framework,或者其他虚拟机等等),装了web服务器(tomcat,IIS,Apache等等)。随着用的人越来越多发现一个机器不好使了然后开始把web服务器和数据库分开。这时候是两个机器,一个负责web一个是数据库。然后用的人再次增多,只好再次调整,把web服务器搞成集群,前面弄一个负载均衡。然后逐渐发现瓶颈不在web服务器了是后面数据库了,于是又把数据库搞一个集群,有的负责读,有的负责写,俗称读写分离。再往后又发现web服务器到瓶颈了,那就开始把动态内容和静态内容分开,然后又发现网络宽带不行了,于是开始用CDN。再往后又发现数据库撑不住了,于是就分割数据库,无论是水平分割还是垂直分割总归目的是让数据库更快的读写。以上的最终目的是让网站能承受更多人的访问。正是这些技术架构上的演变才成就了今天的GoogleFacebookAmazon这样伟大的公司。

拿谷歌来说他为了应对大量的访问高了好多数据中心。据说谷歌的数据中心是一堆(这里的堆是指万以上的级别)机器,这里的机器和我们使用的不太一样,搞一个硬盘,搞一个CPU其他的像外围的东西通通省掉,这样一来单个的机器很廉价(一个机器可能还不到100美金),就是这样的机器几万台在一起构成一个数据中心。如何来形容这个数据中心之大呢,据说这个数据中心本地的电量不能稳定的供给,所以谷歌当年甚至宣称要自己建立发电站以满足电力的供给。


也许有人会担心这么多机器维护起来一定很麻烦,其实不是的,找一个看门的老大爷就行了。比如说一旦有那个机器坏掉了,告诉这个老大爷说哪个哪个架子上哪个哪个机器宕掉了,然后这个大爷就推着装有新机器的小推车过去,把旧的机器拿下来,把新的机器换上去,剩下的事他就不用管了。这个新的机器会自动的加入到这个庞大的队伍,然后会自动格式化,自动安装一些所需的环境以及自动的将数据复制进来,最终开始工作。整个过程就好像一个人吃掉一个面包一样,吃完之后这个面包就逐步成为人的一部分(类似这种感觉,请不要思考人类排泄这个动作)。

有了上面一堆的机器能做那些事呢?比如将全球所有的网页进行爬取然后索引以方便后面的查找。谷歌是怎么做的呢?他将这一推的机器搞成一个逻辑上的硬盘,专业一点儿说就是搞成一个分布式的文件系统。当然他有自己的一套方法,无论你的硬盘在地球上哪里,只要是连上网就把他们变成一个逻辑的硬盘。而且这个逻辑的硬盘还有很多好处,当你往里面写的时候他会自动的将数据分成几份做备份,肯定不会是简单的复制,利用他自己的一套冗余的范式达到最高效的备份和最高效的恢复。这样的好处是可以做负载均衡,第二个好处是可以容灾。

一个大规模的工程使得他们有机会将诸如此类的需要大量的计算切割成众多小的计算单元完成之后merge到一起,这就是著名的MapReduce简单的说就是和平常的程序不同。我们平时查询一个东西需要将数据从硬盘拽到内存当中,然后做相应的查找。现在不是了,数据分散在各地,那么好了我把程序传送到数据所在的地方,然后进行查找,这样每个机器都做一点儿然后把结果汇总起来,这就是并发式的计算模式。感兴趣的读者可以参考网格计算相关的内容。

类似这种技术这些大型的基于Web2.0的公司无论是从数据的层次还是架构的层次以及应用的层次,他们都进行了很多的探索。在之前的十几年当中随着这些系统的进化形成了一套行之有效的分布式计算模式。而这些技术上的演变最终的目的都是为了构件廉价的而且可靠的大规模分布式系统,从而奠定了今天云计算的技术基础。

到这里相信您可能在技术上对云计算有了一定的了解,从Web2.0到现在的云计算是一个自然演变的过程,而绝不是网上所说的云计算是一个新的东西。正是因为有了上面的这些需求和技术做基础,才会有人去实现构建廉价而又可靠的大规模分布式系统,进而有了我们今天看到的云计算。

1 1
原创粉丝点击