基于DevOps的多维权限管理体系研究

2024-12-03 00:00屠趁锋
互联网周刊 2024年22期

摘要:随着软件行业的快速发展和数字化转型的加速,DevOps作为一种强调开发与运维紧密协作的软件交付方法论,其实施高度依赖团队内部各角色间权限的合理分配与动态调整。本文从全局级、项目空间级、产品版本级和产品分支级四个维度,对DevOps一体化下的多维权限管理体系进行全面分析。研究结果显示,多维权限管理不仅为软件研发的效率、安全性、稳定性和可靠性提供保障,也为企业DevOps一体化的权限管控提供理论支持与实践指导,有助于建立安全高效的软件研发流程生态。

关键词:DevOps一体化;软件研发流程;多维权限管理

引言

随着软件行业的快速发展与企业数字化转型的深入,软件研发流程的复杂度显著提升,团队间协作的紧密性亦日益增强。DevOps作为一种革新性的研发范式,正逐渐成为企业提升软件交付速度与优化软件质量的核心策略[1]。然而,DevOps环境下复杂的团队协作与多角色互动等特性,对权限管理体系提出了更为严苛的挑战。

传统研发流程的权限管理存在多重局限,包括权限控制粒度不够精细,往往局限于产品或系统层面,难以实现针对软件配置项或特定操作的细致权限划分;权限分配机制较为粗放,易导致权限过度授予问题,进而引发安全漏洞与数据泄露风险;权限管理系统与版本控制、持续交付等关键环节缺乏有效的集成机制,限制了权限管理与研发流程的整体协同效能。鉴于此,本文以浩鲸云计算科技股份有限公司研发云一体化平台为基础,从全局级、项目空间级、产品版本级和产品分支级四个维度,系统性地探讨基于DevOps一体化的多维权限管理体系,旨在提升软件研发的安全性、高效性及灵活性,为企业面对复杂的权限管理提供创新性解决方案。

1. 一体化平台

研发云作为一体化的DevOps实践平台,构建了一套全链路自动化机制,覆盖从源代码管理到应用系统部署整个流程[2]。该流程涵盖多个环节,每个环节对应不同的岗位角色,多维权限管理体系有助于加强企业内各角色之间的紧密协作,确保软件开发能够快速迭代并有序进行,缩短软件交付周期,以更好地适应客户需求变化[3]。该机制不仅是确保软件各类配置项安全的基础,也是实现与DevOps一体化平台无缝衔接不可或缺的必要条件。

2. 多维权限管理体系设计

2.1 模型设计

数据模型通过权限表ad_task_priv实现多维度的权限管理,其中priv_type表示具体的业务权限类型,priv_user_id表示有权限的用户,而不同维度的权限以某条记录的不同字段作为区分,project_id表示项目空间级权限,product_version_id表示产品版本级权限,branch_version_id表示产品分支级权限,所有字段都为空,表示全局级权限。同时通过生效时间eff_date和失效时间exp_date实现权限的生效时间范围能力,以及state状态提供权限的临时禁用和开启功能,如图1所示。

2.2 实现架构设计

本文设计了一套集成多维权限点的统一管理界面,旨在提升管理效率、确保权限管理的精确性和便捷性。该界面简化管理员操作流程,通过集中化管理实现权限的集中分配、调整和监控。

在界面的一级菜单中,设定了权限管理,二级菜单包括全局级、项目空间级、产品版本级和产品分支级权限。在三级菜单中,涵盖脚本分类配置、产品分支变更、表元配置、代码分支管理员、产品配置数据管理、生产分支建单类型等功能(架构如图2所示)。通过层级结构,管理员可以轻松地根据需要选择不同的权限级别和功能模块,进行相应的权限管理操作,提高了操作的便捷性和效率。

集成多维权限点的管理界面,为管理员提供了更直观、更全面的权限管理视图,帮助他们更好地监控和调整各个权限点,确保权限管理的准确性和一致性。同时,界面的设计也考虑到了扩展性,可以根据需要灵活添加新的权限点或功能模块,以满足未来业务发展的需求。

3. 多维权限管理体系应用

