了解
DevOps 是 Development(开发)和 Operations(运维)的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合,以期打破传统开发和运营之间的壁垒和鸿沟;
面临痛点
开发流程方面:
- 项目进度不明确,各部门无法进行完美协作,一个项目从用户到开发往往经过十几个人,项目过多,无法掌握所有项目目前进度。
项目上线方面:
- 研发人员电脑配置不够,打包需要关闭其他软件,打包同时不可以开启多个项目,无法同步进行工作。
- 单个项目从测试到正式上线需要发布二十几台服务器,随着项目增多,无法处理大量任务。开发人员很多,但是负责部署的人只有一个,人手不够。
- 新员工手动部署正式环境出问题,影响线上生产,造成巨大损失。
实践
DevOps融合了一系列基本原则和实践的方法论,并从这些实践中派生出了各种工具。这些工具体现在软件开发和交付过程的不同阶段:
编码:
项目进度管理--自研专案管理系统
任务流转:
- 需求单位提申请单
提供需求文档等其他相关资料,经过部门层层审批需求单 - PM
分析需求并和开发确认需求可行性,提供SRS文档 - 研发需求分单
产品,开发,测试 - 开发
相关人员提供SDS、上线单、 代码测试地址、多单位支持工作(DB部门数据库访问支持、服务部门进行24小时监控等)选择 后 进行上线测试
项目代码管理--svn
构建:持续集成工具、构建状态统计工具
测试:通过测试和结果确定绩效的工具
打包:成品仓库、应用程序部署前暂存
发布:变更管理、发布审批、发布自动化
主要工具--jekins:
1.开发人员:写好代码,不需要自己进行源码编译、打包等工作,代码写好以后,直接提交代码,备注修改具体内容,代码经过审核合并后,可以交给其他产品或者测试进行一键发布。
2.运维人员:减轻人工干预错误率,同时解放运维人员繁杂的上传代码、手动备份更新代码。
3.测试人员:开发人员将禅道的BUG记录修改完成以后,测试人员可以自己点击一键发布测试版本进行重新测试。
流程简述:
配置SVN插件,jekins打包之前,会拉取svn最新版本代码,我们可以清晰看到最近的几个更新内容是什么。
使用SQA使用配套工具sonar插件进行代码检查,如果无异常,jekins进行代码打包,如果有异常,会将结果反馈在这个页面,我们需要对代码进行优化,重新进行上述步骤。
根据代码不同来配置不同的jekins部署逻辑,进行代码打包部署。
监控:应用程序性能监视、最终用户体验
自研JOB实时监控
zabbix监控实时报警
邮件以及服务部门24小时支持
综上所述:我们使用这个流程的优点主要体现在三点上:
快!准!稳!