软件开发生产线 CodeArts-方案概述:解决方案

时间:2023-11-01 16:19:09

解决方案

  • 针对需求一:华为云提供的企业管理服务能够实现团队之间的资源隔离。企业管理通过创建企业项目,隔离企业不同项目之间的资源,企业项目中可以包含多个区域的资源。企业项目还可以实现对特定云资源的授权。例如:将一台特定的E CS 添加至企业项目,对企业项目进行授权后,可以控制用户仅能管理这台特定的ECS。
  • 针对需求二:华为云提供的 统一身份认证 服务能够对用户进行分组授权。配合使用企业管理服务和统一身份认证服务,在统一身份认证服务中创建用户组、为每个员工创建 IAM 用户并加入用户组,再将用户组添加至企业项目,并为各企业项目中的用户组授予相应的资源使用权限。
    图1 人员&资源配置模型

    本文中,产品团队使用软件开发生产线(CodeArts)进行版本迭代开发,版本包的部署使用弹性云服务器(ECS)。

    • 财务组负责购买并分配资源,需要ECS、CodeArts控制台的管理员权限。
    • 资源维护组负责环境资源ECS的日常维护,包括开关机、安装/切换操作系统等,需要ECS的普通用户权限。
    • 研发管理组负责管理软件开发生产线中的人员配置,包括指定哪些成员可以在软件开发生产线中创建开发项目、管理项目角色,需要需求管理服务(CodeArts Req)的项目设置权限。
    • 开发测试组需要将版本包部署到ECS上,赋予只读权限即可。由于IAM用户默认可以访问CodeArts产品页,且在IAM服务中暂无CodeArts访问相关配置,因此无需对开发测试组做CodeArts访问权限的配置。
      表1 用户组权限配置模型

      用户组

      职责

      所需权限

      描述

      财务组

      负责购买开通项目开发所使用的云资源。

      ECS FullAccess

      弹性云服务器(ECS)的管理员权限。

      DevCloud Console FullAccess

      软件开发生产线(CodeArts)控制台管理员权限。

      资源维护组

      负责维护项目开发所需的环境资源。

      ECS CommonOperations

      弹性云服务器(ECS)的普通用户权限。

      研发管理组

      负责管理项目研发团队。

      ProjectMan ConfigOperations

      软件开发生产线项目设置的操作权限。

      开发测试组

      负责项目的开发测试。

      ECS ReadOnlyAccess

      弹性云服务器(ECS)的只读权限。

      本文中使用到的环境资源为弹性云服务器。如需了解华为云所有云服务的系统权限,请参见:系统权限

  • 针对需求三:软件开发生产线中内置了多种项目角色,并提供自定义角色功能。在软件开发生产线中,可以为每个IAM用户设置角色,并对角色设置各项任务的操作权限。

    本文中,在软件开发生产线中的操作主要涉及以下服务。在每个服务中,可以根据实际需要,为各角色设置权限。

    表2 项目角色与操作

    服务

    说明

    各角色在服务中的操作(表中未提到的角色默认为不在此服务中进行任何操作)

    需求管理(CodeArts Req)

    管理需求规划、工作项、迭代、报表、仪表盘、文档。

    • 项目创建者/项目经理:新建项目、添加项目成员。新建/编辑/删除项目规划、迭代、工作项、报表、仪表盘、文档。
    • 开发人员:查看项目规划、迭代、仪表盘,新建工作项、文档,编辑/删除自己名下的工作项、文档。
    • 测试人员:查看项目规划、迭代、仪表盘,新建工作项、文档,编辑/删除自己名下的工作项、文档。
    • 运维经理:查看项目规划、迭代、工作项、报表、仪表盘,新建/编辑/删除文档。

    代码托管(CodeArts Repo)

    源代码管理与开发。

    • 项目创建者/项目经理:新建仓库、添加仓库成员。
    • 开发人员:修改/提交代码。
    • 测试人员:查看代码。

    编译构建(CodeArts Build)

    将代码编译打包成版本包。

    • 开发人员:新建/编辑/执行/删除任务。
    • 测试人员:执行/查看任务。

    制品仓库(CodeArts Artifact)

    版本包的存储与管理。

    • 开发人员:上传/编辑/下载/删除版本包。
    • 测试人员:查看/下载版本包。
    • 运维经理:查看/下载版本包。

    部署(CodeArts Deploy)

    将版本包部署到ECS中。

    • 开发人员:新建/编辑/执行/删除应用。
    • 测试人员:编辑/执行应用。
    • 运维经理:编辑/执行应用。

    流水线(CodeArts Pipeline)

    集成构建、部署等任务,实现项目的持续交付。

    • 开发人员:新建/编辑/执行/删除自己名下的流水线。
    • 测试人员:编辑/执行流水线。
    • 运维经理:编辑/执行流水线。
support.huaweicloud.com/bestpractice-devcloud/devcloud_practice_1001.html