在DevOps一体化框架下,多维权限管理体系对于确保持续集成与持续交付流程的顺畅至关重要。浩鲸云计算科技股份有限公司定义了多元角色体系,应用多维权限管理提升系统安全性、可靠性,以及确保合规性要求的严格遵守。该体系不仅优化团队协作效率和资源利用率,同时为持续集成与持续交付流程提供有力支持[4]。

3.1 全局级权限

全局级权限在确保平台整体安全性和稳定性方面起着关键作用,不仅涵盖了用户管理、安全策略配置等基础性功能,还扩展至脚本管理、产品分支变更、源码归档等高级操作。

全局级权限赋权信息记录在ad_global_priv表中。例如,为用户A赋予全局级脚本分类权限时,全局级维度信息存储在priv_user_id字段,权限类型存储在priv_type字段,取值为SQL_SCRIPT_TYPE(如图3所示)。全局级权限分配策略:产品规划经理负责脚本资源分类与配置,优化资源管理效率;系统架构师专注于表元配置优化,确保系统设计合理高效;研发责任人管理产品分支变更,灵活调整策略推进项目进度;测试接口人集中复盘任务单,跟进任务执行,确保高效交付;配置管理员在全局权限管理中负责任务单脚本修正、源码归档和版本作废,保证系统版本准确性和源代码仓库整洁有序[5]。

3.2 项目空间级权限

在浩鲸云计算科技股份有限公司的DevOps一体化平台中,项目空间被设计为支持多角色协同工作的环境,其中包括项目空间管理员、工时管理员、仓库管理员和代码分支管理员等角色。每个角色承担特定的职责和权限,共同支持项目的安全高效运行。

项目空间管理员负责项目配置、代码审核、需求验证规则和发布策略,确保团队操作一致规范,具备项目编辑权限,灵活调整项目设置以适应需求变化,负责项目战略与重大决策。工时管理员评估任务工时,监控数据解决效率问题,优化资源配置,降低项目风险。仓库管理员保障代码安全,管理仓库操作,维护代码库结构清晰与安全性[6]。代码分支管理员管理长期分支,执行合并与归档操作,确保代码一致性与历史记录完整性。根据上述角色进行相应权限的赋权,用户权限信息将记录在ad_task_priv表中。在该表中,project_id字段用于存储项目空间级维度信息,priv_user_id字段用于存储用户信息,priv_type字段用于存储工时管理类型。以用户B申请工时管理员权限为例,其权限信息将被记录在ad_task_priv表中,其中project_id字段将存储项目空间级维度信息,priv_user_id字段将存储用户B的信息,而priv_type字段将存放工时管理类型,取值为WORK。

3.3 产品版本级权限

在软件产品的整个生命周期中,实施精细化的产品版本级权限管理策略,对于确保系统配置项(包括源代码、配置文件、参数和数据库脚本等核心组件)的稳定性和可靠性至关重要[7]。通过精心设计的用户角色和权限分配体系,可以严格规范对配置项的访问权限和操作行为,提升系统整体的安全性和抵御潜在风险的能力。

本文将重点分析产品版本中的三个核心配置项权限管理。首先是脚本管理权限的精细化控制。数据库脚本作为产品数据模型的定义载体,涵盖了表结构、关系定义和约束条件等要素。通过数据库脚本,研发团队将产品的数据模型映射至实际数据库实例,为产品功能的实现提供必要的数据支持。数据库脚本与产品功能需求密切交织,以确保数据库结构有效配合和支持产品的各项功能和业务流程。精细化权限管控可确保只有授权人员能够修改和执行数据库脚本操作,维护数据安全性和一致性。

其次是产品配置数据权限的规范管理。配置文件承载产品或业务的功能选项和个性化配置,如第三方服务的IP地址、端口号和连接数据库所需信息等。合理设置和管理配置项可调整系统行为,适应不同环境和需求[8]。

