首页 >  硕士论文 > 计算机硕士毕业论文 >   正文

代码智能发布系统的计算机设计与实现

添加时间:2018-05-25 20:15:56   浏览:次   作者: www.dxlwwang.com
专业论文资料, 搜索论文发表论文代写论文网为你解忧愁!详情请咨询我们客服。
获取免费的论文资料? 欢迎您,提交你的论文要求,获取免费的帮助

本文是一篇计算机硕士毕业论文,计算机应用专业的特色是“厚基础,重方向”。本专业学生可以学到很扎实的计算机应用基础知识,就业面广;同时,在此基础上又强化专业方向,学生们有重点地掌握一个专门化的技能,以便从事专业性较强的计算机岗位工作。(以上内容来自百度百科)今天为大家推荐一篇计算机硕士毕业论文,供大家参考。

 
第一章 绪论
 
1.1 研究背景与意义
随着互联网的普及以及手持设备的迅速发展,各大网站访问流量的不断增长,网站及其服务都是以负载均衡集群的方式对外提供服务,然而随着集群规模的日益扩大,基于单个服务器管理模式已经不能够满足现有的需求,新需求必须能够满足集中式的、可分组的、批量的、自动化的对服务器进行管理,能够批量化的实施预定任务。集群正是基于此理念诞生的,高性能的集群系统对于大型网站应用来说是非常重要的组成部分[1]。在现有开发流程中,在软件开发完成后需要分发代码进行部署,现阶段公司在业务增长较快的情况下,服务器数量也相应的增加,在大规模的服务器上部署代码如果用人工手段来进行不但耗时耗力,而且可靠性得不到保证,若服务器规模扩大到一定规模,实施人员并不能解决如此规模的代码部署。因此在大规模集群上的代码发布与更新,对可靠性以及安全性要求较高的集群上代码部署,就需要对现有的集群做部署策略,然而现有的方案不能有效的支持。根据大量互联网企业的发布需求,其产品更新迭代非常迅速,在短时间内需要更新迭代多个产品版本,而不同产品版本之间的用户体验尤为重要,需要通过收集用户反馈来选择正确的版本发布。基于以上代码分发与部署中遇到的问题,本课题研究并解决了大规模代码部署中所遇到的各种问题,配置分发策略,代码分发结果监控,用自动化的方式来代替传统的人工部署[2],减少重复劳动,使开发人员与实施人员可以将更多的精力放在提高代码质量上。同时根据收集到的用户反馈数据,预测正确的代码版本,自动重新分组,再次发布。为此,提出研制并开发基于 WEB 应用的代码智能自动分发部署系统,结合现有的最新的代码管理和分发技术,完成对本课题研究的系统的开发。
.........
 
1.2 代码智能发布系统的研究进展
随着互联网时代的来临,大量的互联网产品与应用应运而生,而代码量呈指数级增长,从而代码管理成为研究的技术点之一。近年来,国内外很多公司纷纷开展代码管理以及代码分发的研究工作[3],目前的代码管理工具提供了稳定、高效以及安全的代码开发协作方式,能够实现代码托管、项目管理以及协作开发等功能。比较著名的平台有如国外的 GitHub、GitLab 以及 Bitbucket 等,国内平台也在近年来逐渐壮大,Coding.net 以及码云等平台提供了相当强大的代码管理功能。但是这些工具平台只能提供软件开发周期的前半部分,并不能够提供后续服务器发布以及自动测试等功能。为了应对代码发布的部署要求,开发人员与实施人员提出了一系列解决方案,帮助完成代码的部署。目前,根据代码发布方式的不同,主要分为以下几种模式:(1) 人工手动发布通过人工手动部署,将代码通过 ftp 等方式上传至服务器。(2) sftp 配合 rsync通过 sftp 上传代码至其中一台服务器,然后通过 rsync 同步到其他服务器。(3) 自动部署定义标准化发布部署流程,结合持续集成工具,利用可视化界面或者命令一键部署[4]。这种方式操作简单,但配置复杂。(4) 容器部署目前很多公司提供了共有云以及私有云服务,例如 Amazon 公司的 AWS 以及Microsoft 公司的 Azure,国内有阿里巴巴旗下的阿里云以及腾讯公司旗下的腾讯云等等,这些服务平台的代码发布有其各自工具,专有发布工具对应各自的平台。
...........
 
