基于OpenStack的应用自动部署管理系统研究.docx

上传人:b****7 文档编号:10011359 上传时间:2023-02-07 格式:DOCX 页数:79 大小:490.24KB
下载 相关 举报
基于OpenStack的应用自动部署管理系统研究.docx_第1页
第1页 / 共79页
基于OpenStack的应用自动部署管理系统研究.docx_第2页
第2页 / 共79页
基于OpenStack的应用自动部署管理系统研究.docx_第3页
第3页 / 共79页
基于OpenStack的应用自动部署管理系统研究.docx_第4页
第4页 / 共79页
基于OpenStack的应用自动部署管理系统研究.docx_第5页
第5页 / 共79页
点击查看更多>>
下载资源
资源描述

基于OpenStack的应用自动部署管理系统研究.docx

《基于OpenStack的应用自动部署管理系统研究.docx》由会员分享,可在线阅读,更多相关《基于OpenStack的应用自动部署管理系统研究.docx(79页珍藏版)》请在冰豆网上搜索。

基于OpenStack的应用自动部署管理系统研究.docx

基于OpenStack的应用自动部署管理系统研究

基于OpenStack的应用自动

部署管理系统研究

(申请清华大学工程硕士专业学位论文)

培养单位

计算机科学与技术系

工程领域

计算机技术

申请人

肖飞

指导教师

陈康

副教授

联合指导教师

张亮

高工

二○一五年五月

基于O

p

e

n

S

t

a

c

k

的应用自动部署管理系统研究

肖吕

ResearchontheAutomaticDeploymentandManagementSystemofApplicationsBasedonOpenStack

 

ThesisSubmittedto

TsinghuaUniversity

inpartialfulfillmentoftherequirement

fortheprofessionaldegreeof

MasterofEngineering

by

XiaoFei

(ComputerTechnology)

ThesisSupervisor:

:

AssociateProfessorChenKang

AssociateSupervisor:

:

SeniorEngineerZhangLiang

May,2015

 

关于学位论文使用授权的说明

本人完全了解清华大学有关保留、使用学位论文的规定,即:

清华大学拥有在著作权法规定范围内学位论文的使用权,其中包括:

(1)已获学位的研究生必须按学校规定提交学位论文,学校可以采用影印、缩印或其他复制手段保存研究生上交的学位论文;

(2)为教学和科研目的,学校可以将公开的学位论文作为资料在图书馆、资料室等场所供校内师生阅读,或在校园网上供校内师生浏览部分内容。

本人保证遵守上述规定。

(保密的论文在解密后遵守此规定)

作者签名:

导师签名:

日期:

日期:

 

摘要

近年来随着云计算风起云涌和飞速发展,OpenStack开源云计算平台迅速占领了世界各地的ICT机房和数据中心,成为开源云计算平台的翘楚,它给虚拟主机、网络、存储的管理提供了巨大灵活性。

但是应用程序的部署与管理仍然与操作系统紧密耦合,面对大规模的应用部署和迁移时,系统管理人员仍然需要反复在虚拟机中安装配置应用中间件、数据库和操作系统,并没有获得云计算更多的帮助。

本文针对应用自动部署管理领域遇到的问题,主要完成了以下工作:

(1)提出了一种基于OpenStack平台的应用自动部署管理系统的设计方案,从系统需求背景、应用场景提出了系统的功能需求,给出了包括用户命令行界面、OpenStackAPI驱动、虚拟机管理、Agent管理以及应用程序管理模块的系统总体架构体系。

(2)分别从OpenStack接口调用、虚拟机初始化、虚拟机管理、系统与Agent的网络通信方面详述了虚拟机管理模块的实现,从应用环境配置、应用部署和负载均衡给出了应用自动配置管理模块功能的实现。

提出了系统中虚拟机和应用程序的监控方案,给出了一种基于可变权重的平均负载算法,根据计算得到的应用平均负载对应用程序执行扩展和收缩等动态调整功能。

