硕士毕业论文范文——开发测试云平台的设计与实现 --权限管理  定时任务调度与工作负载管理模块_第1页
硕士毕业论文范文——开发测试云平台的设计与实现 --权限管理  定时任务调度与工作负载管理模块_第2页
硕士毕业论文范文——开发测试云平台的设计与实现 --权限管理  定时任务调度与工作负载管理模块_第3页
硕士毕业论文范文——开发测试云平台的设计与实现 --权限管理  定时任务调度与工作负载管理模块_第4页
硕士毕业论文范文——开发测试云平台的设计与实现 --权限管理  定时任务调度与工作负载管理模块_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士专业学位论文开发测试云平台的设计与实现权限管理、定时任务调度与工作负载管理模块Design and Implementation of Development-and-test Cloud Platform: Right Management, Job Scheduling and Workload Management Module作者:导师: 北京交通大学2019年2月学校代码:密级:65北京交通大学硕士专业学位论文开发测试云平台的设计与实现权限管理、定时任务调度与工作负载管理模块Design and Implementation of Development-and-test Cloud Platform: Right Management, Job Scheduling and Workload Management Module作者姓名:学 号:导师姓名:职 称:工程硕士专业领域:软件工程学位级别:硕士北京交通大学2019年2月致谢本论文的工作是在本人的导师副教授的悉心指导下完成的,副教授严谨的治学态度和科学的工作方法给了本人极大的帮助和影响。在此衷心感谢两年来老师对本人的关心和指导。副教授悉心指导本人完成了企业的实习工作,在学习上和生活上都给予了本人很大的关心和帮助,在此向老师表示衷心的谢意。副教授对于本人的实习工作和论文都提出了许多的宝贵意见,在此表示衷心的感谢。在企业实习及撰写论文期间,企业导师王红亮、同事江新根、樊龙、李金平、同学屈鹏琦等对本人论文中的需求分析、技术选型、设计与实现等工作给予了热情帮助,在此向他们表达本人的感激之情。另外也感谢家人,他们的理解和支持使本人能够在学校专心完成本人的学业。北京交通大学硕士专业学位论文ABSTRACT摘要为了适应现代软件开发模型高速迭代的特性、满足多项目并行开发与测试的需要,在软件研发项目的开发与测试阶段,开发与测试环境具有需求量巨大、种类繁多、更迭频繁、时效性强、重用性高等特点。开发与测试环境是ICT(Information and Communications Technology,信息与通信技术)资源的科学配置与有机组合。而传统的ICT资源管理存在着资源的配置不灵活、部署周期长、利用率低下等诸多亟待解决的问题。开发测试云平台利用虚拟资源管理技术,通过网络整合ICT资源,构建共享虚拟资源池,并根据软件开发与测试需要,以动态、按需、可度量的方式向软件研发项目提供开发与测试环境的配置与管理服务,实现对开发和测试环境中的ICT资源的灵活配置、便捷部署与高效利用。开发测试云平台是云计算技术在软件开发测试环境配置领域的具体应用。本文从开发测试云平台出发,以权限管理、工作负载管理和定时任务调度三个模块作为切入点展开深入的分析与设计。权限管理是平台的基础业务模块,提供以项目为边界的、基于角色的用户权限管理机制。工作负载管理是平台的核心业务模块,提供基于可重用的工作负载配置方案的虚拟服务器和应用程序部署业务,提供虚拟服务器的创建、启停、回收和虚拟桌面连接服务。定时任务调度是平台的关键技术模块,基于Quartz Scheduler框架提供静态配置的定时任务调度和动态生成的独立定时任务调度,并加以改进,实现了基于任务分发机制的链式定时任务调度。在需求分析阶段,本人独立完成了界面与交互原型的设计工作;在设计与实现阶段,本人独立完成了权限管理模块、工作负载管理模块、定时任务调度模块、项目资源管理子模块、登录控制子模块和系统部署升级子模块的设计与实现,参与完成了数据库设计和配置方案管理模块的设计与实现。目前,该平台仍处在研发阶段。部署于测试环境中的开发测试云平台运行良好;本人完成的模块功能完善、运行稳定、实现了预期目标。关键词:开发测试云;ICT资源;定时任务调度ABSTRACTIn order to adapt to the rapid iteration of modern software development model, meet the needs for multi-project parallel development and testing, there is huge demand for diverse development and testing environments in development and testing phases of software research and development projects. These environments are time-sensitive, updated frequently and reusable. The development and testing environment is a well configured combination of ICT (Information and Communications Technology) resources. There are many problems to be solved in the traditional ICT resources management, such as rigid resource allocation, long deployment cycles and low utilization. Using virtual resource management techniques, development-and-test cloud platform integrates resources over the network to build a shared pool of virtual resources. According to software development and testing needs, development-and-test cloud platform provides development and testing environment configuration and management services to software research and development projects in a dynamic, on-demand and measurable way, to achieve flexible configuration, easy deployment and efficient use of ICT resources.The development-and-test cloud platform is the combination of cloud computing and environment configuration for software development and testing. The thesis focus on the analysis and design of development-and-test cloud platform. The right management module, workload management module and job scheduling module act as the entry points. As a basic business module, right management module provides a role-based user right management mechanism within project boundary. As a core business module, workload management module is able to deploy virtual servers and applications according to reusable workload configuration templates, is able to start, stop, terminate the virtual server and access the virtual server via virtual network computer technology. As a key technical module, job scheduling module schedules jobs based on Quartz Scheduler framework. Jobs are registered by static configuration or generated dynamically at runtime. As an improvement of stand-alone job scheduling, a job queue scheduling based on job dispatching mechanism is proposed. In the requirements analysis phase, the author completed interface and interaction prototype design independently. In the design and implementation phase, the author completed right management module, workload management module, job scheduling module, project resources management sub-module, login control sub-module and system upgrade sub-module independently, participated in and completed the database design and workload configuration management module.The platform is still in the development stage currently. The development-and-test cloud platform deployed in the test environment runs well. The modules implemented by the author are functional and stable, and the implementation of these modules achieves the desired objectives.KEYWORDS:Development-and-test Cloud; ICT Resources; Job Scheduling北京交通大学硕士专业学位论文目录目录摘要iiiABSTRACTiv1 引言11.1 项目背景11.2 项目意义与目的21.3 国内外发展现状41.4 论文主要工作51.5 论文组织结构61.6 本章小结72 开发测试云平台关键技术分析82.1 服务器虚拟化技术82.2 云计算平台82.3 云应用管理平台92.4 展现中间件技术92.5 定时任务调度技术102.6 本章小结103 开发测试云平台需求分析113.1 开发测试云平台建设目标113.2 开发测试云平台逻辑结构123.3 开发测试云平台功能性需求分析133.3.1 开发测试云平台用例分析133.3.2 权限管理用例分析143.3.3 工作负载管理用例分析153.3.4 定时任务调度用例分析163.4 开发测试云平台非功能性需求分析173.5 本章小结184 开发测试云平台概要设计194.1 开发测试云平台架构设计194.2 开发测试云平台功能模块设计204.3 开发测试云平台组件设计214.4 开发测试云平台数据库设计234.5 本章小结245 开发测试云平台详细设计与实现265.1 权限管理模块详细设计与实现265.1.1 用户管理子模块详细设计与实现265.1.2 角色管理子模块详细设计与实现285.1.3 权限管理子模块详细设计与实现305.2 定时任务调度模块详细设计与实现335.2.1 定时任务调度模块详细设计思路335.2.2 配置型定时任务详细设计与实现365.2.3 独立定时任务详细设计与实现375.2.4 链式定时任务详细设计与实现385.3 工作负载管理模块详细设计与实现405.3.1 工作负载管理模块界面设计405.3.2 工作负载管理子模块详细设计与实现435.3.3 工作负载控制子模块详细设计与实现465.4 本章小结486 开发测试云平台测试与运行结果506.1 开发测试云平台敏捷测试方案506.2 权限管理模块测试与运行结果516.3 工作负载管理模块测试与运行结果526.4 工作负载并发部署性能测试556.5 本章小结577 结论59参考文献60作者简历及攻读硕士学位期间取得的研究成果62北京交通大学硕士专业学位论文结论1 引言在软件的开发与测试阶段,存在着开发与测试环境中的ICT(Information and Communications Technology,信息与通信技术)资源配置不灵活、部署周期长、利用率低下等问题。开发测试云平台利用云计算技术,以动态、按需、可度量的方式向软件研发项目提供开发与测试环境的配置与管理服务,实现对开发和测试环境中的ICT资源的灵活配置、便捷部署与高效利用。本章将阐述项目的背景、意义与目的,介绍国内外发展现状、论文的主要工作和组织结构。1.1 项目背景在软件工程中,软件开发模型描述和表示软件生命周期中的各个阶段之间的复杂关系与转化过程1。瀑布模型和敏捷开发是被广泛实践的软件开发模型,两者对开发和测试环境的数量和种类均有着较高的要求。瀑布模型被诸多政府项目和大公司所采用2。“一次通过”是瀑布模型的本质,要求每个活动只做一次,并最终得到软件产品3。在瀑布模型的软件实现和测试过程中,如果进行单元测试、集成测试、确认测试、系统测试、验收测试、回归测试、Alpha测试、Beta测试各一轮,则至少需要1个开发环境和8个测试环境。Scrum是一个增量的、迭代的敏捷开发过程,由多个小的迭代周期组成,迭代周期通常固定在2至6周之间,迭代周期结束时产生可交付的产品增量4。一个为期3个月的采用Scrum敏捷方法开发的软件项目支持3种运行平台和24种语言环境,开发过程中采用每日构建方式,并对其进行单元测试、集成测试、系统测试、功能测试、性能测试、配置测试、回归测试和全球化测试,则至少需要3个开发环境和33个测试环境5。假设一套开发与测试环境从提出申请到用毕拆除需要10人/日,则在一个为期6个月的采用瀑布过程的10人项目中,开发与测试环境管理的时间成本约占比5%;而在一个为期6个月的采用Scrum过程的10人项目中,开发与测试环境管理的时间成本占比高达20%。开发与测试环境是ICT资源的科学配置与有机组合。传统的ICT资源管理难以应对迭代开发与并行测试的需求,存在诸多亟待解决的问题。(1) ICT资源管理不灵活。开发与测试环境中的服务器、存储、操作系统和中间软件等ICT资源,通常由开发和测试人员申请与使用,由基础架构组负责运维与管理。多项目开发与测试的并行、使用者与运维者的责权交叉致使企业资产管理中的ICT资源总量不清、借用与使用情况不明。(2) 开发测试资源申请周期长。有数据显示,在为期6个月的开发测试项目中,花费在资源的申请、审批、等待、安装、配置、拆除和归还等重复性工作上的时间超过1个月。这类重复性工作直接影响了开发和测试工作的效率。(3) 员工工作效率低下。负责基础架构工作的工程师更加希望从事诸如错误诊断和性能调优等具有高附加值的工作,而非从事诸如制作软件镜像文件、更新服务器和更新硬件设备固件等重复性工作。这些重复性工作不仅影响工程师技能的提升,而且使其缺乏工作兴趣,继而影响其工作效率。(4) 设备利用率低下。大量调研数据显示,开发测试所使用的服务器的CPU(Central Processing Unit,中央处理器)平均利用率不足5%,以太网带宽利用率不足10%。此类资源浪费现象阻碍了企业投资回报率的提升。可见,在软件研发项目的开发与测试阶段,其开发与测试环境具有需求量巨大、种类繁多、更迭频繁、时效性强、重用性高等特点。而传统的ICT资源管理难以适应现代软件开发模型高速迭代的特性、不能满足多项目并行开发与测试的需要。云计算是一种通过网络统一组织和灵活调用各种ICT资源,实现大规模计算的信息处理方式6。云计算利用虚拟资源管理与分布式计算等技术,通过网络将包括计算与存储、应用运行平台、软件等在内的分散的ICT资源整合形成共享的资源池,并以动态、按需、可度量的方式向用户提供服务。云计算为批量化和规模化的软件研发与测试业务提供了面向服务的、统一的、动态规划的基础平台,能够有效地将标准化、高质量的研发管理体系和管理思想落实到软件企业和组织的各个研发实体和研发人员身上,从而保障不同的研发项目均能获得同样高质量的成功。“开发测试云”即是这种通过云计算技术与软件研发管理的有力结合,为软件企业和组织建立起来的、可持续发展的基础的技术平台7。1.2 项目意义与目的开发测试云具有利用宽带网络连接、支持ICT资源共享、提供快速按需与弹性服务以及服务可度量4个核心特征。服务的使用者与提供者之间、服务提供者内部的各个节点之间均通过高速网络相连。ICT资源在云内可由全体用户共享。用户可以根据实际需求,迅速获取、释放资源,或对资源进行动态扩展,并跟据实际的资源使用量向服务提供者付费。按照服务提供的资源所在的层次分类,开发测试云属于IaaS(Infrastructure as a Service,基础设施即服务)和PaaS(Platform as a Service,平台即服务)的云计算。按照服务提供的对象与范围分类,开发测试云是面向机构内部提供服务的私有云。本开发测试云平台借助CloudStack完备的云平台管理功能与AppStack丰富的云应用程序管理功能,结合符合中国用户使用习惯的业务流程和用户界面,打造一款既提供便利的虚拟环境配置解决方案,又提供完备的虚拟资源申请、审批、监控功能的开发测试云服务。通过构建开发测试云平台,使ICT资源的管理脱离物理设备局限和束缚。将开发环境、测试环境的软件开发和测试的管理转变为虚拟环境的管理,将ICT资源的申请和使用转变为虚拟资源的申请和使用。通过构建开发测试云平台,建立统一的虚拟资源申请、审批和使用流程。使资源总数、资源的利用情况和资源的借用、归还与回收情况等涉及资产管理的问题迎刃而解。通过构建开发测试云平台,缩短资源申请周期,减少重复性工作。开发测试资源的申请、审批和使用均是“所见即所得”的,申请的资源一旦通过审批,便立即可以投入使用;用户在提交资源使用申请之前或在等待审批结果的过程,可规划和设计虚拟环境解决方案,将所需的硬件资源、软件资源和配置信息等保存至虚拟环境解决方案;审批通过后,平台即可根据该解决方案生成虚拟环境,无需人为干预。资源使用完毕后,虚拟环境将被自动回收。最大程度上缩减资源的申请、审批、等待、安装、配置、拆除、归还和盘点等重复性工作。通过构建开发测试云平台,增强员工工作积极性,提升工作效率。开发测试云平台将物理环境和虚拟环境隔离开来,负责进行资源维护的基础架构工作组只需关注物理环境,潜心钻研错误诊断、性能调优等高附加值的工作。开发测试人员则利用开发测试云平台提供的操作系统模板、应用软件模板、虚拟环境配置方案模板等实现开发和测试环境的快速构建。通过构建开发测试云平台,提高设备利用率,提升投资回报率。在硬件资源一定的情况下,开发测试云平台通过虚拟化技术实现对硬件资源使用率的最大化,有效减少硬件资源的闲置率;虚拟化技术的使用使得动态、按需扩展硬件资源成为可能,用户不必担心追加的硬件投入与实际需求量不匹配,也无需担心对硬件资源的扩展会影响正在使用的开发和测试环境,因为虚拟化技术使得硬件资源的改动对虚拟环境是透明的。高效的资源管理流程,便捷的虚拟环境生成策略,积极的工作态度和高速的工作效率,共同助力缩短软件的开发和测试周期、提高软件开发和测试工作的质量、提升投资回报率。1.3 国内外发展现状开发测试云这一概念在学术研究和工程实践领域都具有较高的研究与实践热度。在学术研究领域,有学者分析了云计算对软件测试领域的影响,阐述以基于云计算的软件测试和面向云计算的软件测试的异同与联系,并重点分析在云计算时代软件测试的新方向及需要重点突破的关键技术8;也有学者提出了集测试资源管理、测试任务管理和测试报告管理于一身的基于云计算的测试管理平台的设计理念9;国内外科研机构对“测试即服务”(Testing as a Service,TaaS)进行了大量研究,提出了云测试的主要步骤10-12;国外学者也提出了新一代云开发平台的概念13,国内也有研究人员从事企业云开发平台的研究工作14。在软件研发企业中,开发测试云等技术和产品也层出不穷15。微软、IBM、VMware和惠普等大型公司都提出了自己的开发测试云平台解决方案,并推出了自己的开发测试云产品。中国银行等商业银行16, 17、中石化等国内大型企业也相继推出了适合于自身业务诉求的开发测试云18。(1) 微软开发测试云。该开发测试云解决方案基于微软服务器平台构建,利用其Hyper-V虚拟化技术将底层的计算资源虚拟化,提供动态化、端到端的管理、监控、部署和配置服务,从而形成动态化的资源池19。该资源池提供虚拟测试管理服务和动态资源分配服务,并允许用户构建云服务。该解决方案为用户提供自助服务门户,所有功能均以Web形式提供给最终用户。解决方案包含软件生命周期管理功能,并允许用户对功能模块进行自定义,既满足用户需要,又避免用户直接接触数据中心基础架构,实现安全、高效、快速的软件开发测试20。(2) IBM开发测试云。该开发测试云解决方案利用PowerVM和Xen虚拟化技术建设标准化的软件、硬件资源池。其云管理平台,提供服务目录、资源管理流程和资源调度集成功能21。整个开发测试过程对基础资源池的要求均以服务形式提供,并提供资源申请、审批、使用、提示、回收、盘点等资源生命周期各阶段所涉及到的组织、人贸、权限、安全、计费、审计等一系列管理流程,并将标准化资源池底层管理软件与云管理平台软件集成至云管理平台。该解决方案还提供与身份认证系统监控及流程系统、计费系统等的系统集成功能,以及将现有的开发测试项目迁移到开发测试云平台上的系统迁移功能。(3) VMware开发测试云。该开发测试云通过VMware vSphere在云计算基础架构之上搭建虚拟化平台,利用VMware vCenter Server进行虚拟化管理,使用VMware vCloud Director提供云计算服务平台,并在云计算服务平台之上构筑云基础架构运营平台。该平台提供从硬件资源到虚拟服务器、虚拟应用的安全管理策略;提供基于流程的管理策略,通过审核资源使用申请,灵活地提供计算资源;为终端用户提供灵活、便捷、安全的桌面云服务,可以实现远程办公,并且快速部署桌面应用;提供包括全面的状态监控,性能检测,健康检查及趋势分析,以及系统运行报告在内的运营管理服务;提供端到端的性能预警及前瞻性能分析,提供从架构至代码一级的性能管理;提供完善的云开发环境和应用管理平台22。(4) 惠普开发测试云。该开发测试云基于惠普融合基础设施架构的虚拟资源池,通过HP CloudSystem实现虚拟化和自动化,并集成服务管理和自动化部署。在此之上通过自助服务门户提供操作系统和应用管理23。(5) 中国银行开发测试私有云。中国银行信息中心构建了以云计算技术为载体、以虚拟化架构为基础、以自动化部署为核心、以标准化操作为准绳的私有云,并以此实现资源的最大化利用、软件的自动化部署与系统的实时性监控,建设针对开发测试环境大规模应用的“开发测试私有云”24。该开发测试云投入使用后,资源使用的业务流程得以改善;申请流程得以简化,管理水平得以提升,资源拨付效率提升33%,人力资源节省50%;网络、设备和系统利用率提升均超过60%24。从技术角度分析,以上五款开发测试云解决方案均利用虚拟化技术整合ICT资源、构建ICT资源池,通过Web端或桌面客户端向用户提供管理入口,部分提供了用户身份认证系统等外部外部系统的整合服务;从业务角度分析,以上五款开发测试云解决方案均提供资源申请与管理的自助服务,部分提供计费、动态迁移、状态监控和桌面云服务。1.4 论文主要工作开发测试云平台面向最终用户提供基于项目的用户-角色-权限管理机制,提供面向项目的虚拟资源的申请与审批流程,提供虚拟服务器及应用程序的创建、配置、管理和回收功能;面向平台管理者,提供虚拟资源池管理和监控功能。本人在立项伊始即投入到该开发测试云平台的研发工作中,参与了从需求分析到设计与实现的全部环节。本人在需求分析阶段,独立完成了界面与交互原型的设计工作;在设计与实现阶段,独立完成了权限管理模块、工作负载管理模块、定时任务调度模块、项目资源管理子模块、登录控制子模块和系统部署升级子模块设计与实现工作,参与完成了数据库设计工作和配置方案管理模块的设计与实现工作。由于篇幅有限,本文仅选取权限管理、工作负载管理和定时任务管理三个模块作为平台基础业务、核心业务与关键技术的典型代表,加以深入分析、详细设计并实现。权限管理是平台的基础业务模块。该模块以页面的可访问性和页面元素的可见性作为权限管理的最小单位,通过基于角色的用户权限管理机制,控制项目成员的访问与操作权限。工作负载管理是平台的核心业务模块。使用预先定制的工作负载配置方案,或在其基础上稍作调整,即可根据配置方案部署虚拟服务器和安装应用程序至服务器。实现了对虚拟服务器的创建、启停、回收和虚拟桌面连接操作。作为平台中业务逻辑最为复杂、使用率最高的模块,其界面设计、交互设计和最终实现均独具匠心。定时任务调度是平台的关键技术模块。基于Quartz Scheduler任务调度框架并结合具体的业务需求,不断更新设计与实现思路,形成了“静态配置型定时任务与动态注册型定时任务相互搭配,从依靠硬编码链接的独立定时任务向基于任务分发机制的链式定时任务不断进化”的设计与实现思路。1.5 论文组织结构本文共分为7个章节:第1章, 引言。主要介绍开发测试云平台项目的背景、意义与目的,以及国内外同类产品的发展现状,介绍本文的主要工作和论文的组织结构。第2章, 开发测试云平台关键技术。主要针对开发测试云平台在服务器虚拟化、云计算平台、云应用管理平台、展现中间件和定时任务调度框架五方面的关键技术进行了同类技术对比与分析。第3章, 开发测试云平台需求分析。从开发测试云平台的建设目标入手分析得出开发测试云平台的逻辑结构、功能性需求和非功能性需求,分析开发测试云平台的整体需求,并对权限管理、工作负载管理和定时任务调度等典型业务进行了需求分析。第4章, 开发测试云平台概要设计。结合需求分析,对开发测试云平台进行概要设计。设计从开发测试云平台的架构设计入手,通过分析得到功能模块设计和组件设计,并据此进行数据库设计。第5章, 开发测试云平台详细设计与实现。根据需求分析和概要设计结果,对权限管理模块、工作负载管理模块和定时任务调度模块进行详细设计并实现。针对工作负载模块调用定时任务调度模块中出现的定时任务耦合性高、难以复用的实际问题,对定时任务调度逻辑加以改进,实现了基于任务分发机制的链式定时任务调度策略。第6章, 开发测试云平台测试与运行结果。针对敏捷开发特点,制定了敏捷测试方案。并对权限管理模块和工作负载管理模块进行了功能性测试,并结合测试过程展示了权限管理和工作负载管理模块的运行情况。通过分析工作负载并发测试结果,确定了影响工作负载并发部署性能的瓶颈因素。第7章, 结论。对开发测试云平台分析、设计与实现的全过程进行回顾与总结,提出了改进建议。1.6 本章小结本章分析了软件开发与测试环境需求量巨大、种类繁多、更迭频繁、时效性强、重用性高的原因。分析了传统的ICT资源管理难以应对迭代开发与并行测试的需求,存在资源的配置不灵活、部署周期长、利用率低下等问题的项目背景。基于该背景,提出了利用云计算技术搭建开发测试云平台,阐述了开发测试云平台的项目意义与开发目标。本章介绍了国内外同类产品的研发现状。列举和分析了微软、IBM、VMware、HP和中国银行等知名厂商同类产品的技术架构、产品功能和研发成果。最后,本章介绍了论文的主要工作与组织结构。介绍了作者在开发测试云平台中的主要工作。2 开发测试云平台关键技术分析开发测试云平台的关键技术包括服务器虚拟化技术、云计算平台、云应用管理平台、展现中间件和定时任务调度技术。其中,服务器虚拟化技术、云计算平台和云应用管理平台用于构建云平台,提供核心技术支持;展现中间件技术和定时任务调度技术用于实现开发测试云平台的核心业务逻辑,以及以Web形式提供平台自助管理服务。2.1 服务器虚拟化技术服务器虚拟化技术允许多台虚拟机在单一物理服务器上运行。虚拟机之间被完全隔离开来,虚拟机与基础主机之间通过系统管理程序的软件层分离开来25。因此,不同的虚拟机能够运行不同的操作系统和应用程序。由于虚拟机与基础主机不存在依赖关系,所以虚拟机可以实时迁移,即在物理服务器间移动而无需中断运行。目前,主流的服务器虚拟化技术包括VMware ESXi、Critrix XenServer、Microsoft Hyper-V和KVM(Kernel-based Virtual Machine,基于内核的虚拟机)等。VMware ESXi与Microsoft Hyper-V是完全虚拟化技术的代表,该技术允许任何操作系统在不加改动的情况下运行,但有一定的性能损耗,商用需付费;Critrix XenServer是一种准虚拟化技术,性能优异且开源免费;KVM是一种操作系统层虚拟化技术,所有虚拟服务器必须运行同一操作系统,灵活性较差,但性能较高26。经对比分析,结合建设成本控制要求和虚拟机必须支持多种操作系统的业务需求,开发测试云平台选取开源免费的XenServer作为平台的服务器虚拟化技术。2.2 云计算平台目前主流的提供虚拟资源管理的云计算平台有CloudStack和OpenStack27。这类云计算平台在功能上与单机操作系统类似,承担着向下控制底层资源,向上提供计算、存储等资源接口的责任,因此也被称为“云操作系统”,其主要关键技术包括实现底层资源池化管理的“资源池”管理技术和向用户提供大规模存储、计算能力的分布式任务和数据管理技术28。CloudStack和OpenStack均采用开源许可证,可以免费使用,均支持KVM、XenServer、VMware、Oracle VM、Xen等主流的服务器虚拟化技术29。CloudStack部署便捷,可通过现存基础架构创建云服务,全部功能均可以通过基于浏览器的界面完成;OpenStack的部署相对复杂,大部分管理操作需在命令行下完成30, 31。经对比分析,综合考虑部署与维护成本,选取开源的具有友好的管理界面的CloudStack作为云计算平台。2.3 云应用管理平台在复杂的云环境中部署应用程序时,系统配置管理工具是不可或缺的。目前应用较为广泛的系统配置软件包括Chef和Puppet等32。AppStack是由AppCara公司研发的一款云应用管理平台,用以简化在多种公有云或私有云中配置和管理复杂的应用程序。AppStack的架构采用数据模型驱动技术,该技术使得AppStack可以将绝大多数的应用程序的管理任务高度的自动化。AppStack利用一个动态的配置仓库(数据引擎)采集工作负载中的全部组件的配置信息,并将其组装至数据模型。此数据模型采集工作负载相关的全部元素的信息,包括虚拟服务器、虚拟服务器中的软件包、应用程序的配置参数和设置,以及众多组件间的依赖关系。当用户利用AppStack的门户对工作负载做出修改时,AppStack会实时追踪工作负载中的全部信息。得益于AppStack的代理软件,AppStack可以更新工作负载中正在运行的实例的系统参数和配置,无需用户手动登入虚拟服务器更新配置文件。AppStack云应用管理平台较Chef和Puppet更为先进。该平台基于Puppet构建,提供多种云应用的管理与部署功能,支持自定义应用程序的发布。为了提供功能强大、运行稳定的云应用管理功能,开发测试云平台选取了具有商业许可的AppStack作为云应用管理平台。2.4 展现中间件技术为了构建开发测试云平台的管理服务端,平台采用Java EE技术搭建了专门的Web应用程序,提供基于浏览器端的平台管理界面。该Web应用程序采用Spring MVC技术和Hibernate技术。在Web表现层框架选取过程中,主要从学习成本的角度对Dojo框架和Dorado框架进行了取舍。Dorado框架是源代码开放的展现层中间件,提供强大的中文交流社区。Dorado能够与Spring技术和Hibernate技术完美结合,使用三种技术完成的系统具有良好的用户体验、可维护性以及可扩展性,开发效率高33。利用Dorado展现中间件可以创建更加美观、更加人性化的Web操作界面,可以提升表现层开发效率34。Dorado展现中间件,提供利用JavaScript搭建的纯浏览器前端展现系统,兼容主流浏览器;提供与后台系统集成的服务端引擎,辅助界面自动生成,客户端与服务端的数据通信、状态同步;提供基于Eclipse的集成开发工具,辅助对Dorado界面及其他相关配置进行快速定制35。为了提升开发效率、降低学习成本,开发测试云平台选取Dorado作为展现中间件。2.5 定时任务调度技术目前,使用Java语言实现定时任务调度的技术有三种。利用Java语言提供的java.util.Timer类可实现以一定频率执行任务,但不能定时执行,也不支持任务的持久化;Spring框架提供的Spring Task是轻量级的定时任务调度技术,支持使用注解和配置文件定义定时任务,但不支持任务持久化;Quartz Scheduler是一种强大的定时任务调度框架,任务以一定频率执行或在指定时间执行,支持任务的持久化。Quartz Scheduler框架的核心概念包括调度器、触发器和任务。任务是具体业务逻辑的集合,可包括需要执行的任何业务逻辑;触发器则规定了任务执行的时间条件,时间条件既可通过开始时间、重复周期等设定,也可通过复杂的排程表达式设置;调度器用以维护触发器和任务,确保任务在满足时间条件时触发。开发测试云平台要求定时任务在中断后,需恢复至原状态继续执行,必须将其持久化,所以选取Quartz Scheduler框架作为任务调度框架。2.6 本章小结本章针对服务器虚拟化技术、云计算平台、云应用管理平台、展现中间件和定时任务调度技术,分析对比了同类技术的优缺点。结合项目实际情况,开发测试云平台采用开源免费的XenServer作为服务器虚拟化技术,采用开源免费且操作便捷的CloudStack作为云计算平台,采用需要商业许可但功能完备的AppStack作为云应用管理平台,采用功能强大且学习成本低的Dorado框架作为展现层中间件,采用成熟稳定的Quartz Scheduler框架作为定时任务调度框架。3 开发测试云平台需求分析需求分析旨在将业务诉求转化为开发需求,实现业务语言向技术语言的转化。本章将首先分析开发测试云平台的建设目标,并根据建设目标设计开发测试云平台的逻辑结构,最后分析开发测试云平台的功能性需求和非功能性需求。由于篇幅有限,本章仅以开发测试云平台权限管理、工作负载管理和定时任务调度作为开发测试云平台基础业务、核心业务和关键技术的代表进行功能性需求分析。3.1 开发测试云平台建设目标开发测试云平台旨在利用虚拟资源管理技术,通过网络整合ICT资源,构建共享虚拟资源池,并根据软件开发与测试需要,以动态、按需、可度量的方式向软件研发项目提供开发与测试环境的配置与管理服务,实现对开发和测试环境中的ICT资源的灵活配置、便捷部署与高效利用。开发测试云平台提供基于工作负载的虚拟资源的配置与管理服务。工作负载是一种树状逻辑结构,用以组织虚拟服务器和应用程序。一个工作负载可划分为多个逻辑意义上的层;一个层中可包含多个虚拟服务器;一个虚拟服务器中可安装多个应用程序。工作负载的名称与用途、层的数量与位置、虚拟服务器和应用程序的配置信息等均保存在工作负载中,且均是可配置的。开发测试云平台提供操作系统堆栈管理功能。操作系统堆栈是经过配置的已安装操作系统的虚拟服务器镜像。用户可以服务器堆栈为基础,简单调整其CPU数量、内存和磁盘容量的配置信息后,将其快速部署为虚拟服务器。开发测试云平台提供应用程序订阅功能。预置的应用程序包括大数据、商业智能、内容管理、客户关系管理、生命科学、协作工具、数据库、开发工具、开发平台等十余大类七十余款应用程序。用户可选取所需的应用程序,修改配置信息,并将其部署至虚拟服务器。开发测试云平台提供基于工作负载的配置方案管理功能。用户可将工作负载及其内部全部元素的配置信息保存为工作负载配置方案。用户可根据该配置方案创建工作负载。该配置方案可反复使用、创建多套虚拟环境,也可在开发测试云平台内共享。开发测试平台提供基于项目的虚拟资源申请和审批流程。项目的CPU数量、内存容量和磁盘容量等虚拟资源的上限均需按照项目资源审批流程进行申请和审批。开发测试云平台以项目为边界管理和组织用户与虚拟资源,提供基于角色的用户权限管理功能。项目启动后,可邀请平台内已有的用户加入项目,或在项目中创建新用户,可在项目中创建和共享工作负载配置方案,并根据工作负载配置方案部署工作负载。虚拟资源在项目生命周期结束后自动回收。开发测试云平台提供一套基于浏览器的管理界面,通过该界面可实现对开发测试云平台的全部管理操作。3.2 开发测试云平台逻辑结构根据开发测试云平台建设目标,平台由下至上分为6个逻辑层次,依次为:平台、项目、工作负载、层、虚拟服务器和应用程序。开发测试云平台的逻辑结构图如图3-1所示。图3-1 开发测试云平台逻辑结构图Figure 3-1 Logic Structure Diagram of Development-and-test Cloud Platform开发测试云平台内的一切资源,包括虚拟服务器和应用程序等虚拟计算资源及人力资源,均以项目为单位组织和管理,因此平台由若干项目组成;在项目内,以工作负载的形式组织虚拟服务器和应用程序,一个工作负载包含多个虚拟服务器,在每个虚拟服务器上可以部署多个应用程序。为了方便用户管理虚拟服务器,将工作负载划分为多个层,以分层结构组织虚拟服务器。3.3 开发测试云平台功能性需求分析由于开发人员与用户在认知和表达上的差异,开发人员难以准确理解由非形式化的自然语言描述的软件需求,因此,在软件需求工程中通常采用形式化和可视化的语言分析和记录需求36-38。本节将采用形式化的统一建模语言分析开发测试云平台的功能性需求,以保持用户与开发人员对问题的理解和表达的一致性、减少语义误差、准确描述系统功能和交互关系以保证系统准确性39。3.3.1 开发测试云平台用例分析通过分析平台建设目标,开发测试云平台的用例参与者为用户。根据开发测试云平台的用户权限管理需求,用户的操作权限可灵活定制,为便于分析与表达,此后的表述中仅以用户作为用例参与者。用例涉及的系统范围即开发测试云平台。开发测试云平台建设目标可分解为7个用例,即:管理权限、控制访问范围、管理项目、管理配置方案、管理工作负载、调度定时任务和统计资源。其用例图如图3-2所示。图3-2 开发测试云平台用例图Figure 3-2 Use Case Diagram of Development-and-test Cloud Platform管理权限即管理开发测试云平台内的用户、角色与权限,提供以项目为边界的基于角色的用户权限管理功能;控制访问范围即根据用户权限控制用户可以访问的页面以及页面元素是否可用;管理项目即在开发测试云平台内创建项目,以及项目内资源的申请与审批流程。管理配置方案即提供工作负载配置方案的管理和共享功能;管理工作负载即根据工作负载配置方案创建工作负载功能,并提供虚拟服务器的启动、停止、重启、回收和虚拟网络计算机访问功能;调度定时任务则用于管理开发测试云平台内需周期性执行或定时执行业务逻辑,包括控制虚拟服务器、同步虚拟服务器和应用程序状态等。管理工作负载的过程中,会通过调度定时任务实现状态同步等功能。统计资源指对平台的基础信息、物理资源、项目资源和虚拟服务器资源的统计。3.3.2 权限管理用例分析权限管理是对用户、角色和权限的管理。对用户的管理包括查看用户列表、增加系统用户、增加项目用户、修改用户信息和修改用户状态;对角色的管理包括查看角色列表、增加项目角色、修改项目角色、删除项目角色和导入预置角色;对权限的管理包括为角色分配权限和为用户分配角色。其用例如图3-3所示。图3-3 权限管理用例图Figure 3-3 Use Case Diagram of R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论