天津理工大学软件工程大作业

上传人:101****457 文档编号:45884310 上传时间:2018-06-19 格式:PDF 页数:39 大小:1.61MB
返回 下载 相关 举报
天津理工大学软件工程大作业_第1页
第1页 / 共39页
天津理工大学软件工程大作业_第2页
第2页 / 共39页
天津理工大学软件工程大作业_第3页
第3页 / 共39页
天津理工大学软件工程大作业_第4页
第4页 / 共39页
天津理工大学软件工程大作业_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《天津理工大学软件工程大作业》由会员分享,可在线阅读,更多相关《天津理工大学软件工程大作业(39页珍藏版)》请在金锄头文库上搜索。

1、计算机与通信工程学院计算机与通信工程学院天津理工大学天津理工大学计算机与通信工程学院计算机与通信工程学院大作业报告大作业报告(含实验报告)(含实验报告)2016至至 2017学年学年第第 一一 学期学期课程名称课程名称软件工程软件工程实验地点实验地点作业作业课程代码课程代码0668046专业专业计算机科学与技术计算机科学与技术题目名称题目名称自动化部署管理自动化部署管理系统系统角色角色学号学号学生姓名学生姓名年级年级班号班号A20146049卢洪利卢洪利20141实验时间实验时间2016 年年 9 月月 1 日日至至2016 年年 12 月月 22 日日共共 64 学时学时主讲教师主讲教师宁红

2、云宁红云辅导教师辅导教师宁红云宁红云第 2 页 共 39 页目录目录1. 开题报告32. 自动化部署管理系统的需求分析报告8实验报告一 需求分析与用例建模153. 自动化部署管理系统的软件设计报告一 22实验报告二 系统分析与对象类建模224. 自动化部署管理系统的软件设计报告二 26实验报告三 系统设计与对象动态交互模型265. 自动化部署管理系统的软件设计报告三 30实验报告四 系统动态建模、集成和实现306. 自动化部署管理系统的测试方案 367. 系统帮助与使用说明手册 388. 大作业小结 39第 3 页 共 39 页天津理工大学本科毕业设计开题报告天津理工大学本科毕业设计开题报告届

3、: 2014 届学院:计算机与通信工程学院专业:计算机科学与技术2016 年 10 月 9 日毕业设计题目基于 C/S 架构的服务器自动化部署管理系统的设计与实现学生姓名卢洪利学号20146049指导教师宁红云职称教授一、背景及意义一、背景及意义随着各种业务对互联网的依赖性逐渐加重以及云计算技术的普及,企业平均的 IT基础架构规模不断扩张,这种扩张在公有云提供企业中显得更加疯狂,比如阿里云和腾讯云。对于其他互联网企业,如果完全采用私有云,也会有可能在几星期内增加几千台服务器;也有像新浪微博这样,采用混合云架构实现弹性扩展。这些对运维而言,都是前所未有的挑战,传统的人工方法不仅麻烦、效率低下,而

4、且非常不利于维护和扩展,而且从现实来看,传统的方法也是不切实际的。即使是在一些传统的企业当中,日常的备份、服务器状态监控和日志处理等,通过手动的方式来进行的效率也非常低,会造成人力的极大极大浪费。因此,自动化运维早已是每个运维人员都必须掌握的看家本领。运维自动化的价值在于,减少重复枯燥的工作,减少人为错误、及时报警与故障恢复、 提高业务可用性。归纳起来就是: 把零碎的工作集中化,把复杂的工作简单有序化,把流程规范化,最大化解放生产力,也就是解放运维人员。二、发展现状二、发展现状对于大多企业,都是选择开源的各种工具加以整合和二次开发。Linux 下好用的开源工具有:1. 1.预备类工具预备类工具

5、KickstartKickstart 是 RedHat 开创的按照配置全自动化系统安装的方式,分为光盘、硬盘和网络安装。CobblerCobbler 是一个小巧的网络安装 Linux 的服务,经过调整后也支持 Windows。该工具也支持管理 DHCP、DNS 以及 yum 源。SpacewalkSpacewalk 可管理 Fedora、RedHat、CentOS、SUSE 与 Debian 服务器,管理补第 4 页 共 39 页丁、登陆和更新。2. 2.配置管理类工具配置管理类工具PuppetPuppet 是一个开源的软件自动化配置和部署工具,使用简单功能强大,得到了越来越多的关注, 现在很