(3)在测试环境下对应用自动部署管理系统的功能进行了测试,测试结果表明系统完全达到了需求和设计目标,能够将应用程序的部署完全融合到云环境的基础设施中,应用的部署过程被简化为一条系统命令,另外系统对应用提供了全生命周期的监控管理,对应用程序出现的不确定的故障和用户压力能够通过重启、扩展和收缩等动作进行处理,保证其在运行过程中的稳定性,使运维人员在云环境下对应用的管理更加简单容易。

 

关键词:

云计算;OpenStack;应用程序;自动部署;扩展收缩

Abstract

Withsurgingandtherapiddevelopmentofcloudcomputinginrecentyears,theopensourcecloudcomputingplatformofOpenStackquicklyoccupiedtheICTroomsanddatacentersontheworld,andithasmadechampionsofthefreeopensourcecloudcomputingplatform,becauseitprovidesavitaltremendousflexibilitytothemanagementofhosts,networksandstorages.Buttheapplicationdeploymentandmanagementstilltightlycoupledwiththeoperatingsystem,inthefaceoflarge-scaleapplicationdeploymentandmigration,systemmanagersstillneedtoinstallandconfigureapplicationmiddlewaresandoperatingsystemsrepeatedinavirtualmachine,anddidn'tgetmorehelp.

Thispaperfocusesontheproblemsoftheautomaticdeploymentmanagementofapplications,anddoesthefollowingworks:

(1)WeputforwardakindofdesignschemeintheautomaticdeploymentmanagementsystembasedonOpenStack.Itcoversthesystemdemandbackground,applicationscenarioofthesystemfunctionalrequirements,andthesystemincludsusercommandlineinterface,OpenStckAPIdriver,virtualmachinemanagement,agentmanagementandapplicationmanagementmodules.

(2)Thispaperpresentsintodetailsoftheimplementationofthevirtualmachinemanagementmodule,whichincludestheOpenStackinterfaces,initializationofvirtualmachine,virtualmachinemanagement,andnetworkcommunicationbetweenthesystemandagentonvirtualmachine.Thispaperalsopresentstheautomaticconfigurationmanagementmodulewhichincludestheapplicationenvironmentconfiguration,deployment,andloadbalancing.Thenthispapertellsthestoryofthemonitoringplanofvirtualmachineandapplications,demonstratesanaverageloadalgorithmofapplicationbasedonvariableweight.Applicationcanbescaledoutandinaccordingtothecalculatedaverageload.

(3)Finallywedosometestsinatestenvironment.Thetestresultsshowthatthesystemfullymeetstherequirementsanddesigngoal,andcanmergedthedeploymentoftheapplicationcompletelyintothefieldofcloudinfrastructure,applicationdeploymentprocessissimplifiedasasystemcommand.Thesystemprovidesmonitoringandmanagementtothelifecycleoftheapplication.Theuncertainfaultsanduserpressurecanbedisposedbyrestartscaleoutandscalein.Ensuringthestabilityintheoperationprocess,itprovidessimplerandeasieradvantagestoapplicationoperationsstaffsinacloudenvironmentmanagement.

 

Keywords:

CloudComputing;OpenStack;Application;AutoDeploy;ScaleOutandScaleIn

目录

第1章引言1

1.1研究背景1

1.2国内外研究现状1

1.3研究的目的及意义3

1.4论文的主要内容3

第2章云计算与应用扩展性5

2.1云计算简介5

2.1.1概念5

2.1.2服务模型5

2.1.3服务性质6

2.1.4云计算的优点7

2.2IaaS概述7

2.3PaaS系统概述9

2.3.1GoogleAppEngine10

2.3.2CloudFoundry11

2.3.3Heroku11

2.4扩展性理论12

2.4.1Amdahl定律13

2.4.2固定负载13

2.4.3Gustafson定律13

2.5应用扩展的极限14

2.5.1扩展障碍14

2.5.2端到端延迟14

2.5.3成本障碍16

2.6实际扩展性难题和线性扩展架构17

2.6.1分层应用系统的扩展性问题18

2.6.2线性扩展架构18

2.7本章小结19

第3章基于OpenStack的应用自动部署管理系统架构设计20

3.1系统需求背景20

3.2系统应用场景20

3.3系统总体架构21

3.4通信设计23

3.5命令行的设计实现24

3.6系统使用流程24

3.7本章小结25

第4章虚拟机管理26

