




已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密级: 硕士学位论文 基于模板的云应用部署引擎的设计与实现 作者姓名: 周勇 指导教师: 张文博 副研究员 学位类别: 工学硕士 学科专业: 计算机软件与理论 培养单位: 2015年 04月The Design and Implementation of a Template-based Web Application Deployment Engine for Cloud Computing PlatformByYao SijiaA Dissertation Submitted toUniversity of Chinese Academy of SciencesFor the degree ofIn partial fulfillment of the requirementMaster of Computer Software and TheoryInstitute of Software, Chinese Academy of SciencesApril, 2015独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明。签名:_ 日期:_关于论文使用授权的说明本人完全了解软件研究所有关保留、使用学位论文的规定,即:软件研究所有权保留送交论文的复印件,允许论文被查阅和借阅;软件研究所可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。(保密的论文在解密后应遵守此规定)签名:_ 导师签名:_ 日期:_摘要基于模板的云应用部署引擎的设计与实现摘 要随着云计算的快速发展,虚拟化逐渐成为构建Web应用运行支撑环境的主流技术。实现应用从物理机到虚拟机的迁移,企业可以大幅降低服务器成本并提升管理的灵活度,因而越来越多的企业和机构正计划将其Web应用部署到虚拟化平台上,如何自动和高效地实现应用向虚拟化环境的部署已成为学术界和工业界的研究热点。面向虚拟化环境的Web应用部署面临很大的技术挑战,特别是对于复杂应用,会涉及大量的人工操作并可能引入很多失误,比如一个Web应用正常运行需要依赖中间件、语言环境、数据库、操作系统等多种配置环境,每种环境又有厂商、版本号等方面的差异,且它们之间可能存在着兼容性问题;同时,繁杂的配置也使得Web应用难以自动接受弹性计算的动态管理。针对上述问题,本文提出了一种基于模板的云应用部署引擎设计,通过预定义模板将Web应用所需的各种配置环境进行封装,并设计了基于人工神经网络模型的可定制化弹性计算管理策略,从而实现Web应用在虚拟化环境下的自动化部署与弹性管理。基于以上设计,本文结合实际的虚拟化平台设计并实现了一个云应用部署引擎OADE(Once Application Deploy Engine)。应用实例表明,基于OADE引擎可大幅简化Web应用向虚拟化平台部署的流程,有效降低应用部署时间,并显著提高了应用管理的灵活度。关键词:云计算,模板,应用部署,弹性管理65摘要AbstractThe Design and Implementation of a Template-based Web Application Deployment Engine for Cloud Computing Platform AbstractWith the rapid development of cloud computing, virtualization has become the main way of constructing the operating environment of Web applications. Transplanting these applications from physical machines to virtual ones, enterprises can reduce server costs and enjoy flexible management. Lots of enterprises and organizations are planning to deploy their Web applications to virtualized environment and the automation and efficiency of such deployment has become the focus of both the academia and industry. However, transplanting Web applications, especially complex ones, to a virtualized environment still have some challenges. Because there are so many configuration items to be handled that there remains a high probability to introduce kinds of operation errors. For example, a Web application may depend on middleware, runtime environment, database, operating system, etc. Each of them has different categories and various versions, which may be incompatible with each other after transplantation. At the same time, such a complex procedure makes the Web applications difficult to enjoy the flexible management of elastic computing.In view of this, we propose a template-based method to transplant Web applications to cloud environment. In our method, all the configurations of an application are packed into a pre-defined template, which can be deployed automatically and integrally to a virtualization environment. Whats more, we design a customizable elastic computing management strategy based on Artificial Neural Network model. A supporting deployment engine, which is named OADE (Once Application Deploy Engine), is designed and implemented on a practical cloud platform. Case studies show that the procedures of Web application deployment are much simplified, the time needed is reduced greatly and the management flexibility is improved markedly. Keywords: Cloud Computing, Template, Web application deployment, Elastic Management目录目录第一章绪论11.1研究背景11.2问题描述21.3研究内容31.3.1基于模板的应用部署模型31.3.2应用集群的弹性管理31.3.3OADE引擎的开发实现41.4论文组织4第二章云环境下Web应用部署相关工作52.1云计算及虚拟化技术52.2应用的弹性伸缩62.3相关商业云平台72.3.1Amazon EC272.3.2Google App Engine72.3.3Windows Azure云平台82.3.4国内云计算平台82.4应用部署相关工作92.4.1Virtual Machine Manager92.4.2VMware vFabric云平台管理工具102.4.3现有方案不足之处112.5OnceCloud云平台112.5.1XEN虚拟化112.5.2OnceCloud平台132.6本章小结13第三章OADE原理及关键技术153.1模板验证技术153.2软件序列化安装173.3负载均衡与动态扩展193.4弹性伸缩策略213.4.1神经网络模型213.4.2反向传播算法(BP算法)223.4.3基于BP算法的弹性伸缩策略233.5本章小结26第四章基于模板的云应用部署引擎系统设计274.1系统架构274.2部署原理及流程设计294.3本章小结30第五章基于模板的云应用部署引擎系统实现315.1应用模板实现315.1.1应用模板格式315.1.2模板自动生成325.2Web管理门户的实现335.2.1浏览应用模板345.2.2上传制作应用模板345.2.3部署应用355.2.4应用管理及监控365.2.5集群弹性伸缩365.3数据库具体设计与实现375.3.1整体设计375.3.2Hibernate封装405.4应用部署后台实现425.4.1云控制器的实现425.4.2OnceCloud REST API465.4.3虚拟机快速生成485.4.4Agent组件实现495.4.5虚拟机认证机制505.4.6VFS文件传输525.5系统实验验证与测试535.5.1部署应用功能测试535.5.2弹性伸缩测试545.5.3实验结果分析555.6本章小结55第六章结束语576.1本文工作总结576.2进一步工作58参考文献59作者简历61学术论文与研究成果63致谢65第一章 绪论第一章 绪论1.1 研究背景云计算作为一种新兴的计算模型,得到了学术界和工业界的高度关注。云计算以服务的形式为用户提供动态可伸缩的资源和服务,用户可以按照自己的需求来申请资源。云计算的规模和扩展性允许用户获得超级计算机的计算能力,用户可以在需要的时候获得巨大且可弹性扩展的资源。开放以及资源共享是云计算的核心理念之一,用户可在短时间内获取大规模可扩展的包括计算、存储在内的各种资源。按照提供的服务内容,可以将云计算分为基础架构即服务(Infrastructure as a Service, IaaS)、平台即服务(Platform as a Service, PaaS)和软件即服务(Software as a Service, SaaS),而按照云计算服务对象,可以将云计算分为公有云、私有云和混合云等。虚拟化是硬件与操作系统之间的一个抽象层,它将物理硬件与操作系统分开,打破了以往一个操作系统必须配置一套硬件的传统部署方法,大大提高了资源利用率和应用部署的灵活性,比较常见的虚拟化软件有VMware1、Xen2等。虚拟化允许具有不同操作系统的多个虚拟机在同一台物理服务器上同时独立运行,每个虚拟机都有自己的一套虚拟硬件(如RAM、CPU、网卡等)。无论物理服务器采用何种硬件组件,操作系统都将它们视为一组标准化的硬件。面向虚拟化环境的部署是Web应用部署发展的趋势,它统一地调度和分配一个由全部硬件组成的抽象虚拟化平台。系统分配资源的单位从传统的服务器数量转变为用户需要的计算处理能力。分配出来的资源形成了独立的虚拟服务器,即虚拟机。虚拟机与物理机一样拥有各种接口、主板、CPU、内存等全部硬件。在虚拟机上可以同物理机一样安装操作系统、部署应用等。虚拟机之间互相独立,某一个虚拟机发生故障不会影响到其他虚拟机。虚拟化技术的采用将所用的硬件构成了一个统一的资源池,可在这个资源池上获取足够的计算资源来创建独立的虚拟机。随着云计算的快速发展,虚拟化逐渐成为构建Web应用运行支撑环境的主流方式。从物理机转向虚拟机,企业可以获得诸多好处。它可以帮助企业减少物理服务器的开支,提高服务器的利用率,延长数据中心的生命周期,提高应用的可用性,从而降低企业IT服务成本,充分发挥现有硬件的能力。这使得越来越多的企业和机构计划将其关键Web应用部署到Amazon EC23、Microsoft Azure4等虚拟化平台上。Gartner预测截至2017年,Web应用向虚拟化环境的部署会涉及至少15亿应用网页/sites/ericsavitz/2012/10/22/gartner-10-critical-tech-trends-for-the-next-five-years。越来越多的公司在此领域开展调查研究,诸如西门子5、IBM6、Intel7等,如何自动和高效地实现应用向虚拟化环境的部署成为学术界和工业界的研究焦点。1.2 问题描述面向虚拟机环境的Web应用部署仍存在较大的挑战,特别是复杂应用的配置,可能会引入大量的手工操作错误。如图1.1所示,一个Web应用通常需要依赖中间件、语言环境、数据库、操作系统等,而这些环境又来自于不同的厂商,有不同的版本号,且它们之间存在着兼容性隐患,虽然微软和VMware等公司针对面向虚拟机的应用部署已开发了一些软件工具,但支持应用类型较少,且大都和特定虚拟机产品绑定,难以成为一个较为通用的部署方案。图 1.1 复杂的应用依赖环境具体来说,虚拟化环境的应用部署面临以下几个问题:l Web应用依赖环境一般由诸多软件组成且各个软件配置复杂,仅一个应用服务器的配置就可能达到40多项。因此,手动部署效率低下,时间成本高。l 由于部署的复杂性,手动部署易发生操作失误,导致应用部署后难以稳定运行。 l 手动部署尚存在封装性不强、耦合度过高等问题,因而无法利用弹性计算等高度灵活的方式对应用进行动态管理。1.3 研究内容本文提出了一种基于模板的云环境应用自动部署方法,将已有应用运行所需的软件及配置参数化并封装为应用模板,仅需操作一体化的应用模板即可自动地实现应用部署,从而极大简化了应用向云平台迁移的过程;本方法还实现了以虚拟机为单位的应用集群弹性伸缩自动化,提供了可定制的弹性伸缩策略;最后设计并实现了一个基于模板的云应用部署引擎,并通过应用案例展示了引擎的可用性。 基于模板的应用部署模型针对Web应用在云环境下的部署复杂性问题,本文的主要解决思路是把Web应用相关的配置选项封装起来,打包后以模板形式呈现给用户,从而简化用户部署的流程。基于上述思路,可将Web应用制作为云应用模板,只需经过简单的参数化即可生成用户所需的部署单元,这样可将应用部署过程自动化、模板化,并方便的完成自动化部署。该方案会显著提升应用部署的效率与管理的灵活度,因而具有重要的研究与应用价值。1.3.2 应用集群的弹性管理Web应用从物理机迁移到虚拟化的云平台后,弹性伸缩需要以虚拟机为单位进行,负载压力增大时需要增加虚拟机个数,增加虚拟机时每台虚拟机上需要自动安装相应的服务器组件,本文以自动应用部署为基础实现了以虚拟机为单位的应用集群弹性自动伸缩。另外,在弹性伸缩的策略方面,传统的方法是用若干指标的阈值来决定是否进行伸缩,但由于Web应用类型的多样性(如CPU密集型、内存密集型等),统一的阈值难以适应不同类型应用的需求。本文利用人工神经网络模型给出了一种可定制的弹性伸缩策略,可以根据不同应用类型匹配相应的弹性伸缩策略。1.3.3 OADE引擎的开发实现论文根据前面的分析及设计,在中科院软件所软件工程技术中心开发的OnceCloud云平台基础上设计并实现了一个基于模板的云应用部署引擎(Once Application Deploy Engine, 后文简称OADE),并通过应用案例验证了该引擎的设计目标。1.4 论文组织本文各个章节的内容组织如下:第一章为绪论。阐述了论文的研究背景,介绍了当前Web应用部署到云平台上的需求,接下来介绍了当前业界在云应用部署方面所面临的挑战,最后,简述了论文的主要研究内容和组织结构。第二章为云环境下Web应用部署相关工作。本章首先详述了与本文密切相关的云计算、虚拟化技术,然后介绍论文对相关主流云平台及云应用部署工具的调研情况,并对已有科研成果进行了分析,最后介绍了实现本文系统所依赖的XEN虚拟化技术及OnceCloud云平台。第三章为OADE原理及关键技术。本章首先阐述了本文中云应用部署引擎的工作原理,然后介绍了引擎所应用的关键性技术和算法,包括模板验证技术、软件序列化安装技术、负载均衡与动态扩展技术以及弹性伸缩策略。第四章为基于模板的云应用部署引擎系统设计。本章首先给出了该引擎的系统架构图,然后分别对其中的应用部署模块、软件仓库模块、云控制器模块、监控模块以及弹性伸缩模块进行了介绍,最后阐述了使用该引擎进行应用部署的详细流程。第五章为基于模板的云应用部署引擎系统实现。详细阐述了OADE中各个部分的具体实现方式,它们包括应用模板的实现、Web管理门户的实现、数据库模块的实现以及应用部署后台实现,最后通过案例对上述功能进行了验证与测试。第六章为结束语。本章对整篇论文进行了总结,列举了本文的主要工作和贡献,分析了当前工作中的不足之处并提出了下一步工作重点。第二章 云环境下Web应用部署相关工作第二章 云环境下Web应用部署相关工作2.1 云计算及虚拟化技术处理器、硬盘存储、网络访问速度等硬件水平的提高和虚拟化技术的进步使得云计算不断发展成熟。云计算中的服务通过网络来提供,我们称之为云服务。用户可通过任意联网设备访问云服务,且只需了解服务的情况,不必关心其具体实现以及底层基础设施。云计算允许用户和企业不受时间和地点等约束按需使用服务,对用户的收费可根据服务器的使用、消耗的电量以及带宽的消耗来进行。这种按需的服务方式使得云计算有了颠覆整个软件行业的潜力。在传统桌面应用中,软件是通过购买、授权来使用的,而云计算中的软件通过网络以服务的形式提供给用户,用户无须因为一次性或偶然性需求而购买整个软件。云服务的典型分类如下:l 应用即服务(SaaS):从对云的依赖的角度来讲,所有的Web应用都是云应用服务,Google、百度、亚马逊、淘宝等所有的Web2.0应用都是一种云应用。l 平台即服务(PaaS):PaaS把虚拟机隐藏在了更高层的接口后面,平台的用户只和一些可访问的接口交互,无须关心后面的机制。典型的PaaS有Google的AppEngine8,国内互联网公司新浪的SAE(Sina App Engine9)。l 基础设施即服务(IaaS):IaaS为用户提供了最原始的虚拟机实例、存储以及根据使用付费的计算方式,用户可在虚拟机上自由安装、使用应用程序,开发者是这种计算服务的最典型目标用户。Amzon的EC2是典型的云基础设施服务平台, 也是该领域目前最为领先的提供商。虚拟化技术是承载云计算的主要技术。在云计算的概念模型中,虚拟化指的是对软件平台以及物理上IT基础设施的抽象。虚拟化技术的本质属于一种资源管理技术,它将网络、存储、硬件、软件等设备隔离开来,使用户能更充分地进行控制与管理。虚拟化允许服务器、存储设备和其他硬件被看作是整体的资源池而不是分离的系统,这些资源均可按需分配。通俗来说,虚拟化把物理资源转变为逻辑上可以管理的虚拟资源,这打破了物理结构之间的壁垒,消除了硬件与物理机之间的强关联性。从而可将客户系统(Guest System)从硬件中分离出来,并可自动地转移到其他可用的硬件环境中。虚拟化技术本身由来已久,从60年代Unix诞生起,虚拟化技术就出现了。虚拟化技术最初是应用在大型机上,通过将一台大型服务器分割成若干分区,同时运行多个彼此独立的操作系统实例,这种方式提高了硬件利用率。在经历了从硬件分区、虚拟机、准虚拟机、虚拟操作系统的发展历程后,目前虚拟化技术主要应用在服务器虚拟化方面。虚拟化通过一种控制软件在指定的硬件上实现,这种控制软件被称为Hypervisor或者虚拟机监控器。它为客户系统(Guest System)创建了一个模拟的计算环境。客户系统(Guest System)通常是一个完整的操作系统,运行在一个看似独立的硬件环境中。当前领先的虚拟化软件提供商有VMware、Citrix XEN、KVM10、Microsoft Azure等。作为一种对物理资源的封装方式,虚拟化解决了数据中心管理员的很多核心问题,具有以下优势:l 资源整合:虚拟化使得多种IT资源可以方便地整合。除了服务器和存储资源的整合,虚拟化也可以实现对系统架构、应用基础设施、数据库、网络接口等的整合,这节约了成本并且提高了效率。l 低能耗与低成本:使用虚拟化来整合资源会大大提高资源的利用率,避免不必要的浪费,减少总的用电消耗。l 空间节约:虚拟化通过在物理机上整合大量虚拟系统提高了空间的使用率,与传统单独购买硬件的方式相比节约了空间资源。22.12.2 应用的弹性伸缩现实场景中企业的Web应用对计算资源的需求经常随时间变化而波动,若企业选择一直保持足够的资源来面对峰值下压力,则成本会很高;反之,如果企业为了降低成本而一直使用较低的资源配置则难以在峰值压力下提供可用的服务。因此,能够动态地进行资源的增减对于很多企业来说至关重要。云计算提供了强大而又灵活的计算环境使得Web应用的动态扩展变得容易,其能够在包括服务器、存储和网络等很多方面为Web应用提供按需使用的资源。云计算按需的特性结合按使用付费的模型意味着服务需要的资源可以随着应用的需求变化而变化。只要应用的设计架构适合弹性变化,资源的配置就能精确的和需求相匹配。通常来讲,企业可以以增加资源(服务器、处理器、存储和带宽等)的方式来扩展一个给定的应用。可扩展的应用能够在遇到高访问量时利用新增的资源顺利扩展并在扩展后正常运作,而扩展性较差的应用在访问量增长时会因难以扩展而遇到性能问题,严重的甚至会导致服务器宕机。尽管不同的Web应用的工作方式各不相同,但是它们在资源遇到瓶颈时会表现出共同的特点。了解Web应用消耗资源的方式对于决定如何对应用所需资源进行扩展至关重要,这涉及到以下问题:应用在高负载压力下表现如何、系统潜在的扩展指标是什么以及为了维持期望的性能需要调整哪些指标等。一种能够考察Web应用在负载变化情况下表现的方式是调研这些扩展指标的阈值变化区间。对于Web应用,典型的扩展指标包括并发用户数目、活跃连接数、每秒请求数、每个请求的平均响应时间等。为了动态扩展应用,通过对特定扩展指标进行标记的方式来监控和跟踪性能是常用的方法,一旦一个扩展指标被选中来作为扩展应用的标准,扩展指标的样本会被实时的采集,数据会被周期性的计算。基于历史趋势以及当前数据从中做出的预测,可以定义相应的扩展规则以增加或减少Web应用服务器实例。2.3 相关商业云平台2.3.1 Amazon EC2亚马逊是最早开始提供云服务的厂商。EC2,即亚马逊弹性计算云(Elastic Compute Cloud)是一个广为人知的云计算平台。EC2让用户可以以虚拟机的形式租赁云端计算机,用户可以在虚拟机上安装任何想要运行的操作系统,并运行任何需要的软件或应用程序。在EC2中预置了许多种实例类型,每种类型定义了虚拟CPU主频和虚拟内存数量。每种类型可以作为模板来启动实例,用户可以完全控制虚拟机实例,从选择实例类型到启动实例只需要几分钟,费用按照使用时间来计算。这种灵活性的方案带来了很多好处:当系统原有计算能力不足时,用户可迅速启动另一台拥有更高计算能力的实例来代替当前实例,以此增加计算能力;当然,也可以启动一台与原有实例计算能力相当的实例,与原有实例形成集群来增加计算能力。一旦请求的峰值消失,可立刻换回原有实例或关闭不再需要的虚拟机实例,释放不需要的计算能力。如果应用在设计之初就充分考虑到灵活性以及扩展性方面的要求,设计的程序有自我监控和自我扩展能力,那一旦某台实例出现无法修复的错误时,系统可以通过增加新实例来获得修复。亚马逊EC2有比较简单的Web服务界面,它提供对计算资源的完全控制,并运行于亚马逊认证的计算环境中。2.3.2 Google App EngineGoogle公司在2008年推出了著名的云计算产品Google App Engine(简称GAE),和EC2不同,Google的App Engine是典型的PaaS(平台即服务)平台,它向开发者提供官方SDK,使用者必须在其规定的框架内开发应用程序。Google App Engine 应用程序易于构建和维护,并可根据访问量和数据存储需要进行扩展。使用 Google App Engine,用户将不再需要自己维护服务器,只需上传应用程序即可。它支持应用的快速开发、部署,有较好的可扩展性,且支持自动化的弹性伸缩。但GAE存在诸多限制,如开发者需要在官方提供的开发环境下进行应用的开发,此外,GAE对应用所使用的API也有诸多限制。以J2EE应用为例,使用GAE SDK不支持的Java类则会导致应用部署的失败。可以说GAE以及类似的PaaS平台在为用户带来运营维护上方便的同时降低了用户在开发上的自由度。2.3.3 Windows Azure云平台微软作为传统的操作系统巨头,在云计算领域也构建了自己的体系,Azure是其中的代表。Windows Azure的主要目标是为开发者提供一个平台,帮助开发可运行在数据中心、云服务器、Web及PC上的应用程序。微软自己将Azure定义为一个云计算操作系统平台,可以为开发者提供基于微软数据中心的Web应用程序和按需定制的计算服务。Windows Azure platform融合了许多微软应用,这其中包括SQL Azure、Azure platform AppFabric等。其中,SQL Azure是云中的数据库,AppFabric是一个基于Web的开发服务,它可以把现有应用和服务与云平台的连接和互操作变得更为简单。为了可以和第三方服务交互,Azure服务平台支持多种工业标准协议,包括HTTP、REST、SOAP、RSS和AtomPub,可以方便地集成基于多种技术或者多平台的应用。此外,Azure AppFabric还为使用.NET Framework和Visual Studio开发环境的开发者对接到云平台提供了便利,开发者可以使用与Visual Studio相同的环境方便地编写、测试云计算应用并可一键部署到Azure服务平台。2.3.4 国内云计算平台近年来国内在云计算领域也有长足的发展,具备一定资本实力的企业已经在云计算平台上发力,以此来奠定自身在未来云服务中的核心地位。目前国内在该领域规模较大的服务商有:阿里云平台11、盛大云平台12、百度开放云平台13等。盛大云提供了类似EC2的IaaS服务,其向用户提供可以运行任何程序的虚拟机产品。支持虚拟机的镜像备份、迁移,支持网络带宽的弹性升级,支持云硬盘的灵活挂载,还有配套的CDN及数据库云服务可供开发者使用。阿里云平台则引入了行业云的概念,其中包括游戏云、金融云、移动云和电商云,这种让用户根据不同行业的特点来构建与之适应的云环境的做法有一定的创新意义。此外,阿里云计算平台还提供了负载均衡产品(SLB)、关系型数据库服务(RDS)、开放存储服务(OSS)、内容分发网络(CDN)、开放结构化数据服务(OTS)、开放缓存服务(OCS)、开放数据处理服务(ODPS)等相关产品。 前面提到的盛大云和阿里云均是国内主流的IaaS云平台,在PaaS平台方面,国内互联网公司新浪推出了SAE(Sina App Engine),它是一款和GAE类似的产品,初始只支持PHP应用,目前已经拓展到Java、Python这两种应用类型。SAE把服务的扩展性作为架构设计的重要指标,能在用户增长、压力提升的情况下实现自动化的服务扩展;同样的当压力降低时,可以将服务收缩,以节约资源,整个过程无需人工参与。2.4 应用部署相关工作国内外学者关于云环境中的Web应用部署做了大量研究。文献14,15,16中提出了一种将虚拟机作为单个管理单元的方案,但这种做法缺乏应用的整体性概念,难以成为应用自动化部署的解决方案。Trieu和Ajay17提出了一种利用虚拟机模板来固化已配置完成的虚拟机的方法,增加节点时用已固化的模板来产生新的实例,但由于初始的虚拟机仍需手动安装,亦非完整的自动化部署方案。Lim H C等18提出了一个更为抽象的框架把应用作为整体来看待,而非若干独立的虚拟机,但没有给出具体可操作的实现方案。此外,业界也有一些应用部署相关且已经产品化的工具,下面将分别介绍:2.4.1 Virtual Machine ManagerVirtual Machine Manager全称是System Center Virtual Machine Manager,是微软开发的一款私有云管理工具软件,其基本功能仍然是创建、管理虚拟机。从VMM(Virtual Machine Manager的简称) 2008开始,虚拟化扩张的需求超越了服务器整合,越来越多的用户开始部署Hyper-V虚拟化平台(微软的一款虚拟化产品,是微软第一个采用类似VMware和Citrix开源Xen一样的基于Hypervisor的技术19)。随着Hyper-V的部署,用户希望能够使用单独的工具来控制Hyper-V基础设施。至VMM2012版,其在管理Hyper-V主机方面以及在操作系统方面都有很重要的提升。与此同时,VMM具备了部署应用程序的功能,因其注意到真正的IT业务价值最终来自应用程序,让企业更高效的部署应用程序比提高虚拟机的访问速度更有价值。因此,微软私有云允许开发人员在新增虚拟机的同时部署新的应用程序。通过在软件中嵌入自动部署应用程序的流程,企业可以提高业务部署成功率。为此VMM 2012还提供了定制化服务,它能够为软件管理提供支持。每个定制化的服务实例封装了部署和运行应用程序新实例所需的一切。云端的用户只需要创建新的虚拟机,就可以动态安装和按需启用新的应用程序。2.4.2 VMware vFabric云平台管理工具vFabric20是VMware公司开发的一款云计算应用部署和开发工具,它针对基于VMware的虚拟化环境提供应用部署功能。vFabric 针对开源框架Spring Framework 进行了优化,适用于 VMware vSphere 虚拟基础架构,为自定义应用通往云计算提供了更明确的途径。无论是在企业内部还是在公有云中,越来越多的应用开始部署到虚拟基础架构中。vFabric Suite 是一款面向数据密集型自定义应用的轻量级、可扩展的集成中间件套装,可在集群内部或云中使用。它有以下一些特点:集成了Spring Framework,充分利用了虚拟化基础架构的高效性并能轻松调配和横向扩展应用基础架构。另外,vFabric Suite 采用一种面向数据的方法,比较适合当今面向Web的数据密集型动态用户请求,满足了当今的应用需求。在动态扩展方面,vFabric Suite 中的轻量级运行时元素可以在无需进行超额配置的情况下实现快速扩展,这样的效果是让应用能够处理动态、不可预测的流量峰值。通过集成vSphere,能够实现快速横向扩展基础架构以消除新形式应用部署带来的复杂性。当今的应用程序越来越多地利用现代开发框架来进行开发,这些开发框架采用了更加敏捷、针对虚拟化技术而设计的数据管理服务和运行时环境。作为一种开放的解决方案,VMware vFabric将最初的目标定位于Spring Java应用程序的开发者。VMware vFabric有如下好处:l 最大限度地提高速度,增强创新能力:开发者能以更快的速度向市场推出应用程序;新应用程序可以在几周内交付。l 将虚拟化技术的优势扩展到应用程序:VMware vFabric能与底层基础架构协调,有助于确保最佳的应用程序性能、服务质量和基础架构资源利用率。l 通向云的变革之路:开发者将能以一种熟悉的、高效的方式来开发新应用程序,然后轻松部署到云平台上,这让开发者可以以更小的代价向云开发之路迈进。2012年12月,VMware发布了vFabric App Director。它作为VMware的自动化应用程序配置解决方案发布。不仅提供了可重用的应用程序组件,还增加了预装应用的虚拟机模板,这一产品在配置方式上更加简单、灵活。它支持高度自动化的应用程序部署。vFabric App Director的应用程序部署能够帮助用户在复杂、动态的综合基础设施中模块化应用程序并进行部署。它还改进了应用程序部署检查技术。另外,其对应用程序的管理和监控来自于VMware本身集成的Hyperic组件。2.4.3 现有方案不足之处现有云平台的应用部署方法及工具存在诸多问题,有的自动化程度低,人工时间成本过高;有的仍停留在理论层面,可操作性不强。虽然微软和VMware等公司意识到了应用部署的重要性,但它们开发的应用部署工具一般是作为虚拟机管理工具的一部分集成到其虚拟机管理软件中,有很强的针对性:微软的VMM主要针对微软开发的私有云虚拟机,VMware的vFabric主要针对vSphere虚拟机环境下的Spring框架程序,其应用范围比较局限。另外,Google的App Engine以配套SDK的方式开发并部署应用,这种方式对应用有诸多限制,不具备通用性,不适合已有应用的部署和迁移。以上问题使得这些方案都无法成为云平台上应用部署自动化的理想解决方案。国内在这一领域的情况则更不乐观,产业界还没有出现成熟的应用部署工具,虚拟化环境的应用部署研究有待加强。2.5 OnceCloud云平台本节将分两部分,首先是有关XEN虚拟化的基本原理介绍及其在虚拟化方面的优点,在第二部分阐述OnceCloud云平台与XEN虚拟化及本论文中OADE系统之间的关系。2.5.1 XEN虚拟化XEN虚拟化是基于X86架构的开源虚拟化技术,是英国剑桥大学计算机实验室开发的一个开源项目,它有着发展快、性能稳定以及占用资源少的优点。Xen可以在保证安全性的前提下在一套硬件资源上产生多个虚拟机,与Linux是非常搭配的开源组合, 它和操作系统结合地非常密切,占用的资源最少。XEN的种种优点已被国内外众多企事业用户认可并用来搭建高性能的虚拟化平台。Xen的超级管理程序(Hypervisor)性能十分优秀,而其开销却在很大程度上低于同类产品。这种卓越的性能来自于超虚拟化的使用,它使得托管虚拟服务器可以与超级管理程序共同协作,提高了虚拟服务器上应用程序的性能。另外,Xen还利用了 IntelVT21和AMD处理器提供的硬件虚拟化能力,可有效降低运营成本,提高设备利用率,最大化利用底层的基础设施资源。Xen将虚拟化技术和操作系统本身结合起来,使得操作系统和虚拟化进程之间能够密切协作,并且不需要重新编译或者捕获特权指令。XEN的虚拟化体系结构图如图2.1所示:图 2.1 XEN虚拟化体系结构XEN 虚拟化技术的主要特性如下所示:l 虚拟机性能更加接近真实硬件l 可实现物理平台和虚拟平台间的自由切换l 在每个客户虚拟机上支持多达32个虚拟CPU,支持VCPU的热插拔l 支持PAE指令集的x86/32, x86/64平台l 能虚拟原始操作系统,支持硬件辅助虚拟技术l 得到了硬件厂家的大力支持,支持几乎全部Linux设备驱动Xen凭借着虚拟化性能上的优势得到了广泛应用,目前主要的应用领域如下:l 服务器应用整合:在一台物理主机上虚拟出多台虚拟机,用来安装多个不同的应用,这样可以充分利用服务器的物理性能,更加灵活地进行服务器的应用迁移。l 软件开发测试:用户可利用Linux的低成本优势灵活地搭建多个开发平台,由此节省了开发成本,加快了开发进程。l 集群运算:与管理物理机相比较,虚拟机的管理更加灵活,同时在负载均衡方面,使用虚拟机更易于控制和隔离。2.5.2 OnceCloud平台OnceCloud是中科院软件所软件工程技术中心开发的一款针对企业用户的云平台产品,其虚拟化部分底层采用了开源的XEN虚拟化技术。本文在应用部署方面实现的OADE系统以OnceCloud为基础和实验平台,并最终成功集成到了OnceCloud云平台中,成为其在应用部署和迁移方面的重要组成部分。2.6 本章小结本章介绍了云环境下Web应用部署的相关工作。首先介绍云计算和虚拟化技术当前的发展现状,并简要说明了应用弹性伸缩的必要性及其影响因素。接下来介绍了若干较为成熟的商业云平台以及面向虚拟机的应用部署工具的情况。它们有很多特性及优点值得借鉴,但由于一些通用性上的问题难以适用于本文的应用场景。最后,着重介绍了本文进行研究的基础和实验平台OnceCloud云平台。第三章 OADE原理及关键技术第三章 OADE原理及关键技术为了实现Web应用部署的自动化,本文将模板的思想应用到Web应用的部署上,用模板将Web应用所需复杂配置及运行环境封装起来。集群部署的情况下,模板还包含了集群中不同虚拟机之间的关联关系。此外,为了解决不同环境下的通用性问题,该模板在设计上与具体的虚拟化技术解耦。我们把这种针对Web应用设计的模板称为应用模板,具体定义如下:应用模板是包含Web应用运行所需的软件、配置在内的一体化软件运行环境。如图 3.1中应用模板的构成中包含了负载均衡、中间件、数据库、语言环境、操作系统等。一个完备的应用模板应包括应用运行所需的全部环境信息,部署引擎按照应用模板的内容执行即可搭建完整的应用运行环境。图 3.1 应用模板示意图应用模板是从应用层面对Web应用运行所需各种软件、配置参数的封装。它以Web应用为单位,若应用类型为单机应用,则一个应用模板对应一台虚拟机;若应用为集群应用,则一个应用模板对应多台虚拟机,其被执行后会产生多个虚拟机节点:包括数据库节点、应用服务器节点、负载均衡节点等。应用模板是本文用于解决云平台应用部署问题的核心,以它为单位进行部署即可实现应用的一次配置,重复使用。233.1 模板验证技术应用模板中的各软件之间存在着潜在的不兼容与不匹配问题。举例来说,每种中间件都需要特定的语言环境作为支持,这两种软件需要相互匹配才能搭建正确的环境,如Django22和Python23是一对匹配的组合,Django和Java则不是。模板验证是指对应用模板的正确性进行检验,若发现错误则找出错误所在位置及错误的原因。如果所有的软件以及版本都能正确匹配,则返回正确。在这个问题的解决过程中,我们发现,利用数理逻辑表达式可将模板验证问题转化为数理逻辑中的推理演算问题。软件之间是否兼容的问题可以抽象成逻辑变量之间进行运算后结果是否为真的问题。针对当前场景,一些软件之间的兼容性可以预先获取,可以将这些条件抽取出来作为一个规则集合,本文将根据这些先验知识建立的规则集合称为“先验规则”。根据这些规则即可对给定的表达式进行推理演算,最后给出应用模板是否正确的结论。为了清晰地对先验规则进行描述,首先将应用部署所涉及的各种软件分为如下类型:l Middleware:中间件类型,指应用所需的Web容器,如Tomcat、JBoss等l DB: 数据库类型,如Mysql、MongoDB等l LB: 负载均衡类型,如Nginx、ApacheLB等l Runtime: 运行语言环境,如Java、PHP等l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度按摩院建设项目施工与监理合同
- 纤支镜止血护理
- 环境保护教育说课
- 爱国卫生健康教育主题班会
- 新版房地产租赁合同模板
- 2024浙江省三门县职业中等专业学校工作人员招聘考试及答案
- 2024深圳市福田区华强职业技术学校工作人员招聘考试及答案
- 2024灵台县职业中等专业学校工作人员招聘考试及答案
- 职务职级并行培训
- 物业各部门管理思路
- 【复习资料】01180电视采访(复习提分要点)
- 2023年国家工信部信息中心事业单位招聘笔试参考题库(共500题)答案详解版
- 合理自我分析报告RSA
- GB/T 19670-2023机械安全防止意外启动
- 财产保险实务-教案项目1、2走进财产保险、企业财产保险
- 外科学教学课件:结、直肠与肛管疾病
- 2022年广东高考政治真题及答案
- 化学动力学基础(二)课件
- IATF16949-过程审核检查表-(含审核记录)-
- 陕西省二级以上医院信息
- 实验室安全检查记录表
评论
0/150
提交评论