第二章 代码智能发布系统相关技术
 
前一章主要论述了代码发布相关的发布方法与流程的发展情况并简单介绍了灰度发布的基本理论,说明其发展方向是智能化和自动化。本章将综述代码智能发布系统设计和实现过程中所涉及的主要技术和实现框架以及涉及到的部分算法。
 
2.1 Node.js 技术相关介绍
Node.js 是近几年发展起来的一种新技术,其原理是一个基于 Google ChromeV8 引擎为基础的高效并且可实现高并发的 JavaScript 运行环境。Node.js 技术具有事件驱动、非阻塞式 I/O 等特征,其特点是轻量化与高效率[7]。Node.js 是一个能够在服务器端运行 JavaScript 的开放源代码、跨平台的JavaScript 运行环境。Node.js 由 Node.js 基金会持有和维护,并与 Linux 基金会有合作关系。Node.js 运行在 V8 引擎之上,其特点是非阻塞、由事件驱动和采用异步输入输出模型等各项技术来提高运行时性能,Node.js 旨在构建可扩展的网络应用程序。Node.js 大部分基本模块都使用 JavaScript 开发。在 Node.js 出现之前,JavaScript 通常作为客户端程序设计语言使用,以 JavaScript 写出的程序常在用户的浏览器上运行。Node.js的出现使JavaScript也能用于服务器端编程[8]。Node.js 含有一系列内置模块,从而使程序可以脱离常见网络服务器如 Apache,Nginx,IIS 等,不依赖其他服务作为单独的服务器运行。Node.js 主要用于编写像 Web 服务器一样的网络应用,这和 PHP 和 Python 是类似的。但是 Node.js 与其他语言最大的不同之处在于,PHP 等语言是阻塞的(只有前一条命令执行完毕才会执行后面的命令),而 Node.js 是非阻塞的(多条命令可以同时被运行,通过回调函数得知命令已结束运行)。Node.js 是事件驱动的。与其他语言不通的是开发者可以在不使用线程的同时开发出一个能够承载高并发的服务器应用。Node.js 正是基于这种情况被创造出来。Node.js 把 JavaScript 的易学易用和Unix 网络编程的强大结合到了一起。常用的框架有 Express.js、Socket.IO 和Connect 等。Node.js 的程序可以跨平台运行,在 Microsoft Windows、Mac OS、Linux 和 Unix 等几大操作系统服务器上运行。Node.js 也可以使用 TypeScrip(t微软公司开发的强化了数据类型的 JavaScript 变体)、CoffeeScript(一种旨在简化JavaScript 的替代语言,其代码可按照一定规则转化为合法的 JavaScript 代码)、Dart 语言,以及其他能够编译成 JavaScript 的语言编程。
............
 
2.2 同步技术 rsync 介绍
 
rsync 最初是应用在 Unix 下的一款软件,能够更新不同的两处计算机的文件与目录,并且巧妙的利用差分编码以减少数据传输[9]。rsync 中与其他大部分类似程序或协议的不同点是其镜像对每个目标只进行单次发送。rsync 能够拷贝目录内容或者是显示目录内容,以及拷贝相关文件,并可选择性对文件进行压缩处理或是递归拷贝目标文件。rsync 是一种快速而且通用的文件同步工具,它可以通过远程 shell 或远程rsync 守护进程将本地文件复制到其他主机,它提供了大量的选项来控制其同步行为,包含多种参数以灵活的实现其同步功能,rsync 以其 delta 传输算法而著名,它通过仅发送源文件和目标主机文件之间的差异来减少通过网络发送的数据量[10]。rsync 广泛用于备份和镜像以及日常文件同步。rsync 是增量备份,当文件初始化操作完成之后,连续的文件备份会在短时间内完成,源于 rsync 仅复制同步本地源文件和目标主机文件之间的差异[11]。
..........
 