4.1OpenStackAPI驱动26

4.1.1OpenStackAPI26

4.1.2OpenStackAPISDK27

4.1.3驱动的编程实现29

4.2初始化虚拟机30

4.2.1Cloud-Init30

4.2.2通过SSH进行虚拟机环境配置。

31

4.3虚拟机管理的软件实现32

4.3.1虚拟机的数据结构32

4.3.2虚拟机的业务逻辑管理32

4.3.3虚拟机的操作管理32

4.4与虚拟机Agent的网络通信33

4.4.1Server的实现33

4.4.2Agent的实现35

4.4.3通信协议35

4.5本章小结36

第5章应用自动配置管理37

5.1应用环境准备37

5.2应用部署38

5.3应用的负载均衡38

5.4应用自动管理的实现39

5.4.1WebApplication39

5.4.2WebApplicationManager40

5.5本章小结40

第6章应用环境监控与自动扩展41

6.1虚拟机环境监测41

6.1.1TelemetryAPI方式41

6.1.2虚拟机Agent方式43

6.2基于可变权重的平均负载算法43

6.2.1虚拟机平均负载43

6.2.2应用程序平均负载44

6.3虚拟机和应用环境监测的实现46

6.3.1虚拟机Agent监测模块46

6.3.2Server监测处理模块46

6.4应用故障重启48

6.5应用扩展与收缩49

6.5.1应用扩展49

6.5.2应用收缩50

6.6本章小结51

第7章实验与分析52

7.1测试环境52

7.2系统功能测试53

7.2.1初始化云环境53

7.2.2应用部署53

7.2.3应用卸载54

7.2.4应用扩展55

7.2.5应用收缩55

7.2.6查看虚拟机资源使用情况56

7.2.7远程执行Linux命令56

7.3压力测试57

7.4本章小结58

第8章总结与展望59

8.1论文工作总结59

8.2未来研究展望60

参考文献61

致谢63

声明64

个人简历、在学期间发表的学术论文与研究成果65

第1章引言

1.1研究背景

自云计算的概念出现以来,它以空前的速度和规模占领了IT的各个领域,在IT基础设施、分布式数据存储、中间件与微服务架构、移动互联网等领域取得了空前的成功。

云计算服务是近十年来计算机技术领域发展的又一个高峰,它为实现信息技术的按需供给、IT资源的高效利用指明了方向。

云计算特别是公有云平台的出现可以让用户集中关注自己的应用开发,最大化地创造商业价值,而将额外的工作交给专门的云服务提供商去做,并且按需获得计算资源,投资少门槛低,有利于降低IT小微企业特别是移动互联网创业企业的经营成本,有利于激发整个信息技术行业的创业热情和技术创新。

Web1.0出现之后,B/S体系的服务模式架构逐渐取代了C/S体系的桌面软件客户端,成为人们使用计算机的主要途径。

随着Web2.0的兴起,社会化服务(SocialNetworkService,SNS)网站纷纷涌现,服务了数以亿计的狂热用户。

面对越来越多的用户、越来越碎片化的数据,传统的分层Web架构面临了巨大的挑战,也为云计算的兴起提供了前所未有的巨大机遇。

互联网巨头们在面临新问题挑战的时候纷纷发展并共享了自己的技术方案,例如雅虎的门户网站和邮件服务、谷歌的GAE和BigTable、亚马逊的EC2和S3、Facebook的Cassandra分布式存储技术等。

同时国内的BAT(XX、阿里巴巴、腾讯)的技术团队也不甘落后,在跟踪和研究国外先进技术的同时,他们也开发了自己的专有技术,使得上述主要大型互联网服务不断地丰富化和差异化。

例如2014年淘宝“双十一”购物节,阿里巴巴的零售总额为571亿元,其中移动端成交近243亿,占比42.6%,再次以惊人的交易量刷新了移动电商平台单日交易新高。

面对如此大的并发交易量,背后是阿里云计算团队对软负载配置、分布式服务框架、消息中间件、数据访问层、应用服务器和稳定性平台等不同层次技术的长期积累和研发,他们也为云计算技术在中国的发展创新和实践做出了巨大贡献。

1.2国内外研究现状

