云计算的演进和挑战性研究问题
云计算面临的挑战
作为一项有望大幅降低成本的新兴技术,云计算正日益受到一系列众多公司的追捧。但是同时也随之产生了一系列新的挑战性问题。
首先,云计算中一个跨领域问题就是供应商要在功能和开发代价上作权衡。目前,早期的云计算提供的API比传统的数据库系统的限制多得多。他们只提供一个极小化的查询语言和有限的一致性保证。这给开发带来更多的编程负担,但是允许服务供应商提供更多的预期服务和服务级别协议,这对于一个功能完备的SQL数据库也是很难达到的。在现有的云计算基础上,为了实现只做较少改动而使其功能更完备,我们需要更多的经验和做更多的工作。
其次,易管理性在云计算中极其重要,这也带来新的挑战。和传统的系统相比,受有限的人工干涉、工作负载变化幅度大和多种多样的共享设备这三个因素的影响,云计算中管理更加复杂。大多数情况下,没有协助基于云的应用开发的数据库管理员和系统管理员。甚至是单一用户的负载随时间都会发生大幅度的变化。对于一个偶尔会用到比平常高出几个数量级的资源的客户来说,云计算的可伸缩供应是经济的。本来混合负载就很难调优,但在这种情况下调优是不可避免的。同时,服务调优主要依赖共享设备的共享方式。例如Amazon公司的EC2用硬件级别上的虚拟机作为编程的接口。而salesforce.com公司则在一个数据库系统上实现了具有多种独立模式的“多租户”虚拟机。其他的虚拟解决方案也是可行的。在负载之上平台之下,每一种方案都有不同的可见性和不同的控制彼此的能力。这些变化需要我们重新考虑跨层资源管理的传统角色和职责。
上世纪 90年代末,研究学者们开始研究自我管理技术。对易管理性的需求加速了这一技术的发展。云计算系统需要自适应的在线技术,反过来系统中新的架构和API(包括区别与传统SQL语言和事务语义的灵活性)又促进了颠覆性的自适应方法的发展。
接着,云计算的庞大规模同样带来了新的挑战。现有的SQL数据库不能简单地处理放置在云中的成千上万的数据。在存储方面,是用不同的事务实现技术,还是用不同的存储技术,或者二者都用来解决一些限制性问题还不确定。在这个问题上,目前在数据库领域内有很多提议。现有的云计算已经开始探索一些简单的实用性方法,但是我们仍需要做更多的工作来融合现有的云计算机制文化中的好思想。就查询处理和优化而言,如果搜索一个涉及到数千条处理的计划空间需要花费很长时间,那么这是不可行的,所以需要在计划空间或搜索上设限。最后如何在云环境中编程还尚不清楚。我们需要更多的了解云计算的现实问题(包括性能限制和应用需求)来帮助设计。
此外,在云基础架构中,物理资源共享带来新的数据安全和隐私危机。他们不能再依靠机器或网络的物理边界得到保障。因此云计算为合成和加速这方面现有的工作提供了丰富的机遇。要想成功关键在于我们能否准确瞄准云的应用场景以及能否准确把握服务供应商和顾客的实际动向。
最后,随着云计算越来越流行,预计会有新的应用场景出现,也会带来新的挑战。例如,我们预测会出现一些需要预载大量数据集(像股票价格、天气历史数据以及网上检索等)的特殊服务。从私有和公共环境中获取有用信息引起人们越来越多的注意。这样就产生新的问题:我们需要从结构化、半结构化或非结构的异构数据中提取出有用信息。同时,这也表明跨“云”服务必然会出现。在科学数据网格计算中,这个问题已经很普及。即便在一门学科中,也会需要大量位于不同地理位置的共享数据服务器。大体上,在大多数企业亦是如此。而联合云架构不会降低只会增加问题的难度。