您的位置:首页 > 大数据 > 云计算

到底什么是云计算?

2015-06-21 12:01 204 查看
现如今,在计算机科学与工程领域,“云计算”可谓是个最火的词。可是,就像之前的“深度学习”,“大数据”一样,这些被炒的很火的词除了确实人更多的人知道了当今发展热点之外,却也为广大学习者和爱好者带来了困惑。仿佛觉得这就是传说中的“计算机科学的技术日新月异,更新很快”的合理解释,从而拼命去学习一个又一个技术,却不得要领,越学越累,没了当初的强烈兴趣。本人就是深受其害,也深知了解其本质和发展脉络的重要性。下面结合自己的学习方向,就自己的理解,谈一谈什么是云计算。各位大牛们莫要耻笑。

首先我们要明确一个事实:各行各业都在讨论云计算,然后这个概念对于不同的行业和不同岗位的行业从业者来讲是不同的。大家都是从各自的角度来看待这个问题。就目前来看,主要有两个角度:一是服务的角度,二是技术的角度。

首先从服务的角度说说。腾讯老总马化腾曾经说过:“我们提供的服务的目标就是要成为互联网的水和电。”我觉得这个理念就是基于云计算提出的。一些大的公司或者企业,因为拥有大量的资源和强大的资源的整合能力,他们有能力通过规模效应,投入大量资金,部署大量资源,吸引大量人才,在整个社会中形成一个个资源高度集中的中心,然后通过互联网,将资源或者服务之间提供给需要服务的用户。这非常类似于我们平常使用水和电的模式。这是在计算机科学高速发展的过程中才有的模式,以前的社会不会有这样的条件去催化。可以说,这是把云计算提升到技术革命的高层概念,就像农业时代,工业革命,交通运输革命以及互联网革命这样的社会发展阶段。

举一个我使用云计算服务的例子。以前搞项目的时候,遇到处理海量数据,由于我喜欢用Python写代码,程序跑着跑着就会出现“out of memory”。然后,项目就没办法进行了,我就把导致项目终止的原因归结为:“没有大规模集群计算资源。”就算我把程序根据map reduce改写成可并行计算,我也没那么多电脑去搭集群啊。后来才发现自己out了。目前好多大公司早已经退出了自己的云计算服务,只需要简单的配置,就可以将自己的计算任务交给他们的集群去处理,而且只需要相对低廉的可以接受的价格。比如国外的亚马逊,国内的阿里云,美团云等等。大公司的这种提供计算资源的服务,就是我们所说的云计算的范畴。

然后从技术的角度说一下什么是云计算。以前我们社会中可以处理的数据相对很少,所以再难的计算任务只要交给一台配置较高的服务器,基本上都可以解决。随着信息化时代的到来,我们每天都在产生大量的数据,比如淘宝网交易数据啦,电信运营商每天的电话短信记录啊等等。那么,首先需要解决的一个问题就是:这么多的数据如何存储。

传统的数据库无法满足这样的需求。虽然目前已经有了一体化的商用大规模数据库服务器,但是价格昂贵,而且不易于升级扩容。所以,分布式存储就成了热门话题。分布式存储主要就是用多台价格相对低廉的普通PC在一定的机制下相互连接起来,共同完成海量数据的存储,并且很好地满足查询等需求。所以,分布式存储是云计算的基础,是首要考虑问题。

解决了分布式存储这个基础问题,我们就可以考虑如何去分析或者计算海量数据啦。其实本质和分布式存储也差不多,同样是使用很多普通的PC以一定即机制连接起来,每台PC完成计算或者分析任务中的一部分,然后把所有的PC的结果汇总,得到最后的结果。经典的分布式计算框架MapReduce就是这样的原理。当然其中的细节很是很复杂的,有兴趣的同学可以深入研究一下。

当然,涉及到云计算还有许许多多的技术。但是大概意思就是这样。

下面我们来总结一下。首先,“大数据”的到来提出了海量数据分析与处理的需求,然后就有了对应的“深度学习”这样的理论方法去更好地解决问题,那么有了解决方案,就需要“云计算”这种手段去实现理论方法,得出我们想要的结果。很简单,是不是?

最后我想谈一谈对我们学生的个人发展有指导意义的几点。

首先是:要不要学习“云计算”。我想说的是,只要你从事计算机相关领域的科研工作,就目前发展而言,就一定避不开它。高校的科研可能需要Spark这样的迭代计算分布式产品来精确求解,工业界可能更需要类似于Hadoop的产品去满足自己的特定业务需要。所以,如果你对它还有一定兴趣,就一定要多学习一下。

其次是:学习“云计算”要侧重哪些方面。我们看到好多互联网公司的校园招聘,很多岗位要求“熟悉Hadoop,MapReduce”。但是,这些岗位的侧重点可能不同。机器学习算法工程师或者数据挖掘工程师可能更侧重如何去使用这些云计算工具,比如如何将一个问题改写成可在Hadoop上并行计算的问题;而云计算研发工程师或者架构师是要根据公司业务需求自己开发出一个云计算工具的底层应用供别人使用。

最后是:怎么学得问题。我个人觉得,这是个因人而异的问题。有的人喜欢先配置好环境,搭建好平台,然后通过实例代码去一点点研究;有的人喜欢先学习相关理论,然后再去实践。然而不管怎样,我始终觉得,实践中的问题就要在实践中解决。所以如果有条件的话,一定要尽快开始参与到某个项目中去,一边学习一边解决问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  云计算 数据 技术