云计算是个内涵很丰富的研究领域,学术界和产业界的研究重点各有侧重,对它的研究主要包括了主机虚拟化、网络虚拟化、存储虚拟化(NoSQL数据库)、终端计算虚拟化、云计算安全、云操作系统等方面。

并且很多研究机构和公司都将自己的解决方案在互联网上开源,提供了很多优秀的典型产品供人们研究。

主机虚拟化方面,主要有Eucalyptus、OpenNebula、CloudStack、OpenStack等开源IaaS云平台和微软Hyper-V、VMwareVCloud、AmazonElasticComputeCloud等商用云平台。

目前在国内应用最多,激战最火热的当属CloudStack、OpenStack和VCloud,国内很多厂商例如浪潮、华为等都基于CloudStack和OpenStack的二次包装推出了自主可控的虚拟化管理平台,帮助用户实现虚拟化的基础设施。

网络虚拟化的研究重点是软件定义网络(SDN)。

顾名思义SDN的思想就是要用软件虚拟的方式重新定义数据中心的网络设备,改变原有网络设备的管理控制固件与硬件紧密绑定的商业模式,彻底摆脱网络设备硬件对网络的束缚,使企业在改造和扩展网络结构的时候能够得到最大的灵活性和扩展性。

SDN可以将把网络中的交换机、路由器、防火墙等设备从原来的硬件中提取出到网络虚拟交换管理软件中,而原有的这些网络设备被标准化的基础商用设备取代,企业在面临网络升级时只需要更新硬件设备即可,不需要大规模变更现有网络架构。

可以说SDN最具有代表性的是OpenFlow,它是由斯坦福大学的NickMcKeown教授在2008年4月ACMCommunicationsReview上发表的一篇论文OpenFlow:

enablinginnovationincampusnetworks里首先提出来的。

OpenFlow最早是网络研究人员用来验证创新的网络协议和架构时为了减轻网络配置管理工作而提出的,这一思想把网络控制转发与硬件分离,从网络硬件中把控制逻辑提出抽象出一个虚拟网络管理软件,是的研究人员在改变网络拓扑结构和网络协议时,无需对原有网络硬件进行改动。

非关系型数据库(NoSQL)是随着互联网浪潮特别是近年来社交网络的飞速发展和应用迅速壮大的一类数据库和数据存储,它不单指某一个产品,而是代表了一族产品。

由于广泛采用的关系型数据库在面对互联网应用中大规模海量数据时,因自身数据库范式设计上的束缚,暴露出了与当今的需求如快速数据处理、并行化、可扩展性和成本经济性等方面的不足,促使人们在NoSQL领域寻找答案。

Google在NoSQL的发展中起了很重要的引领作用,它基于自身业务的需要为了支撑搜索引擎、Gmail、GoogleMaps等产品,开了了一整套可伸缩的基础设施用来管理资源和进行大数据处理,这包括了分布式文件系统、面向列族的数据存储、分布式的资源调配系统和基于MapReduce的计算模型环境。

Google在开发这些系统过程中公开的一系列论文被视为NoSQL的重要理论基础,引发了业界的广泛关注和浓厚兴趣,陆续出现了模仿其基础设施的众多开源项目和产品。

许多大大小小的公司都加入进来,愿意学习和借鉴已有经验,并且进行改进,这样NoSQL的概念得到了广泛的传播和接受。

总的来说NoSQL数据库适合于数据模型较简单、不需要高度的数据一致性、需要灵活性和高扩展性的IT系统。

1.3研究的目的及意义

当前云计算平台在政府部门和大型企业信息化建设中的作用日渐凸显,越来越多的政府部门和大型企业集团使用虚拟化技术作为硬件基础设施建设的集成,通过将服务器、存储、网络等资源虚拟化为统一管理的资源池,降低了总体能耗和管理复杂程度,提高了设备使用效率和系统的可靠性和扩展性。

虽然实现了主机与硬件服务器设备的分离,但是应用程序仍然与操作系统紧密耦合,面对大规模的应用部署和迁移时,系统管理人员任然需要反复在虚拟机中安装配置应用中间件、数据库和操作系统,并没有获得云计算更多的帮助。

