技术开发 频道

浅析云计算分布式并行计算:平台应用

  分布式技术的应用

  虚拟化(Virtualization)是云计算的基石。也就是说企业实现私有云的第一步就是服务器基础架构进行虚拟化。基础设施虚拟化之后,接下来就是要将现有应用迁移到虚拟环境中。云计算最重要的概念之一就是可伸缩性,实现它的关键则是虚拟化、虚拟化就是在一台共享计算机上聚集多个操作系统和应用程序,以便更好地利用服务器。当一个服务器负载超荷时,可以将其中一个操作系统的一个实例(以及它的应用程序)迁移到一个新的、不相对闲置的服务器上。

浅析云计算分布式并行计算:平台应用
▲图8 实现云计算步骤

  Dryad可以结合Hyper-V(Windows Server 2008的一个关键组成部分)虚拟化技术,可以实现TB级别的数据的在线迁移。中小型企业也可以针对企业内部小型群集服务器进行分布式应用系统编程,以及制定私有云开发与应用解决方案等设计。Windows Azure是微软公有云非常好的解决方案,但是目前由于各种原因为时过早。使用现有Windows第三方产品实现私有云,花费成本却很大。然而Dryad技术却给我们带来了不错的折中的选择,当我们基于Windows Server平台运行应用系统或者网站时,便可以基于Dryad分布式架构来开发与设计实现。当公有云时机成熟和各种条件完备时,系统很轻易的升级到公有云,企业而无需花费太多成本。

  写在最后

  通过以上介绍,我们已经了解到Dryad是实现构建微软云计算基础设施重要核心技术之一。云计算可以看成是网络计算与虚拟化技术的结合。利用网络的分布式计算能力将各种IT资源筑成一个资源池,然后结合成熟的存储虚拟化和服务虚拟化技术,让用户实时透明地监控和调配资源。我们也体会到Dryad的诸多优点,如DryadLINQ具有声明式编程并将操作的对象封装为.NET类方便数据操作、自动并行化、Visual Studio IDE和.Net类库集成、自动序列化和任务图的优化(静态和动态(主要通过Dryad API实现))、对Join进行了优化,得到了比BigTable+MapReduee更快的Join速率和更易用的数据操作方式等。不过,Dryad和DryadLINQ也同样具有局限性。它更适用于批处理任务,而不适用于需要快速响应的任务;这个数据模型更适用于处理流式访问,而不是随机访问。虽然目前Dryad还是测试阶段尚未大规模普及,但是微软已经在AdCenter的生产系统中使用Dryad。

  与 MapReduce不同的是DryadLINQ使用的是.NET的LINQ查询语言模型,并且Dryad是针对运行Windows HPC Server的计算机集群设计,而非兼顾Linux,而目前Apache的Hadoop环境只支持Linux。目前而言,高性能计算市场被Linux所占领,但是笔者相信Dryad平台在将来一定具有很广泛的发展前景,尤其对.NET开发人员来说也是一次很重要的技术革新机遇。

0
相关文章