云计算的未来畅想(二)
01本文摘要
——————
人类未来最大的矛盾,是日益增长的数据处理与有限算力之间的矛盾,云计算的本质不就是计算资源与存储资源,如果最终用户那里也有可以使用的计算资源或者存储资源,为什么不能利用起来呢?
02作者简介
——————
拖雷 袋鼠云CEO
国内最早一批Oracle ACE Director,前阿里巴巴研究员,先后担任嗨淘、无线事业部、数据事业部资深总监,生活服务事业部总经理,以及阿里云事业群总裁助理。2015年离职后,做了半年独立天使投资人,2015年底创办袋鼠云。
03正文
——————
2016年10月,阿里云宣布全面下调中国区的云产品价格,最高降幅达50%,这是阿里云一年内的第17次下调价格,就在大家担心这次降价是否会引起云计算的价格战的时候,出现了一条有意思的新闻:
中国经济网评论员张捷在《我财经》节目中表示,这个现象反映出更深层次的问题,我国政策制定者要多想想。云计算是利用客户电脑的富裕资源去计算的,装了各种软件以后,原来做点文字处理,电脑的空闲度70%,忙度在30%,现在的基本上电脑忙度都是在70%以上,多出来的这些都是被用来做云计算还不知道。中国电脑多,有关的法律门槛限制是最少的,成本就低,国外的法律限制多,肯定成本就高。
张捷指出,以前利用客户电脑富余的能力,给别人做运算又不让客户完全知道,客户收不着费,也分不着钱,我们把它叫做流氓软件。现在叫做云计算了,外国有些地方会有法律的限制,必须给客户分钱,但是在中国有些公司用别人电脑的资源进行云服务的时候,并没有给用户分什么钱,这也是为什么成本低且能降价的原因。
——新闻内容来源于网络
懂的人有些笑笑也就过去了,部分人还会转发一下朋友圈,表达一下嘲讽;不懂的人也不知道咋回事,信以为真的应该也不少。
但是,回头一想,云计算的本质不就是计算资源与存储资源,如果最终用户那里也有可以使用的计算资源或者存储资源,为啥不利用起来呢?
不是不可以,我们先看两个概念:
-
分布式计算
分布式计算是一种计算方法,和集中式计算是相对的。
随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间。分布式计算将该应用分解成很多小部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
-
并行计算
并行计算或称平行计算是相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,及通过扩大问题求解规模,解决大型而复杂的计算问题。
所谓并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
可以看到,并行计算也是分布式计算,但是比分布式计算要求更高而已。
分布式计算求的是计算资源最大化,并行计算看重计算效率最高。如果只是想利用用户手中的客户端计算资源的分布式计算早就已经存在了。
SETI@home程序在用户的个人计算机上,通常在屏幕保护模式下或后台模式运行。它利用的是多余的处理器资源,不影响用户正常使用计算机。SETI@home项目自1999年5月17日开始正式运行。至2004年5月,累积进行了近5×10E21次浮点运算,处理了超过13亿个数据单元,截至 2005 年关闭之前,它已经吸引了 543 万用户,这些用户的电脑累积工作 243 万年,分析了大量积压数据。
补充:何为SETI@home ?
SETI@home是一项利用全球联网的计算机共同搜寻地外文明(SETI)的科学实验计划,由美国着名高等学府加州大学伯克利分校创立,中心平台设立在伯克利空间科学实验室(Space Sciences Laboratory, SSL)。志愿者可以通过运行一个免费程序下载并分析从射电望远镜传来的数据来加入这个项目。
更多了解,可以查看该项目官网 https://setiathome.berkeley.edu/
你看到了,只有用户自愿,并通过一个小程序加载一定的数据量,就可以做一些简单的分布式计算了,而且这里的分布式计算比大规模的集中式并行云计算发生的更早。
除了寻找外星人和引力波,还有更为脚踏实地的分布式计算项目。解决较为复杂的数学问题,例如:GIMPS(寻找最大的梅森素数)。研究寻找最为安全的密码系统,例如:RC-72(密码破解)。生物病理研究,例如:Folding@home(研究蛋白质折叠,误解,聚合及由此引起的相关疾病)。各种各样疾病的药物研究,例如:United Devices(寻找对抗癌症的有效的药物)。研究艾滋病的生理原理和相关药物的FightAIDS@home等等。
这种分布式计算技术的发展,也慢慢的形成标准化的平台服务,如BOINC,World Community Grid (简称WCG)等分布式计算平台,可以让更多的人感受到分布式计算的好处。
BOINC 是 Berkeley OpenInfrastructure for Network Computing 的首字母缩写,即伯克利开放式网络计算平台,是用于志愿计算和网格计算的开放的中间件系统。BOINC 最早就是为了支持 SETI@home 项目而开发的,之后逐渐成了最为主流的分布式计算平台,为众多的数学、物理、化学、生命科学、地球科学等学科类别的项目所使用。BOINC 的开发目的是为了帮助研究人员更方便地获得分布在世界各地的志愿者的计算资源。BOINC 的前景非常可观,有可能发展成一种业界标准,有了 BOINC 平台,分布式计算的开发和推广工作变得更加容易简便。而统一的界面,统一的方式将会大大方便新加入分布式计算的用户,而不必研究每个不同项目的参与方法、积分算法等。BOINC已经成熟,目前有上百个项目已经成功运行于BOINC平台之上。
World Community Grid (简称WCG)是一个分布式计算平台,它允许您参与到多个项目的研究中去。研究组织可以在项目申请页面提交自己的研究课题以便从 World Community Grid 处获得免费的计算资源。 World Community Grid利用计算机的闲置计算能力,来进行一些有益于全人类的工程。借助于屏幕保护程序,网格技术将更加易用、安全、自由。当您需要使用您的计算机时,网格计算软件将自动停止运行直到您的计算机再次进入闲置状态。它是一项全球博爱事业(由 IBM 和一些科研、慈善、教育组织发起),将个人和商业计算机中未使用的计算能力用于博爱事业。
这类分布式计算基本上有一些共同的特性,比如任务容易切片、下发与回收,对最终计算时间要求没那么高,计算之间的实时性、关联性并不强,最后通过客户端的程序(如屏保)来实现在个人电脑上的分布式计算,而不是真正的强关联,实时性高的并行计算。目前以上的分布式计算都是公益性质的,也就是说,并没有拿用户的计算资源来赚取利润。
阿里云2017年全民云计算活动
但是,目前的云计算,包括AWS,阿里云等等,提供的是并行云计算,追求的不仅仅是分布式,而且还有运行效率保障,运行环境的高可用等等。
这种分布式计算有没有可能性发展成为目前的并行云计算呢?随着技术的进步,理论上可以解决这样的问题,只是用户是否愿意,解决这个问题的技术是否成熟,成本是否划算。
如果技术的进步,能利用用户手里的计算与存储资源做到真正的并行计算,就可以把全世界的计算资源有效的利用起来,从而实现全民云计算。当然,这种模式的基础还是需要最终用户的许可,如果最终用户在不知情的情况下被利用,那往往就真是流氓软件,或者是病毒了,如被用于DoS攻击的僵尸电脑(Zombie computer),简称“僵尸(zombie)”,有些人称之为“肉鸡”,接入互联网的电脑被病毒感染后,受控于黑客,可以随时按照黑客的指令展开拒绝服务(DoS)攻击或发送垃圾信息。
我们再思考一个问题,为什么现在的云计算厂商要提供可扩展的公共云计算服务,甚至我们刚才还在设想利用所有的可利用的计算与存储资源,实现真正的全民云计算?
原因只有一个,担心本地计算资源的不够,甚至是本地私有云,资源也是有上限的,而公共云计算资源,甚至全民云计算资源是极其丰富并且是弹性可扩展的。
就算我们现在造出了计算能力与存储能力足够强大的计算机,感觉只要他的计算能力与存储能力足够强大,就可以不需要公共云计算了。这是一个非常美好的愿景,但是,不要忘记了一件事情,计算与存储的需求也是无限的往上扩张的。哪一天,当一台计算机,甚至一个本地集群(私有云)也无法无法满足计算与存储需求的时候,最终还会回到弹性计算的公共云计算的道路上来!
云计算与大数据时代,数据也会越来越多,特别是在数据指数级爆发的时候,计算也会越来越复杂。
大刘在《诗云》描述出来的神级文明,想保存用汉语写下来的所有可能的诗句,就几乎不得不耗费掉整个太阳,以及吞食帝国所有的资源。再比如,我们在未来的一个时间,为了能复制或者是复活人类,我们肯定会想存储人身上每个原子的排布位置!就跟人的欲望是无止境的一样,我们对计算与存储的需求同样如此,我从不相信有限的资源能解决无限的需求,而公共云计算才能解决弹性扩展。
公共云计算必将长久存在,而且是未来主要的模式。最终两点总结:
1、将数据逆向发送给客户终端,利用客户端剩余计算能力完成更庞大的分布式计算并不是不可能,已经在很多场合在使用了,随着技术的进步,这种模式将会越来越广泛的用于一些专业化的计算,甚至并行云计算,从而实现真正的全民云计算。目前是解决日益不足的计算与存储资源的问题。
2、就算存在私有云的可能性,与公共云的连接也必不可少,也就是至少”混合云“模式是一个可预期的长期存在。就算计算速度与存储技术的快速发展,也不要指望私有云能承载所有的计算需求,因为计算与存储需求本身也是在快速增长的,公共云计算必不可少,而且是未来趋势。
最后更新:2017-06-15 11:02:05