云计算环境中应用程序的自动部署与管理系统就是为了解决这些问题而出现的,使用该系统保证了云平台资源的有效利用和简便操作,减轻了应用程序维护管理的工作量,充分利用了云计算可弹性伸缩的核心能力,实现了应用的高可用性和高扩展性。

本文重点考虑JavaWeb应用程序作为应用程序管理的研究对象,这是因为JavaWeb应用凭借Java成熟的技术体系、开源开放的语言特性以及良好的社区支持,在政务部门、大型企业集团等安全要求高的企业级应用中得到广泛使用,同时由于当前大部分软件公司有基于JavaWeb应用程序开发了自己的快速开发平台,它极大的简化了开发人员的工作,显著提高了业务系统开发效率,成为支撑Web业务应用的经典解决方案。

我主要从事国家测绘地理信息部门信息化及电子政务应用系统的开发和运行维护,在研究生学习期间,我接触并深入学习了OpenStack云计算平台,并重点研究基于OpenStack平台如何实现应用程序级别的自动部署和管理,对应用程序维护人员隐藏虚拟机和云计算平台的管理细节,并且不再需要在虚拟机中配置管理应用中间件的工作,将他们从繁杂的虚拟机管理和应用中间件安装配置管理中解脱出来,使他们可以更加关注对应用系统本身业务上的管理。

1.4论文的主要内容

本文主要研究云环境中应用程序自动部署管理系统的设计和实现。

论文主要研究了当前云计算的发展现状,特别是主流商业云计算系统的市场格局,分析了典型PaaS系统的架构和功能,提出了基于OpenStack的应用自动部署管理系统的需求背景、应用场景,然后详细讲述了系统的总体架构和功能模块划分,并且从虚拟机与系统的通信方式设计、命令行的设计实现以及系统使用流程三方面介绍系统的设计细节。

论文分章节从虚拟机管理、应用自动配置管理、应用环境监控与自动扩展三个方面详细说明了应用自动部署管理系统的实现过程。

虚拟机管理重点讲述了通过OpenStackAPI管理虚拟机的生命周期,初始化虚拟机环境,虚拟机管理模块与虚拟机Agent的网络通信、通信协议等内容。

应用自动配置管理讲述了应用程序环境的配置、应用程序的部署与动态管理,应用环境监控与自动扩展讲述了虚拟机监测指标的获取与传输,虚拟机和应用程序平均负载的计算,应用故障重启以及应用动态扩展和收缩。

最后论文在实验环境下对系统进行了各项功能测试,使用压力测试工具模拟用户并发访问应用系统,考察系统动态应用扩展和收缩的能力。

第2章云计算与应用扩展性

2.1云计算简介

2.1.1概念

在20世纪90年代互联网浪潮席卷全球后,又经历了大约15年的时间,云计算接棒互联网成为IT领域讨论最热烈的词汇。

正如一千个人眼里有一千个哈姆雷特,不同的用户和厂商对云计算的定义也不完全相同,例如作为云计算的主要参与者之一的IBM对于云计算的定义是这样的,“云是一个虚拟化的计算机资源池。

它能够承载多种不同的工作负载,包括后端的批处理作业和与用户交互的应用程序。

”基于这一定义,云能使程序通过快速提供的虚拟机得以快速的部署和扩展。

云支持冗余、自恢复和高扩展性的编程模型,可以使程序从许多不可避免的软硬件故障中恢复。

另外云系统需要能够实时监测资源使用情况,这样就能够在需要时再次平衡分布计算资源。

云计算提供了一个具有弹性资源的虚拟化平台,它为用户提供硬件、软件以及各种动态的数据集。

云计算的思想是使用数据中心的服务器集群和超大型数据库系统将传统的桌面计算迁移到面向服务的平台。

云计算依靠其低成本和简单易用的特性使用户和计算提供商都能从中获益,主机虚拟化使得可以借此降低成本。

云计算同样也能够满足多用户应用程序并发的需求。

云生态系统必须在设计上做到安全、可信和可靠的。

也可以把云看成是一个集中化管理的资源池。

同样也可以认为云是在所有用到的服务器中执行分布式计算的一组服务器集群。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1