本文是一篇计算机论文范文,本文首先介绍了云计算的类型划分,通过服务的不同和部署方案的不同,说明云计算到底包含了些什么。然后介绍政府发布政策大力支持云计算行业的发展,鼓励各行企业积极上云。之后分析了企业在上云过程对云资源的运营管理管理环节存在着严重不足的问题。
第1章 绪论
1.1 课题背景与目的
1.1.1 云计算的优势与划分
云计算[1]是一种计算资源交付模式,其中集成了服务器、数据、应用程序以及其它资源,并通过互联网以服务的形式提供这些资源,通常对资源进行了虚拟化。简而言之,云计算就是计算相关服务的提供(包括服务器、存储、管理软件、数据解析等)。这样能够满足时代快速创新的要求,提供弹性的服务资源并且能够产生新的规模经济。有了云计算的帮助,人们可以在互联网上直接在线使用计算资源,不用在基础设施的维护以及空间占用方面产生额外的开销。这样企业就只需要专心于其内部业务上,不用再为硬件上建设花费精力[2]。另一方面,云计算能够对外提供“按年付费,按月付费”的租赁模式,这对企业意味着可以灵活的控制服务资源,避免资源过度浪费,可以降低企业的运营开销。
如图 1.1 所示,云计算有三种形式,分别为公有云、私有云、混合云,其中私有云主要是在企业内部使用,而公有云主要是在外网使用,这是依据部署方式的不同来划分的[3]。
1.2 云平台与云管平台
云计算平台简称云平台,是指那些可以提供 IaaS、PaaS、SaaS 等各种云服务以及资源的平台。云计算平台按照服务类型划分可以分为:主要用于数据存储的存储型云平台,主要用于计算方面的计算型云平台以及兼顾存储与计算能力的综合性云计算平台。如今用于商业性质的云平台有 Amazon Web Services、Microsoft Azure、阿里云、腾讯云、华为云以及 Citrix 公司旗下的企业云平台。
云管理平台[9]是指多种数据以及服务资源的统一管理平台,可以同时对多种不同类型云计算服务或者应用产品进行管理,例如能够同时对 CloudStack、OpenStack[10]、VMware[11]、Docker 进行管理。
云管理平台其实是一种整合多个环境的业务产品,它能够管理公有云、私有云以及混合云环境,其底层使用的还是基于虚拟化[12]实现的。我们可以从图1.3 里面看出,云管理平台至少要包含服务页面、新建镜像、数据监管、订单、账单以及自定义优化等功能。更高级一点的云管平台会将云管里平台与企业内部系统进行对接,比如购买云产品需要经过企业 OA 审核、更高级的服务监控上报等功能[13][14]。
第2章 关键技术
2.1 微服务架构
微服务的概念要追溯到是 2014 年,是由两位软件开发领域相关的专家Martin Fowler 和 James Lewis 一起提出来的,他们对微服务[16][17]的定义总结起来就是四点:
(1)服务拆分粒度更细。小到一个子功能模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。
(2)服务独立部署。每个微服务都采取单独打包部署的方式,服务与服务之间相对独立。
(3)服务独立维护。一个微服务都是一个独立的单元,这个单元可以交由一个小组来进行开发、测试以及运维等。
(4)多服务治理。原先的系统被拆分为多个微服务,需要一个统一的服务治理平台,管理这些微服务。
如图 2.1 所示,可以看出微服务与 SOA[18][19]存在着千丝万缕的关系。微服务是将原先的整个单体应用根据功能特点进行对应的拆分,最终拆分为多个微服务,每个服务可以进行独立的上线部署,每个开发小组也可以对每个服务进行单独的开发与运维,这样大大加快了应用开发的过程。这样相对独立、互不影响的特点深受各大互联网企业的喜爱。
从定义上看,分布式架构注重服务的分散,微服务架构注重服务的独立与精细;从实际的实践来看,微服务架构一般是采用分布式的,但分布式架构不一定是采用微服务化的。因此,分布式是微服务的基础,使用微服务表示需要先处理分布式架构的多种困难。
2.2 Spring 框架
Spring[22]是一种轻量级的开发框架,整个框架是由 Java 语言开发,主要用于 Web 开发。Spring 是起源于 2003 年由 Rod Johnson 所写一本与 J2EE 相关的书,之后书本中的部分理念就演化称 Spring 的基础。在 Spring 流行之前人们主要使用的是 EJB,而 EJB 是一个重量级的、比较复杂的服务器端组件模型。而Spring 是基于分层的架构,允许用户在各层选择自己喜欢的框架或者组件,同时 Spring 为开发者提供集成的框架。并且 Spring 不是仅仅只能用于服务端的开发工作,在测试等方面都有很大的作用。
Core Container 模块,包含 Beans、Core、Context、Expression 四个方面。该模块是 Spring 框架的最基础的部分,主要提供了反转控制和依赖注入功能。其中容器的核心是 BeanFactory,对外提供单例 Bean,是在框架内部利用工厂模式实现的,这样就不要开发者自己编码。应用中所有的 Bean 对象以及 Bean 对象之间的关系都是交由框架中的内部容器进行创建与管理,给开发者带来了很大程度上的便捷。
Data Access/Integration,该模块主要涉及数据相关内容,包含有事务管理、Java 数据库连接、对象关系映射、OXM、Java 消息服务应用程序接口。主要是提供了一种关于数据访问的抽象层次,能够使不同的数据持久层都通过 Spring实现访问数据,消除差异。同时通过声明式编程方式,开发人员只需要通过注解就可以实现事务的控制,不需要额外编写代码。
Spring 的核心是控制反转(IoC)和面向切面(AOP),任何 Java 应用都能通过这两个特性获得很大的好处。
第 3 章 系统需求分析 .................................. 16
3.1 需求概述 ........................................ 16
3.2 功能性需求分析 .................................... 18
第 4 章 系统总体设计 ............................... 23
4.1 系统功能模块划分 ........................... 23
4.2 微服务划分 ......................... 24
第 5 章 系统详细设计与实现 ................................ 36
5.1 微服务技术实现 ...................................... 36
5.1.1 Eureka Server 的实现 ......................... 36
5.1.2 Eureka Client 的实现 ........................................ 37
第6章 系统测试
6.1 测试环境
本文中的测试环境是基于 Linux CentOS 7 环境,通过 Docker 容器启动服务。后端微服务是基于 Java 语言开发,前端部分是基于 Angular JS 框架开发。
功能测试又叫黑盒测试[39],测试的对象是产品的各个功能,测试人员不需要考虑整个产品的系统结构和相关代码,只需要按照项目需求文档和概要设计,对照其中的一个个功能点或需求点进行测试。
下面本节将对云资源运营管理系统的部分核心功能进行测试,主要是资源购买功能、资源监控功能、生成账单功能以及单点登录功能。
第7章 总结与展望
7.1 论文总结
云资源运营管理系统的设计与实现帮助解决中小企业在上云过程面临的云资源利用率低、运营管理不足等问题,提供订单管理、账单管理、资源管理、供应商管理、账号管理等一整套的运营管理方案。 本文首先介绍了云计算的类型划分,通过服务的不同和部署方案的不同,说明云计算到底包含了些什么。然后介绍政府发布政策大力支持云计算行业的发展,鼓励各行企业积极上云。之后分析了企业在上云过程对云资源的运营管理管理环节存在着严重不足的问题。
在实现云资源运营管理系统的关键技术中,本人参考了业界常成熟的技术工艺,如:Spring 技术框架、Redis 缓存技术。Spring 框架通过控制反转的特性降低系统耦合度,通过使用对象JavaBean来完成以前只可能由EJB完成的事情,同时它还具有轻量级、非侵入式等特点,极大的促进了开发效率。Redis 提供缓存服务,提供更快的读写速度,减少系统响应时间。
在需求介绍方面本文是围绕着运营管理系统的功能性需求以及非功能性需求进行说明。运营管理系统的需求主要涉及对资源和用户的基本管理需求,以及上云企业希望直接能够对接到企业内部已有系统产生的一些定制化的需求,这部分各个企业有各自的系统,因此不是通用功能,需要另外开发。
本文的设计与实现部分介绍了供应商与资源管理、账单计费管理、产品订单管理、项目与账号管理、单点登录管理等五个模块。在各个模块都是借助流程图、类图、顺序图进行详细的介绍,对一些稍微复杂的功能,是通过提供详细的代码实现来进行更好的说明。
在系统测试部分是通过编写重要功能的测试用例,对系统的性能方面进行了的测试,测试指标包括并发量、平均响应时间、吞吐量的属性。还对系统部分页面做了的展示。
参考文献(略)