商业/消费级的云计算服务

纯粹的外行吐槽,希望也许能有点意思吧。

为什么要搞云

最近在写点简单的马特拉博(Matlab)程序,但是为了在各台电脑上都能方便访问,就要在各台电脑上安装庞大的软件套装,每次就很不爽,希望Mathworks能推出个便宜的超简版……另一个不爽的地方就是电脑大多数时间都处于空闲状态,敲代码嘛,但是当进行点随机模拟,或者解个方程组,就要颇等一会结果,而运算的时候,机器热就不说了,干点别的啥都会有点卡。

于是,我就有了这么个云计算的想法,对于一部分可能有一定运算量的程序,为啥不能提供这种消费级的云计算服务(商业性的大型机或者集群的计算业务是一直都有的,只不过门槛非常高)。一个程序可以分成两个部分,本地运算和云服务端,本地运算主要就处理点文本、排版、输入输出,并进行简单的计算,参考我对马特拉博的吐槽。但如果运算量比较大的时候(比如单机运行10分钟以上),程序会建议我把任务提交到服务器端完成,在这过程中,我的代码被版本控制标记好,我可以继续修改、扩充,如果超过估计的运算量还没得到结果,云端反馈给我初步的结果并询问是否继续运算(很有可能是我的垃圾代码写错了)。这个模式有两个优势,第一是对本地的运算能力要求大减,符合移动计算的低功耗,高续航,处处可访问的新形势;第二是大大提高了运算的速度,本来一台苦逼小破本要跑个一天的程序,服务器端可能五分钟就给搞定了,省时间就是省钱啊。

进一步,拜乔帮主所赐,我们有了便携、持久但性能弱小的平板,人们对其功能扩展的追求使得越来越多的任务都可以远程完成,现在消费级应用里最成熟的比如远程桌面、远程办公和在线游戏。这些应用本身实际上实在云端运行对应的程序,而传递的是压缩过的视频内容。我曾体验了一把Gaikai的在线游戏试玩,无需安装任何客户端,直接在浏览器里就可以完整体验最新的游戏,过程流畅,效果惊人,如果未来网络连接速度能稳步提高(Google Fiber 威武),游戏主机与发烧级电脑将逐步被淘汰。而且,我觉得未来的云游戏服务肯定能实现无缝延续游戏体验,让各种Loading去死。闲言少叙,回来说我惦记的云计算服务,这个对带宽的要求可就比游戏和远程桌面小多了。什么,你说你的数据很大,要传到服务器上去?啊,亲,云存储的普及肯定使得您的数据已经都在云上了啊。

怎么实现?

这么个想法很简单,就如同任何一个研究想法一样,都被大家各种做烂了。之前已经有了很多的实战案例,我自己就依稀记得在上世纪末互联网方兴未艾的时候,就已经有一个帮助寻找外星人的分布式计算程序曾一度流行(大约是SETI@HOME)。而这样的思路也被广为采用,据维基百科的不完全统计,有至少85个项目在运行中,主要是科学计算,包括生物学、物理学、天体物理、数学等复杂的计算项目,还有工程和艺术上的多媒体渲染,还有尝试破解密码和发行货币(Bitcoin )的。俺也没有仔细的看是不是有和我想法一致的,反正咱也不是专业认识,随便聊呗。

我的想法是提供一整套统一的解决方案,而不是百十个项目各干个的,而且,要走出象牙塔和极客圈,面向终端消费者提供商业服务。当然,聪明人这么多,十几年过去了还是一团散沙肯定有其内在的道理。我个人浅见,可能有以下几个困难:

  1. 分布式计算要求程序的可并行性。不过似乎大量的应用都是可并行的(或者局部可并行),比如3D渲染,比如随机模拟,比如全局的最优化过程,其实最直接的还是3D游戏,天生适合云计算啊。但是,传统的程序语言(好吧,我就学过Basic和C),使用的循环结构,常常不能区分运算是不是并行的,反正我的垃圾代码随机模拟也是用了个for循环……如果我这个问题琢磨的靠谱,那么,是不是就需要改变程序结构以及我们写程序的习惯。
  2. 待解决的问题要能够跨平台,既然要搞云计算,那么,要解决的问题本身就必须能拆解成不同系统都可以计算的形式,无论是破解密码,计算蛋白质结构,还是寻找外星人,都要能简化成一样的基本运算单元,这可能又是一个麻烦。
  3. 运行、管理这样一个系统要能盈利,至少不能大亏吧。是否能得到大赚特赚的软件公司支持是个问题,不过也不用太担心,有很多开源的项目可以做商业软件的替代品。比如GNU Octave就是屌丝山寨版的马特拉博。

我对于运营这样的一个系统,也有两个思路,也许能有点靠谱的元素。