6、多大型 IT 公司都是在使用 Puppet 对集群中的软件进行管理和部署。AnsibleAnsible 是新出现的运维工具,基于 Python 研发,融合了众多老牌运维工具的优点,实现了批量操作系统配置、批量程序部署、批量运行命令等功能。3. 3.监控类工具监控类工具ZabbixZabbix 基于 WEB 界面, 提供分布式系统监视以及网络监视功能, 是企业级的开源解决方案。Zabbix 后台基于 C,前台由 PHP 编写,可以与多种数据库配合使用,拥有完善的报警机制。CangliaCanglia 是一个针对高性能分布式系统(如集群、网络、网格、云计算等)所设计的可扩展监控系统。允许用户远程监

7、控系统的实时或历史状态,包括 CPU 负载均衡、网络利用率等。三、本课题的研究内容三、本课题的研究内容本题采用 C/S 架构,开发具有统一界面的自动化运维工具,实现:安装自动化、部署自动化、监控自动化、发布自动化、升级自动化、安全管控自动化、优化自动化、数据备份自动化。主要分为以下几个模块:1. 1.运维流程管理模块运维流程管理模块发布变更流程管理:做为系统接口与其他角色的工作衔接。并提供审批环节控制发布变更的风险。流程管理工具并不负责具体的业务操作的执行,只是作为单据系统跟踪流程和确保闭环。告警和突发管理: 体现业务受损的告警自动建单管理。 人工确认之后升级为突发单。通过建单管理告警和突发确

8、保流程的闭环,以及每次故障都能够总结出经验,并未度量业务的可用性提供 KPI。2. 2.运维发布变更模块运维发布变更模块版本管理工具(数据库) :所有的发布应该以版本管理为起点。研发给的版本包先入版本管理工具,再从版本管理工具分发到现网发布。杜绝 rsync 一台服务器发布另外一台的做法。配置管理工具(数据库) :版本加配置等于现网每台机器的状态。最粗粒度的配置第 5 页 共 39 页管理是到 IP 级别,相当于对机器做资产管理,分组到不同的业务,模块和大区等业务概念上。细粒度一点会管理到进程以及进程的相关的配置。配置和版本下发工具:把指定的版本,结合配置好的配置下发到现网的机器上。不同的版本

9、和配置方式需要完全不同的下发方式。以 ssh/fabric 为代表的下发方式是以脚本为中心的。以 puppet/chef 为代表的下发方式是以配置为中心的。现网状态同步工具:为了规避现网状态漂移,与管理工具内的记录不一致。需要有一个工具定时上报现网的实际状况服务调度工具:发布变更经常需要一个串行的流程,先做 A 模块,再做 B 模块。很多机器的时候,需要把能并发的操作并发执行,不能并发的操作确保串行执行。同时很多发布变更流程需要操作管理范围外的服务,比如云端的 DNS 服务器记录等。这就需要有一个服务调度工具统一调度配置和版本下发工具,流程单据工具,以及其他系统的 API 接口共同组装成一个流

10、程。资源管理和隔离工具:以 xen/kvm 为代表的工具让运维可以更灵活的切割资源。比如虚拟机的快速起停,ip 在 idc 内的漂移等。以 lxc/docker 为代表的工具让运维可以进一步的切割资源到进程级别。 资源隔离代理的细粒度的资源控制可以获得更好的资源利用率,以及更容易进行可伸缩的资源配置。发布变更统一 WEB 界面:包装所有的下层工具,提供简单的界面完成标准化的发布变更操作。3. 3.运维监控告警模块运维监控告警模块采集:一般是采集日志文件,也可以是定时轮询 DB 或者其他系统的接口。流行的开源方案是 logstash。收集:采集工具上报给收集工具。或者由开发直接修改代码上报指标给

