更新时间:2022-03-11 GMT+08:00
分享

实践场景

X公司是华为云企业用户,即将使用软件开发平台进行某产品的开发,企业中有多个项目团队,需要为项目团队购买资源、配置人员、进行项目管理。

本文针对X公司提出的企业需求,给出企业多团队使用软件开发平台的账号划分和使用的最佳实践。

企业需求场景

  • 需求一:X公司有两个产品团队,分别负责项目A和项目B的开发。两个团队中的资源相互隔离,各自维护。公司有专门的财务部门,资源的购买与分配由财务部门统一管理。
  • 需求二:每个产品团队包括多个小组,分别负责不同的资源管理。例如:资源维护组负责管理项目开发所需的环境资源,包括主机、集群等;研发管理组负责软件开发平台中的人员配置;开发测试组负责使用软件开发平台进行版本的迭代开发等。每个成员只能访问其所在团队的资源,且仅拥有能够完成工作的资源使用最小权限。
  • 需求三:项目开发过程中,每种角色(例如开发人员、测试人员)能够有不同的操作权限,例如:开发人员可以修改代码、测试人员只能查看代码等。

解决方案

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

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

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

      用户组

      职责

      所需权限

      描述

      财务组

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

      ECS FullAccess

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

      DevCloud Console FullAccess

      软件开发平台(DevCloud)控制台管理员权限。

      资源维护组

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

      ECS CommonOperations

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

      研发管理组

      负责管理项目研发团队。

      ProjectMan ConfigOperations

      软件开发平台项目设置的操作权限。

      开发测试组

      负责项目的开发测试。

      ECS ReadOnlyAccess

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

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

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

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

    表2 项目角色与操作

    服务

    说明

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

    项目管理(ProjectMan)

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

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

    代码托管(Codehub)

    源代码管理与开发。

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

    编译构建(CloudBuild)

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

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

    发布(CloudRelease)

    版本包的存储与管理。

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

    部署(CloudDeploy)

    将版本包部署到ECS中。

    • 开发人员:新建/编辑/执行/删除部署任务。
    • 测试人员:编辑/执行部署任务。
    • 运维经理:编辑/执行部署任务。

    流水线(CloudPipeline)

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

    • 开发人员:新建/编辑/执行/删除自己名下的流水线。
    • 测试人员:编辑/执行流水线。
    • 运维经理:编辑/执行流水线。
分享:

    相关文档

    相关产品

close