0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DevOps工具链的项目端到端应用实践过程

8nfr_ZTEdevelop 2018-04-05 18:30 次阅读

以敏捷研发模式运作,结合其主要使用Java语言开发,产品架构包括后台服务、前端Web和APP以及多个软件部件的特点,对整个产品计划研发应用中需求管理、特性故事管理、代码托管、持续构建、自动化测试、版本发布、故障管理等都做了合适的规范要求和约定,并很快建立起一套比较完整的DevOps工具链支持。

【关键词】

DevOps,Docker,云CI,制品库,自动化测试,度量

【工具链介绍】

整个产品规划研发应用使用一序列工具链支撑:

DevOps工具链的项目端到端应用实践过程

1)原始需求由最贴近市场的用户录入原始需求管理系统系统并由规划组人员收集分析整理形成正式的产品需求。

2)产品需求录入需求管理系统后由需求分析人员组织需求实例化分析,在线完成需求到特性再到故事任务的分解。

3)需求管理系统中待实现的特性故事任务由开发团队评估并纳入迭代开发计划,开发人员进行开发,经过代码审查、故事特性测试、BA验收后在线变为开发完成状态。

4)代码托管使用Gerrit系统,编译构建使用云CI系统,代码静态检查使用Klockwork云检查系统,版本使用制品库管理,自动化测试接入云测试管理系统。

5)整个产品研发过程使用Wiki进行产品研发应用及各个团队协作信息共享管理,各个阶段信息接入度量系统进行度量分析和信息共享展示。

【实践情况】

DevOps工具链的项目端到端应用实践过程

DevOps几个重要支撑工具关系图

代码库迁移:

SVN向Gerrit迁移,Gerrit迁移使用后带来一下好处:

1.除了创建子库和配置子库访问权限组需要由管理员配置操作之外,频度较高的子库访问权限成员增减交给团队自己决定,解决之前SVN权限管理审批流程较长的问题。

2.单库下载速度提升较多,约10倍的提速率。

3.代码规模统计与度量系统接口简单,能够快速通过度量系统配置个人代码规模统计和统计结果邮件自动推送至项目组。

4.公司层面Gerrit代码托管整理效率更高更安全。

云CI部署使用:

DevOps提供的基于Jenkins的CI服务,拥有海量资源供项目实现高并发调度,使得项目不必关心底层资源,只专注于业务本身。

代码Klockwork静态检查:

项目开发语言以Java为主,使用Klockwork工具对Java代码进行静态扫描检查。Klockwork静态检查分为两步进行:

1.开发人员编码完成归档代码之前,本地通过集成到Eclipse开发环境中的Klockwork插件对新增代码进行扫描,发现告警消除后再归档到Gerrit上。项目约定,归档代码到Gerrit库之后发现的Klockwork告警,按开发人员泄漏故障对待。KW本地Java代码扫描告警消除配置参阅《Klocwork Eclipse插件的安装和使用》。

2.项目部署云KW扫描,每日对项目代码进行静态扫描,发现告警信息推送到项目组。每日KW扫描邮件推送结果。

版本发布管理:

开发团队按版本计划开发完成版本后,向版本需求者发布不同性质的交付版本。历史发布版本记录到版本发布管理系统,能够回溯查询和版本应用管理。开发团队交付发布版本分为项目内部集成版本、外部集成版本、内部验收版本、外部验收版本、正式商用版本、实验定向版本、用户试用版本、商用补丁版本。根据外部关系协作及上下游交付流程,不同时期发布不同性质的版本满足各方需求。开发团队对外发布的各种不同性质的版本,记录到版本发布管理库中,能够支持历史版本信息查询,历史版本信息度量统计,方便内外部干系人很容易获取版本相关信息,减少版本相关信息沟通成本,提升DevOps链在交付版本环节管理效率。

外部故障跟踪管理:

鉴于产品外部应用面分布交广,外部故障信息收集和跟踪比较困难的情况,借用需求开发管理系统的外部故障管理跟踪功能,用户直接将外部问题录入需求开发管理系统,自动推送邮件到项目研发团队进行跟踪处理,并向外部干系人自动推送问题解决进度。如下图所示:

DevOps工具链的项目端到端应用实践过程

协作与度量:

借助Wiki系统实现项目团队间信息传递与共享,通过度量系统推送项目团队和成员等不同维度的研发构成度量指标信息。

度量系统应用:

研发过程与度量系统对接,各个阶段研发过程指标通过度量系统汇总分析并推送给项目组。度量指标展示说明:

度量系统应用极大效率提升及时了解研发过程各个环节各个团队度量指标信息,将人力从人肉度量数据统计中解放出来,度量数据展示更灵活,速度更快,且自动实施。

【效果评价】

项目有一套完整的DevOps端到端的应用实践,为提升项目研发效率,快速便捷地实现信息共享发挥积极作用。需求管理线借助原始需求管理系统系统、需求开发管理系统支撑需求分析、迭代开发和版本交付的流程。Gerrit、云CI、云KW、制品库、云测试、版本发布管理支撑从代码托管、版本构建、静态检查、版本管理、自动化测试和版本发布管理的各阶段管理。

【DevOps工具链改进建议】

1.原始需求管理系统系统与下游需求分析管理系统实现对接。

