本文是一篇硕士论文,硕士论文关键词是标示文献关建主题内容,但未经规范处理的主题词。关键词是为了文献标引工作,从论文中选取出来,用以表示全文主要内容信息款目的单词或术语。一篇论文可选取3~8个词作为关键词。(以上内容来自百度百科)今天为大家推荐一篇硕士论文,供大家参考。
1 绪 论
云计算是现在主流信息技术的重要领域,基础设施即服务(laaS)作为云计算三层架构的基础层,为用户提供了计算、存储和网络等基础设施服务。越来越多的用户选择在云端基础设施上部署应用,这些云平台上应用软件通常包含多种软件组件,及组件间存在的依赖关系。随着组件数量的增加,整个云平台上应用软件的管理开销也会随之迅速升高。主流的应用管理技术缺乏对复杂应用的部署和管理支持,限制了自身的应用范围。为了高效地创建云平台上应用软件并且能够进行自动化的部署和管理,应用中的组件和相互关系必须有标准的高层建模方式。我们的工作提出了一种基于模型的云平台上应用软件自动化部署和管理方法,利用模型定义云平台上应用软件,并通过对运行阶段模型的操作同步地部署和管理云平台上应用软件。我们利用该方法在多种云平台上实现了对大型分布式系统的部署和管理,验证了该方法的有效性。本章介绍本文的研究背景,研究现状和本文工作。
1.1 研究背景与意义
工业界和学术界对 IT 系统的使用需求在不断上升,随之而来的是与日俱增的运维管理成本,每当有新的系统和技术被引入都会导致管理的复杂程度显著上升。自动化 IT 配置管理技术和基础设施外包能够有效地解决这个问题,云计算正是这些方法的支撑技术。近年来,云计算技术的兴起引入了一种新的方法使用和提供基础设施服务。如公共设施般的按实际使用付费概念就和今天的我们使用水电煤气一样。人们不用自己管理计算、网络、存储这样的 IT 资源,而是直接将 IT 系统托管在云平台上,这样的 IT 系统也就成为了云平台上应用软件的组合,免除了耗费在处理复杂的部署、管理和维护事务上的精力。云计算被寄予厚望,人们希望藉此契机改变自己使用和思考 IT 系统的方式,甚至再也不用维护自己的基础设施和应用,而是专注在业务本身。从使用者的角度来看,自动化地管理云平台上应用软件是进行具体业务时至关重要的一环,因为从资金和时间方面考虑,管理和维护云平台上应用软件已经成为了最大的成本因素之一。然而云平台上应用软件不仅仅是底层的基础设施,还包括了上层的应用系统。这些应用系统往往由多种软件组件组合而成,具有复杂的配置和相互关系。部署和管理云平台上应用软件仍然需要耗费大量的资金和时间,如何自助、快速和可扩展地部署和管理云平台上应用软件成为云计算领域的重要课题。
...........
1.2国内外研究现状
目前云平台上应用软件的部署和管理己有一些学术界的研究工作与成果。文献[17]提出使用组件描述语言(Component Description Language,CDL)描述云平台上应用软件中的组件的配置方法,使用期望状态描述语言(Desired State Description Language,DSDL)描述所有组件的期望运行状态,该方法受限于这两种语言语义不丰富的缺点,无法对于云平台上应用软件的组件状态和依赖关系进行精确描述,也缺乏对运行时云平台上应用软件的高层抽象和实时管理。文献[35]使用拓扑模板和管理规划(Management Plan)来部署和管理云平台上应用软件,拓扑模板包括节点模板和关系模板,分别描述了组件和组件间关系,最后通过调用管理规划生成模板的实例来部署云平台上应用软件,该方法使用拓扑模板实现了高层抽象,但是这种模板缺乏对约束的定义和检查,无法在部署前发现错误,也无法实时映射出云平台上应用软件的状态并作出更改,是一种批处理式的部署和管理方法。工业界也己经有了一些相关项目实现了对云平台上应用软件的自动化部署,AWS 的 Cloud Formation 项目对虚拟硬件资源做了简单的抽象,用户可使用模板通过参数的形式生成不同的云端资源,OpenStack 的 Heat 项目和 Cloud Formation 类似,参照了 TOSCA 提出的标准对虚拟硬件资源做了简单的抽象,同时提供了对参数的约束和资源动态扩展功能。这两个项目的共同缺点是缺乏对软件组件的抽象,部署应用只能通过在对应虚拟机内直接插入部署脚本的方式实现,这种方式缺乏兼容性和可扩展性,而且它们的定义方式只适用于自身平台,无法推广到其他云平台中使用。基于模型对运行系统进行实时管理在学术界己经有了一些工作和成果。文献[39]通过运行阶段模型对云端虚拟硬件资源进行部署和管理,通过模型合成和模型转换,可同时对多种云平台中的虚拟硬件资源进行管理,但这种方法缺乏对部署和管理云平台上应用软件的支持。
.........
2 关键技术分析
本章介绍本文研究内容相关的研究工作和关键技术。我们的工作基于云计算IaaS 平台、配置管理技术和模型驱动工程技术完成,分别对这三个方面的相关工作进行介绍。最后介绍了学术界和工业界在云应用管理方面的工作和成果。
2.1 IaaS 平台
OpenStack 是一个免费的开源云计算软件平台,用户们主要用 OpenStack 来搭建自己的私有云服务。OpenStack 包括了一系列互相关联的项目,这些项目被用于控制数据中心内部的计算、存储、网络资源的资源池,用户能通过网页用户界面、命令行工具、或者 RESTAPI 来管理这些资源。Openstack 包含了一系列组成项目,如图 2.1 所示,OpenStack Compute(Nova)是一个计算资源控制项目,是 IaaS 系统的主要组成部分,这个项目被设计用于管理计算资源池,并且能够和市场上大部分虚拟化技术相兼容,包括物理计算资源和高性能设置。KVM、VMware 和 Xen 是虚拟化技术的常用选择,同时也包括了Hyper-V 和 Linux 容器。OpenStack Networking(Neutron)是一个管理网络资源的系统,OpenStack Networking 保证了网络不会成为云计算部署中的瓶颈或限制因素,并给予了用户网络动态配置能力。OpenStack Networking 为不同的应用和用户组提供了多种网络模型。标准的网络模型包括 Flat Network 和 VLAN,用于隔离用户流量。OpenStack Networking 管理虚拟 IP 地址,允许使用用户指定的静态 IP 地址或者使用 DHCP。Floating IP 的使用能够引导网络流量通过数据中心接通外部网络。OpenStack Ceilometer 项目提供了单点连接的统计服务,该服务包括了所有现存的OpenStack 组件,提供用户定制的计数器来实现数据统计。
.........
2.2 模型驱动开发
模型驱动开发是一种以模型作为主要工件的高层级抽象的开发方法,模型在工具的支持下,作为核心资产被转换成代码或者可运行配置。现在软件业存在多种模型驱动的开发方法。在过去多年,软件开发面临了多个挑战,新的需求和存在系统不断增长,系统也变得越来越复杂,以至于我们很难及时的构建它们。为了解决这些问题,就出现了很多新的方法,其中最突出的一个就是模型驱动开发。模型驱动软件开发代表了一套理论和工业化软件开发的方法框架,在软件开发全生命周期中系统的使用模型作为主要工件,它主要为了解决软件的两个根本危机:复杂性和变更能力。模型驱动工程是一种软件开发方法,开发人员创建系统的抽象模型后通过模型相关技术将其转化为具体实现。在模型驱动工程中,模型是开发的首要工件,开发人员将关法的重点从底层代码转移到上层系统模型中,提升了复杂系统的抽象层次。模型是系统和具体实现之间的桥梁,同一系统的不同模型能够让我们从不同的视角去看待和实现系统。模型驱动工程中最关心的是两类模型:开发模型和运行阶段模型。开发模型是在代码层面之上的抽象,运行阶段模型呈现了运行时系统在特定层面的视图,是系统在运行阶段的抽象。
.........
3云平台上应用软件平台无关策略分析设计.............15
3.1当前领域短板.........15
3.2平台无关性分析.....15
3.3平台无关支撑技术...............16
3.3.1 不同层级模型描述........16
3.3.2 结合模型的云平台管理..............18
3.4云平台上软件平台无关策略.............19
3.5本章小结.................20
4云平台上应用软件平台无关策略实现.........22
4.1框架结构.................22
4.2相关实例.................23
4.3模型抽象.................25
4.3.1 元模型..............25
4.3.2 访问模型..........31
4.4云平台上应用软件动态自适应.........35
4.5本章小结.................39
5 Hadoop管理系统的研究与评估.........40#p#分页标题#e#
5.1管理系统架构介绍...............40
5.2模型构建.................41
5.3基础功能评估.........42
5.4扩展功能评估.........44
5.5总体评价.................50
5.6本章小结.................51
5 Hadoop 管理系统的研究与评估
本章将以 Hadoop 的管理系统为例进一步分析云平台上应用软件无关策略。在对 Hadoop 应用进行建模后进行基础功能和扩展功能的评估,其中扩展功能评估包括了增加组件和合成组件。
5.1 管理系统架构介绍
管理系统使用支持数据密集型分布式的开源软件框架 Hadoop。该框架支持在商业硬件构建的大型集群上运行应用程序,核心是存储(Hadoop Distributed FileSystem,HDFS)和计算(MapReduce)。基于 Hadoop 的管理系统遵循“主/从”架构。如图 5.1 所示,主要角色有NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker 组成。其中 NameNode,Secondary NameNode,JobTracker 运行在 Master 节点上,DataNode和 TaskTracker 运行在 Slave 节点上。NameNode 是 HDFS 的守护程序,负责记录文件是如何分割成数据块的,以及这些数据块被存储到哪些数据节点上,它的功能是对内存及 I/O 进行集中管理。集群中每个从服务器都运行一个 DataNode 后台程序,后台程序负责把 HDFS 数据块读写到本地文件系统,需要读写数据时,由NameNode 告诉客户端去哪个 DataNode 进行具体的读写操作。SecondaryNameNode是一个用来监控HDFS状态的辅助后台程序,如果NameNode发生问题,可以使用 Secondary NameNode 作为备用的 NameNode。JobTracker 后台程序用来连接应用程序与 Hadoop,用户应用提交到集群后,由 JobTracker 决定哪个文件处理哪个 task 执行,一旦某个 task 失败,JobTracker 会自动开启这个 task。TaskTracker负责存储数据的 DataNode 相结合,位于从节点,负责各自的 task。该系统要求运行于 Java Runtime Environment(JRE)1.7 及以上,因而所有节点都需要安装配置Java。
.........
总结
本文介绍和分析了现有不同层级的云计算服务。针对现有云平台上应用软件配置部署管理技术的行业短板,提出一种基于平台无关模型的方法,通过定义云平台上应用软件的元模型和访问模型,并结合云平台工具包和软件工具包相形成比较引擎,通过比较引擎将开发人员对运行阶段模型的操作同步到云平台上应用软件上,实现对其的实时操控管理。本文在 Web 应用和 Hadoop 分布式应用上运用所提出的方法进行了实验,论证了该方法的有效性和先进性。本文第一章介绍了云平台上应用软件、应用部署管理和模型驱动工程等技术背景和相关概念第二章,主要介绍了与本文研究内容相关的研究工作和关键技术,首先介绍了云计算平台和配置管理工具的相关技术,然后介绍了模型驱动工程相关研究中的重点内容,最后介绍了学术界和工业界在云平台上应用软件管理方面的工作和成果。第三章,对现有工作和技术进行分析,研究云平台上应用软件管理方面的关键问题和关键技术,提出解决方案并给出总体功能。第四章,主要介绍了云平台上应用软件管理系统的实现过程,包括构建元模型、访问模型和开发软件工具包,生成支持实时操纵运行阶段模型的比较引擎,并实现了图形用户界面。第五章,Hadoop 分布式应用为实例,运用我们提出的方法构建了相应管理系统,并展示了基础功能和扩展功能,验证了我们的方法的有效性和先进性。本文工作的主要贡献总结如下:阐述云计算技术和模型驱动工程技术的研究现状,结合相关的技术与理论,分析当前云平台上应用软件开发配置部署管理所面临的问题。针对云平台上应用软件的复杂性,本文提出了一种云平台上应用软件的抽象建模方法。这种方法基于元模型和访问模型,对云平台上应用软件的虚拟化硬件资源,分布式组件和组件之间的相互关系以及对应的管理操作,提取了应用软件管理过程中的主要元素,使得繁琐重复的底层实现与高层级业务逻辑管理互相分离。其中,应用软件的组件可以被扩展或被合成。修改已经部署在云平台上的应用软件是部署管理的核心要求,本文提出一种通过运行阶段模型对云平台上应用软件做出修改的机制。即通过比较引擎将运行阶段模型上发生的操作同步到云平台上应用软件中去,详细的执行结果经过比较引擎反馈给运行阶段模型,从而实现对云平台上应用软件的即时管理控制。
..........
参考文献(略)