技术开发 频道

开源云计算架构介绍(三)

  【IT168 评论】

        第3章 实现 IaaS 必须考虑的架构问题

  不断发展的应用程序架构

  正如我们已经说明的:云计算是当前趋势和非常好的做法的自然延伸,从架构观点看云计算也是如此。再次强调,云计算并非新生事物,不过在其实现中,云计算改变我们所做的一切工作。

  变革架构的途径

  在 20 世纪 90 年代,人们谈论的话题是关于如何把一个应用程序分解成各种组件,然后是如何将这些组件部署到不同的服务器上,以便优化非功能要求,包括可扩展性、可用性、易管理性和安全性。现在,我们所维持的是一个分解式应用程序架构,同时实际部署到一个利用虚拟化的整合式架构上。

  云计算通过提供一种有计划地部署应用程序架构的方法来继续这一趋势,最终实现一个动态数据中心的承诺。在云计算中,效率受到高度重视;如果无法快速而有计划地部署应用程序架构,那么该应用程序就可能不是一个适合于此种模式的应用程序。

  变革应用程序设计

  过去,应用程序设计为通过垂直扩展来处理大型工作负载。将更多处理器和内存安装在一个邮件服务器上来处理更大的流量。扩展数据中心服务器以提高吞吐量。在超级计算机上运行高性能计算作业。

  从高度可扩展的对称型多处理器迁移到价格低廉但可扩展性差的 x86 架构服务器已经对应用程序设计产生了影响。开发人员并不期望应用程序运行于高度可扩展的服务器,而是重构其应用程序,以便能够在多个服务器之间进行水平扩展。此应用程序重构并不总是容易进行的,因为应用程序及其数据都必须进行设计,这样才能把处理和数据同时分解成为较小的数据块。这一已有架构趋势已经成为推广云计算的一个关键因素。这一趋势的示例包括:

     高性能计算

  高性能计算 (HPC) 工作负荷已经在光金属 (Bare-Metal) 计算网格上运行有一段时间了,这是通过应用程序重构实现的。例如,科学家已经找到为像 3D 气候建模这样的应用程序削减数据的方法,因而可以在许多服务器上展开应用程序。网格计算 (Grid Computing) 是云计算的“前辈”,这是因为网格计算使用工具来供应和管理多架物理服务器,这样,这些服务器就可以共同配合来解决一个问题。由于具有极高的计算、互处理通信和 I/O 需求,HPC 工作负荷非常适合于作为服务提供基础设施的云,尤其是提供对 I/O 设备进行更直接访问的光金属服务器或 Type I 虚拟机。

  数据库管理系统

  数据库管理系统通过水平扩展数据库服务器并在其之间对表进行分区,已经适应于在云环境中运行。此技术 [称为“分片”(Sharding)] 使多个数据库软件实例 (通常是 MySQL 软件) 可以在云环境中扩展性能。应用程序现在不是访问单个中央数据库,而是访问多个数据库实例中的一个,具体取决于哪个“碎片”(Shard) 包含所需数据 (图 7)。

云计算架构介绍(三)

  CPU 密集型处理

  执行像帧渲染 (Frame Rendering) 这样的活动的应用程序已经设计为不是为每个帧创建一个新线程,而是创建一个单独的虚拟机来渲染每个帧,因而通过水平扩展来提高性能。

  数据密集型处理

  开放源社区正在开发一般化工具,这些工具可帮助处理大量数据,然后将结果聚集到相应的进程中。例如,Hadoop 就是 MapReduce 问题的一种开放源实现,这种实现将“工人”(Worker) 虚拟机与他们所需的数据的部署集合在一起。

0
相关文章