本周我在纳帕参加了HotOS 2011年会--关于操作系统的最高级研讨会。本次年会是第24次--它开始于1987年的关于工作站操作系统的研讨。关于年会的更多的信息可在即将提交的博客中获得,此时此刻,我想就昨天分组会议上充满活力的讨论发表一点看法。
这个分组由以下成员组成:斯坦福大学的孟德尔.罗森布拉姆(虚拟机),微软研究院的丽贝卡.艾萨克,谷歌的约翰.威尔克斯,加州伯克利分校的艾恩.史杜尔卡。这个分组的指定讨论主题是关于云计算理论研究与面临的工业现实之间的差距。这个讨论的产生部分地缘于关于云计算的理论研究团体向年会提交的大量论文。讨论组感到有些论文正尝试解决错误的问题,或者对于现实世界里的云计算做出了不正确的假定。我们想,假定大学无法建造一定规模和复杂度的真实世界的云计算平台前提下,听听理论研究者和工业的代表来谈论理论研究者希望怎样去研究云计算,这会是很有趣的事情。令人担心的是,理论研究将会降低去解决外围的细小问题,或者提出玩具解决方案。
如我所见,最大的挑战是,在大学环境中几乎不可能建造关于云计算的基础设施情况下,如何去鼓励励理论研究者去做关于云计算的有趣和相关的工作。约翰.威尔克斯表达了一个观点,他不想再看到有一篇论文阐释在集群测试上的10%的性能改进,他是对的----对于理论研究来说这是一个错误的问题。不是因为10%的改进毫无用处,也不是集群测试是一个糟糕的平台,而是因为这些问题工业制造方面正在得以解决。我的观点看来,理论研究最好的角色是开启新的领域和比当前产业看得更远。但是这经常与关于“工业相关”理论研究的渴望格格不入,这和从工业获取赞助一样。我常常觉得学者陷入了做事情的陷阱中,就像在一家公司中会步入的一样。
HotOS辩论大部分是围绕产业的。理论划分和它的大部分是目标,这在我前期的提交的关于的这个主题的博客中已经提到。提摩太.罗斯科认为,学术界的作用是揭示复杂的问题,获得理解之光,而不仅仅是工程师的解决方案。我同意这一点。有时在谷歌,我觉得我们这么匆忙地执行,以致我们不花时间去深入的理解问题:建立一些能工作的事物,然后转移到下一个问题。当然,你必须在产业中快速移动。这个步伐和理论是不一样的,一个博士学位的学生要花费多年的时间集中在一个问题,才能写出论文来。
我们现在还没有,但正在努力开拓云计算的基础设施,来进行理论研究。OpenCirrus是一个测试平台,由惠普支持,英特尔和雅虎拥有超过10,000个内核,学者可以利用,进行系统的研究。微软已经开放了Azure的云计算平台进行理论研究。在HotOS研讨会上,当被问及是否有人利用这一点,只有一个人举手 -- 这实在是不幸的。 (我的理论是,学术界在规划C#和Visual Studio有过敏反应,这是太糟糕了,因为这是一个真正伟大的平台,如果你可以克服的工具链的话。)谷歌将通过其Exacycle方案提供一亿核心工作时间,以及和亚马逊有一个研究资助计划。
提供基础设施,只有一个解决方案的一部分。知道要致力于什么问题,是另一部分。在HotOS,很多人感叹的是,像谷歌这样的公司,他们是多么神秘,这很难学习什么是来自外部的“真正的”挑战。我的答案是花时间在谷歌作为访问学者,并派送您的学生做实习。尽管它可能不会导致论文的出版,我可以保证,您将在云计算的难题中学习到很多,对理论工作来说,那里存在巨大的机会。(该死,在谷歌的头几天,我的心快被爆炸了。这就像服用红色药丸似的。)
在云计算的理论研究的成熟领域,有几件事情起跳入我的脑海:
·理解和预测不同规模上的性能,伴随着不确定性的工作量和频繁的节点故障。
·管理能力差异很大、偶尔中断,限制跨数据中心的链接在网络上的多个数据中心的工作量。
·建立故障恢复机制,这对大规模的相关的故障是健壮的。(这就是几个星期前击垮在亚马逊EC2的。)
·调试大规模的云计算应用:工具收集,可视化,并检查各地成千上万的内核正在运行的作业状态。
·管理对一个大型的代码库的依赖,这个代码库依靠广泛的分布式服务,如Chubby和GFS。
·处理大规模的计算能力的升级以及持续大规模故障,而无需完全关闭您服务,一切都依赖于它。