模式1,巨头们出马,利用闲置运算能力赚点外快。

P2P的分布式运算,管理起来实在是太麻烦,最简单直接靠谱的办法还是利用现有的超级计算机模式,由某个巨头出马,推动云计算的普及,好了,我想的就是Google,谁让你有这么多服务器呢。虽说巨头们不断的修建新的数据中心是为了满足人民群众不断增长的物质、文化需求,但是就像电网供需有波动一样,巨头们也有打盹的时候吧,当系统没有满负荷的时候,捎带手的分点运算能力给乞丐们,不是也是一级浮屠么?

可以考虑购买计算时间和流量的计算方法,比如学Evernote,每个月5刀,提供50小时的标准计算时间。所谓一标准计算时间,就是一个运算量单位,比如本台电脑运算一个wPrime 1024要搞个1800秒,那么wPrime2048的运算量就大致是一个标准运算时间。于是,这就给了每个运算标出了时间(价格)。实际操作中,如果我提交了一个请求,运算量相当于1个标准运算时,如果系统正忙,就只能分出4台主机,但因为服务器运算能力猛,还是10分钟就算好了;反之,如果此时系统大量闲置(都在看奥运会开幕式),系统挥挥手,1000台主机上来干活,瞬间俺的问题就解决了。无论哪种情况,都比在我的老爷机上跑一个小时要愉快的多。即使程序不能实现并行计算,云端也可以选择一台更高主频的主机来加速运算。

如果不是巨头的话,云服务恐怕就太烧钱了。Onlive在上周差点就壮志未酬身先死……OUYA还在等你哪?也是因为Onlive差点破产关门,本文墨迹到了今天才开始写。当然,似乎亚马逊和谷歌都有提供商业云计算服务的计划,就像风靡全球的网络存储服务商Dropbox(景德镇在墙外,没在全球范围内)一样,初创公司也可以考虑批发巨头的运算服务,来转卖,就不知道能不能挣钱了。

模式2,P2P互助模式。

现有的分布式计算主要依赖于志愿者和非商业机构(比如研究所和大学),这种非营利机构显然缺乏吸引力,不能和发行货币的Bitcoin,以及分享苍老师的影片来竞争。孟修斯曾说过,”天下熙熙皆为利往。”无利不起早,如果开着电脑能挣钱,大家就会努力开着电脑,这样,这个体系才会扩大。像寻找外星人这种只想索取,不想付出的模式很难持久。而永恒不变的只有利益(悲摧的理性人假设)。

P2P是这样的一种模式,类似BT的上传、下载,每个用户既可以买入计算服务,也可以卖出计算服务,而根据电脑满载和闲置的时间差,所有人都会有帕利托福利改进。也就是说,我的电脑通过长时间的半负载运算来积累计算时间,而当我需要进行高负载运算的时候,来花费这些运算时间。入不敷出(比如笔记本开机时间有限),我乖乖付费,或者减少我在云上的运算量。如有富余,我则可以获得收益。是的,闲置的运算能力也许可以获得货币回报。这其实是一个简单的银行储蓄模型,通过时间空间上对资源的配置,就创造了新的价值。

运营这样的一个系统的公司怎么赚钱?

  • 向商业用户出售计算服务。对广大的个人用户而言,电脑的CPU和GPU性能在90%的时间都处于闲置状态,因此,他们都是计算时间的净储蓄者。这些闲置的运算能力显然可以出售给对运算量贪得无厌的商业用户。安全性和私密性也许是个问题,不过通过足够的分散和编译,99%的商业应用应该都能保证安全。对最高级别用户还可以考虑提供公司自建的安全计算网格。
  • 用户的服务订阅费。免费用户相当于自建主机,和网格上的其他用户交换数据(BT模式),主机要保持开启状态,流量消耗大,而计算时间自存自用,相当于原始的(轮会)融资模型,不能变现。收费用户直接和公司服务器交换数据,可以在提交请求后离线,也可以交易计算时间(进行某种形式的拍卖)。
  • 向用户支付利益(甚至是货币补偿)会鼓励用户更稳定的提供服务,而更多的用户提供计算时间,会压低交易的价格,使得购买者可以用更低的价格购买运算量,这是一个正反馈的过程。公司通过赚取交易差价和收取管理费获得回报。
  • 广告服务。对于用户的补偿,可以考虑积分换购的形式,进行商业推广。

如果运营费用的增长速度和系统的规模增速是线性的,那么我觉得此商业模式是有可能盈利的。

Advertisements
此条目发表在网络 IT, 原创, 商业, 小想法分类目录,贴了, 标签。将固定链接加入收藏夹。

One Response to 商业/消费级的云计算服务

  1. Pingback引用通告: 后知后觉之论文写作神器–ShareLaTex » 求之

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s