11、收集工具。流程的开源方案还是 logstash。统计入库: 上报可能是每次调用就上报一次, 统计工具负责统计出一分钟内的次数。上报也可能是每 5 秒上报一次数值,统计工具负责统计出一分钟内的最大值。统计工具的存在是为了上报的方便。流行的开源方案是 statsd,也有大公司基于 storm 来做二次开发的。时间序列数据库:所有定时指标会落地到数据库里。监控告警所需要的数据库需要能够支撑非常大的数据量,但是并没有很严格的 ACID 要求。运维事件数据库:记录所有的告警。包括从其他系统获得告警,以及对现网的所有变更操作记录。这些数据用于支撑告警的原因定位。指标异常检测:基于数学模型发现指标是否与过去

12、的稳定模式背离,而推测出现网状态的变化。拨测:定时 PING 或者 HTTP GET,模拟实际用户发现服务是否中断,产生告警。同时也产生指标上报给收集系统。拨测又分为本地拨测,和远程拨测。本地拨测可第 6 页 共 39 页以用于发现磁盘只读等本机告警。远程拨测可以模拟用户的地理分布,把网络的链路状况也包含在拨测覆盖的范围内。告警收敛:综合所有来源的告警,进行频率收敛,根源分析。统一汇总成报告催促人工修复。告警自动修复:接受告警进行自动化的处理。帮运维完成固定的故障机下架退库等操作。 或者在业务本身没有做高可用的情况下, 做故障机替换, ip 漂移等现网修复操作,一定程度地提高业务可用性。告警通

13、知:重要的告警需要升级为电话。需要有高可用的电话,短信,微信等通知接口。监控告警统一接口:屏蔽下层各种工具,提供统一的 agent 安装,指标采集设置,指标曲线展示,告警查询的界面。一个地方知道现网的所有问题。四、四、研究方法和研究手段研究方法和研究手段软件开发环境为:openSUSE 系统开发软件:KDevelop 、Apache、MySQL 等1. 1.研究方法研究方法通过查找相关论文,书籍,资料,技术实现方法以及类似系统,再结合自己的系统的特点需求分析,界面设计,功能模块化,然后进行系统整体链接与协调,完成系统的各模块的功能。2. 2.研究手段研究手段首先下载一些知名自动化运维工具,深入

14、使用并了解其软件结构,用户交互界面以及功能。阅读相关文献、论文,学习相关知识。熟练掌握 Python。尝试在 PC 平台 LINUX 系统下自主开发软件,遇到问题与导师及时交流,必要时求助同学、导师。五、五、研究步骤研究步骤研究步骤主要包括可行性研究,需求分析,总体设计,详细设计,编码与测试,系统维护等六个步骤。具体步骤如下:可行性研究:结合国内外发展概况的分析,该领域具有很大的市场价值;系统采用采用 C/S 架构,可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和Server 端来实现,降低了系统的通讯开销。需求分析:根据监控和被监控者的需求简历需求分析,使用模型的方式设定

15、本系统需要实现的功能。总体设计:确定实现方案及确定系统软件结构,充分叙述该软件所实现的功能。在总体设计的基础上,实现各模块的设计。第 7 页 共 39 页详细设计:对功能进行详细的描述,完成数据流程图、程序流程图等。编码与测试:选择 Python 语言对该系统进行编程,编程结束后对系统进行测试以及再修改。系统维护:最后根据系统测试,及系统运行中出现的问题,对系统进行维护。六、六、本题目研究的具体进度安排本题目研究的具体进度安排具体进度安排如下:10 月 1 日至 10 月 7 日:开题报告;10 月 7 日至 10 月 10 日:需求分析与用例建模;10 月 11 日至 11 月 15 日:系

16、统分析与对象类建模;11 月 16 日至 12 月 5 日:系统设计与对象动态交互模型;12 月 5 日至 12 月 20 日:统动态建模、集成和实现;12 月 20 日至 12 月 22 日:系统测试方案;12 月 22 日至 12 月 25 日:系统使用说明书;12 月 25 日至 12 月 27 日:总结。七、七、参考书目参考书目1李晨光. Linux 企业级应用案例解析M. 2-1. 清华大学出版社, 2014. 2虚拟化与云计算小组. 虚拟化与云计算M. 电子工业出版社, 2009. 3吴朱华. 云计算核心技术剖析M. 人民邮电出版社, 2011. 4尼古拉斯卡尔. IT 不再重要互联网大转换的制高点云计算M. 中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号