第三章 代码智能发布系统需求分析与整体设计.......... 13
3.1 代码智能发布系统需求分析.... 13
3.1.1 系统业务分析....13
3.1.2 系统功能与性能要求.....13
3.2 代码智能发布系统总体框架.... 14
3.3 灰度发布模块整体设计............ 19
3.3.1 灰度发布模块整体结构..............19
3.3.2 智能分组设计....20
3.4 本章小结.......... 21
第四章 代码智能发布系统详细设计与实现..... 23
4.1 权限管理模块的设计与实现.... 23
4.2 发布配置模块的设计与实现.... 27
4.3 发布模块详细设计与实现........ 34
4.4 本章小结.......... 45
第五章 代码智能发布系统实际应用测试与效果展示............... 47
5.1 代码智能发布系统部署环境.... 47
5.2 代码智能发布系统实际应用测试.......... 48
5.2.1 代码智能发布系统功能测试......49
5.2.2 代码智能发布系统性能测试......53
5.3 本章小结.......... 55
 
第五章 代码智能发布系统实际应用测试与效果展示
 
代码智能发布系统在实现后,经过功能与性能测试后,已经部署于生产环境,并且开放给公司其他开发团队使用。通过对测试过程中以及实际运营过程的系统监控分析对比来看,系统能够稳定运行,系统功能完善。以下为系统测试运行介绍。
 
5.1 代码智能发布系统部署环境
代码智能发布系统是依托于 Node.js 以及各项后台服务,rsync 服务以及 Git需要安装在部署服务器上,系统测试部署环境与生产部署环境保持一致。代码智能发布系统部署服务器采用 Linux 系统,操作系统为 CentOS,需要确保部署服务器上已安装 Node.js、rsync 以及 Git,网络通畅。将代码智能发布系统代码拷贝至部署服务器相应目录,配置相应测试服务器 rsync 服务以及权限[29]。部署服务器的基本配置如表 5-1。代码智能发布系统的主要表现方式是在利用配置模块配置发布参数以及发布方式结合智能灰度发布模块体现出来的,因此应用测试的主要部分有两部分,一部分是系统配置模块,其作用是录入配置数据,另一部分是发布模块,其作用是将文件或代码同步至目标服务器,在此展示其中部分功能。代码智能发布系统基于实际业务需求设计与实现,能够满足普通企业以及互联网企业对代码发布的不同要求,能够生成发布报表,提供图形化的界面,发布状态查询等功能,本节将对代码发布系统的发布流程做详细的测试说明。
\
.........
 
总结
 
本文首先对代码发布技术、灰度发布技术以及多种预测型算法进行了研究,采用发布用户自定义配置的模式结合已有的数据作为训练样本数据实现了自动化、智能化和图形化的发布模型,以此开发出代码智能发布系统,在论文完成工作的同时,总结如下:
(1)介绍了代码发布技术的发展情况,介绍了国内外现有的一系列发布管理系统,结合图标对目前的发布技术做出对比。讨论了本课题的研究目标与意义。
(2)介绍了系统配置模块、智能发布的技术和项目所遇到的技术。
(3)根据用户需求和系统需求,提出了本课题研究的代码智能发布系统的需求分析,阐述了系统的业务需求以及功能性能需求,提出了代码智能发布系统的总体设计架构。对核心模块权限管理模块、流程审核模块以及灰度发布模块做出详细说明,介绍了整个系统的工作方式。
(4)根据收集到的用户需求以及功能性能需求,详细设计并实现了代码智能发布系统的权限管理模块、配置模块以及智能发布模块,采用 JavaScript 语言编写,利用 Node.js 技术实现 JavaScript 语言编写后台功能。
(5)对代码智能发布系统的配置环境进行了介绍,对系统的配置模式以及配置参数做了测试,对智能发布模块做了完整的用户测试,阐述了在发布过程中遇到失败的原因与改进结果,提出解决方案。在测试过程中展示部分功能模块的实际运行效果,展示图形化界面。
..........
参考文献(略)

提供海量毕业论文,论文格式,论文格式范文,留学生论文,商务报告相关资料检索服务。
本论文由代写论文网整理提供 http://www.dxlwwang.com/
需要专业的学术论文资料,请联系我们客服
本文地址:http://www.dxlwwang.com/jsj/6703.html
论文关键字:计算机硕士毕业论文 灰度发布