最后是处理计划权限的明确界定。处理计划对项目按时按质完成至关重要,明确定义责任人和时间节点可确保团队准确追踪任务进度,及时解决问题,保证项目交付。鉴于其重要性,浩鲸云计算科技股份有限公司明确规定仅系统架构师有脚本管理权限,有效防止非授权人员对数据库脚本的随意更改,保障脚本正确性与安全性,维护数据模型稳定可靠;产品配置数据和处理计划权限授予研发责任人,确保配置文件准确、规范、合规。依据角色进行权限分配,用户权限信息将被记录在ad_task_priv表中。举例来说,当为用户C赋予产品配置数据管理权限时,相关信息将被存储在ad_task_priv表中。具体而言,产品版本级信息将被记录在product_version_id字段,用户C的信息将被存储在priv_user_id字段,而权限类型将被存放在priv_type字段中,其取值为PRODUCT_STD_CONFIG。

3.4 产品分支级权限

浩鲸云计算科技股份有限公司采用分层设计架构,包括产品层和定制层,为跨职能研发团队提供清晰高效的框架。每个层级都有专门的研发团队和独立的源代码仓库,旨在建立专业化的开发环境,提高研发效能。

在这种架构下,产品分支级权限管理变得至关重要,主要聚焦于版本计划的制定和生产分支建单类型的控制。版本计划权限被授予研发责任人,通过系统化方法对产品层和定制层的版本需求进行优先级排序和资源调度,确保开发和发布按计划进行。科学的优先级评估体系帮助识别和处理最有价值的功能需求,优化资源配置,保证研发进程连续性和高质量。合理的版本调度有助于顺利衔接各开发阶段,降低延误风险,提高项目管理效率和市场竞争力[9]。生产分支建单类型控制机制通过规范生产分支上任务单的创建与管理,实现高效分配研发资源和监控发布版本问题。该机制评估已发布版本中的故障和未完成需求,为版本规划和质量控制提供数据支持。减少故障重复发生,合理规划需求,提升版本管理精准度和产品质量[10]。分析历史故障和需求完成情况,为未来版本规划提供数据支持,提高产品竞争力和用户满意度。当为用户D授予生产分支建单类型权限时,相关信息将被存储在ad_task_priv表中。其中,产品分支级信息将被记录在branch_version_id字段,用户D的信息将被存储在priv_user_id字段,而权限类型将被存放在priv_type字段中,其取值为TRUNK_CREATE_TASKL。

结语

在当前软件行业,敏捷开发与持续交付模式已成为构筑核心竞争优势的重要基石。在此背景下,权限管理体系的灵活性与可扩展性已提升至企业战略层面,成为加速产品迭代周期、精准应对市场变化以及实现高频发布策略不可或缺的组成部分。本文提出的全局级、项目空间级、产品版本级和产品分支级多维级权限管理框架,旨在构建一个全面且高效的权限管理体系,确保资源访问的合规性、安全性与灵活性,更好地应对在DevOps一体化环境下不断加快的产品迭代速度和发布需求,进而促进企业整体竞争力的提升。

参考文献:

[1]乔玮,赵文瑞.DevOps发展现状及趋势研究[J].数字技术与应用,2018,36(4):74-76.

[2]龚桂芬,龚兰兰.基于Devops的软件项目开发实践[J].工业控制计算机,2022,35(4):87-89.

[3]王晓龙.基于敏捷开发的持续交付系统的研究[J].信息技术,2023(5):131-136.

[4]付乔,张昊.持续集成持续交付的NFV/SDN网络新型集成体系[J].移动通信,2019,43(7):22-27.

[5]韦金兴.管理软件权限设计的研究[J].轻工科技,2016(4):67-68.

[6]郑海洋.安全信息化管理软件研发[J].计算机产品与流通,2019(4):41.

[7]李占仓,孟祥双.一种权限管理的改进方法[J].信息与电脑(理论版), 2021(11):100-103.

[8]王博,郝羽.一种灵活的小颗粒权限管理方法及其实践[J].现代电子技术,2019(11):153-157.

[9]田健.基于DevOps的软件开发项目管理研究[D].北京:北京邮电大学,2023.

[10]温林芝.软件开发过程中的软件配置管理研究[J].科技视界,2017(33):168-169.

作者简介:屠趁锋,硕士研究生,副高级工程师,549404616@qq.com,研究方向:DevOps、软件研发流程。