前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DevOps 下的文档及其版本管理设计

DevOps 下的文档及其版本管理设计

作者头像
DevOps时代
发布2019-05-09 17:29:46
1.3K0
发布2019-05-09 17:29:46
举报

1 前言

在传统的软件交付过程中,开发、测试、运维多数情况下是分开进行的,开发行为和运维行为之间存在严重的脱节现象,而且敏捷开发人员希望能够快速进行软件的部署,以实现快速、持续的软件应用交付,但是,运维团队则把稳定性放在了优先考虑的位置,从而导致了研发团队和运维团队之间的冲突和低效。Dev Ops则集开发、测试、部署和运营为一体,更有效地整合了现有资源,能够促进它们之间的沟通、协作、整合,实现更快速的应用交付。

在整个软件交付的全生命周期中,每一个阶段都会有不同的产物输出,而各类文档包括需求文档、技术文档、测试文档等等,则是一类比较重要的文档产物,它们对软件的最终顺利交付具有非常重要的意义和作用,因此,对这些文档的管理和控制也是非常重要的。

2 天梯平台

天梯平台是由联通软件研究院自主研发的一站式研发过程管理平台,它以 cBSS 2.0 研发体系为基础,基于天宫平台建立了敏捷化、集中化的研发平台,提供了从需求的录入到最后的交付的全功能支撑,涵盖了需求管理、资源管理、设计、研发、测试、发布等环节,实现了对cBSS 2.0 的DevOps研发体系支撑。“天梯”平台整合了需求、任务、研发、测试等各个生产环节的能力,实现了整个开发、运营周期的闭环管理,是适应互联网敏捷开发的研发体系。通过敏捷开发、持续集成、服务治理等方法,为联通B域项目建设提供端到端的整体解决方案及体系支撑。

2.1 DevOps平台架构

天梯的DevOps平台架构如下图所示,主要包含三层,即:展现层、服务层和组件层,其中组件层构成了天梯平台的基础组件集合,例如用于源码管理的工具Gitlab,持续集成的工具Jenkins,代码质量管理工具Sonar,用于文档管理的组件等等;服务层为天梯平台能够提供的服务接口集合,包括过程服务、代码管理服务、持续集成服务、测试管理服务、文档服务接口等等;展现层则是天梯平台提供给用户使用的图形化界面操作,也是对其能够提供服务的界面展示,方便用户使用天梯平台提供的各种服务。另外,天梯平台还提供了用户管理、权限管理、报表管理以及监控管理等等,为用户提供更方便便捷的服务。

2.2 DevOps工作流

DevOps工作流如下图所示,其涵盖了需求、开发、测试、发布、运维过程的整个软件生命周期,具有高集成和一体化的特点。天梯平台的理念是以Lean精益管理为基础,以敏捷支撑开发,以持续交付支撑测试、发布,以ITSM服务管理支撑运维。

3 文档版本管理

天梯平台涵盖了整个软件的生命周期,因其对每个阶段文档产出物也格外重视,专门设计和实现了一套适用于天梯平台的文档及其版本管理体系,能够方便地为DevOps提供文档及其版本管理。该文档管理体系支持在创建需求、任务、长篇故事、迭代的时候增加与各工作项相关的文档,同时支持修改与需求、任务、长篇故事、迭代关联的文档的增、删、改等功能。当对已关联工作项的文档进行文档重新上传时,则是对原有文档进行修改,该操作被认为是对文档版本的升级,用新文档来代替已有文档,而被替换的文档则自动进入历史文档中,还可以进行查看、下载和删除操作。文档管理在天梯平台上可以在工作项显示,另外还有一个文档资源库,专门用于管理所有的文档,包括关联工作项的文档,也包括不关联任何工作项的文档,只单纯用于存放文档,该文档资源库支持查询、修改、删除、上传、下载文档。

3.1 文档存储

3.1.1 对象存储 OSS

为了给用户提供更好的文档管理服务,天梯采用OSS进行文档的存储。对象存储OSS是阿里云提供的海量、安全、低成本、高可靠的云存储服务,它能够提供99.999999999%的数据可靠性,支持容量和处理能力弹性扩展。OSS具有如下特点:(1)易用性:简单易用,便于管理;(2)高可靠:多重冗余备份,服务可用性不低于99.9%;(3)强安全:多层次安全防护,支持跨区域复制、异地容灾机制等等。

3.1.2 文档OSS Key设计

在OSS内所有文档都具有唯一的Key,以便进行文档的查询、下载和删除操作。为了进行文档版本的考虑,同时保证在下载文件时显示原文档名称,在OSS内存储文档时,文档的Key被设计成这种格式:文档的唯一ID+文档版本+文档名。如下图所示:

其中,文档的唯一ID是为了区分文档,其组成包含两部分:第一部分是去掉-的UUID,第二部分是保存文档的当前年份,比如:009a464ccefacd4df91abcefc79a2e3b05a52019。文档版本用数值表示,第一次新上传的文档,默认版本为1,以后若对该文档内容进行修改,则版本自动每次加1,如文档第二次修改后如下图所示:

3.2 文档信息存储

3.2.1 资源库文档信息存储

文档内容保存在对象存储OSS内,而对于文档的相关信息则保存在SQL库表内,以方便文档资源库的查询、修改、删除操作。与文档相关的信息包括:文档的唯一ID、文档的类型、文档存放的目录、文档关联的工作项、文档版本、上传者、修改者、上传时间、修改时间等等,其中文档类型是用户在天梯平台下根据需要自行配置的,每一个工作项即需求(用户故事、缺陷、技术故事)、任务(研发任务、测试任务、实施任务)、迭代、长篇故事下都可以随意配置文档类型,比如研发任务下配置的文档类型有研发文档、研发设计文档,测试任务下配置的文档类型有测试文档、测试脚本等等。如下图所示:

文档信息相关的表主要由文档信息表、文档关联关系表、文档关联关系及文档信息关系表,历史记录表等等。文档资源库显示的所有文档信息都是从SQL表中取出的,只有下载文档时才会访问OSS进行文档的下载操作,其余的操作都是访问了SQL表的信息。

3.2.2 工作项文档信息存储

当在工作项(需求、任务、迭代、长篇故事)上传文档时,文档的相关信息是随工作项一起保存在MongoDB中,天梯平台的所有工作项都保存在MongoDB内。MongoDB 是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,也是非关系数据库当中功能最丰富的,可以存储比较复杂的数据类型。

工作项上传文档时为该工作项添加一个字段,专门用于标识该工作项下所有的文档,其中每一个文档是一个类型,其主要包含字段为:文档名、文档版本、文档ID、文档存储路径、文档类型等等,如下图所示:

4 结语

天梯平台作为对cBSS 2.0 的DevOps研发体系支撑,提供了对需求、开发、测试、发布和运维过程的整个软件生命周期的支持,而各阶段产出的文档对项目的成功也起着重要的作用。因此,对文档及其版本的管理也是天梯提供的一项重要的功能,本文简要描述了文档及其版本管理的相关设计内容,以便对文档及其版本管理有整体的把握和理解。

说明:本文作者单位为中国联通软件研究院,经作者授权发布。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps时代 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 前言
  • 2 天梯平台
    • 2.1 DevOps平台架构
      • 2.2 DevOps工作流
      • 3 文档版本管理
        • 3.1 文档存储
          • 3.1.1 对象存储 OSS
          • 3.1.2 文档OSS Key设计
        • 3.2 文档信息存储
          • 3.2.1 资源库文档信息存储
          • 3.2.2 工作项文档信息存储
      • 4 结语
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档