2.云KW增量代码扫描结果推送,将引入KW告警关联到个人。

3.云测试增强对第三方测试工具报告解析格式转换兼容支持,方便获取更多自动化测试细节信息。

4.度量系统配置项较多时,上下翻滚寻找比较困难,建议增加下一级分类。

5.度量系统右面趋于弹出对话框与滚动条位置没有关联,建议弹出对话框显示在滚动条当前位置。

6.度量系统指标项过滤条件过于简单,计算过滤昨天数据不方便实现。

7.云KW扫描规则需要方便配置和修改。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2904

    浏览量

    102994
  • Docker
    +关注

    关注

    0

    文章

    437

    浏览量

    11603
  • devops
    +关注

    关注

    0

    文章

    100

    浏览量

    11901

原文标题:DevOps案例 | *网络* 项目端到端应用实践

文章出处:【微信号:ZTEdeveloper,微信公众号:中兴开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TCP服务测试工具

    本帖最后由 小子个 于 2024-3-20 22:58 编辑 该TCP服务工具可以理解为 “TCP服务” 或者 “服务器” ,目的是帮助大家在没有服务器的情况下,完成客户
    发表于 06-29 09:22

    点到点和通讯

    路由器与4G DTU中间有多少机器,都必须在两头(源和目的)间建立连接,一旦连接建立起来,就说已经是连接了,即
    发表于 01-18 18:06

    安捷伦使用N2X进行测试

    使用N2X进行测试
    发表于 11-04 11:00

    语音加密方案

    本帖最后由 蓝是昵称 于 2019-11-7 14:21 编辑 提供完整的全数字语音加密方案:包括硬件、软件功能:通过通信终端的耳机接口、蓝牙接口实现全数字语音加密通信,可在现有终端
    发表于 11-07 14:08

    网络流有哪些应用实例?

    什么是网络流?网络流有哪些应用实例?
    发表于 06-07 06:30

    什么是交叉编译工具

    @LINUX# 嵌入式嵌入式LINUX交叉编译工具前言一、什么是交叉编译工具?二、ARM交叉编译工具
    发表于 11-04 07:05

    如何在EIDE上将STM8标准库移植SDCC工具

    本文介绍如何在 EIDE 上将 STM8 标准库移植 SDCC 工具,并完成示例项目的开发以 STM8S105K4T6 为例,其他的库过程
    发表于 02-18 07:23

    实用教程 | 在Web网页实时查看设计项目

    我们的项目,但是又没有安装Altium Designer软件的人。我只是想看一看项目设计,并不需要编辑。有没有一种简便的方法,不需要安装Altium Deigner软件,只要可以联网,就可以随时随地在网页
    发表于 07-29 18:20

    是否有了这个工具链就是DevOps

    从达成这一准高性能DevOps指标的团队分析来看,其具体体现在三个方面:一方面是自动化、标准化、质量保证、敏捷方法的实践活动上;一方面是DevOps各个阶段的对应工具上。除此以外就是,
    的头像 发表于 01-13 15:23 1491次阅读

    什么是DevOpsDevOps的优势以及生命周期

    在大多数情况下,软件应用程序开发由于其规范性和复杂性而变得很耗时。为了在短时间内交付高质量应用程序,软件开发人员正在遵循一套通用的实践,称为DevOps生命周期。那么,DevOps在软件应用程序开发
    的头像 发表于 06-29 17:19 4999次阅读
    什么是<b class='flag-5'>DevOps</b>?<b class='flag-5'>DevOps</b>的优势以及生命周期

    DevOps是什么 DevOps常用的工具有哪些

    DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。 它是一种
    的头像 发表于 08-05 11:20 5722次阅读

    项目实施DevOps时,我们是如何做测试的

    正如我们所知,DevOps最近几年很风靡,很多企业正在如火如荼的推行它。然而,你可曾想过,从传统到敏捷、再到DevOps,开发模式的不断革新对测试提出了怎样的挑战? 最近我们项目在实施DevO
    的头像 发表于 12-16 17:33 1935次阅读
    <b class='flag-5'>项目</b>实施<b class='flag-5'>DevOps</b>时,我们是如何做测试的

    DevOps如何加速软件开发过程

      DevOps 已成为当今技术世界中任何云解决方案不可或缺的一部分。为了使云解决方案的旅程顺利、高效和有效,必须遵循 DevOps 原则和实践
    的头像 发表于 07-01 09:25 586次阅读

    软通动力DevOps团队荣获“2022年互联网行业DevOps领域明星团队”

    作为DevOps 规范任务组成员单位,软通动力具备成熟的DevOps端到端建设能力。迄今为止,软通动力已成功协助多个客户实现了 DevOps 相关工程实践落地,并围绕这一
    的头像 发表于 11-15 15:27 480次阅读

    什么是DevOps中的持续测试?持续测试如何融入DevOps

    持续测试(CT) 是在整个软件开发生命周期(SDLC) 中自动测试软件应用程序和组件的实践。在 DevOps 中,持续测试是在整个DevOps 管道中集成测试活动的实践
    的头像 发表于 01-09 09:10 185次阅读
    什么是<b class='flag-5'>DevOps</b>中的持续测试?持续测试如何融入<b class='flag-5'>DevOps</b>?