很多 Azure DevOps 的混乱在第一条流水线运行之前就已经埋下了伏笔。
团队成员往往在打开门户后,随手创建几个代码库(Repos)和看板(Boards)便匆匆上阵。短期内这确实可行,但几个月后,往往没人能说清哪个项目拥有哪些资源,共享代码该存放在何处,或者新团队究竟该创建新项目还是随便找个地方塞进一个新的代码库。这通常不是工具本身的问题,而是架构设计的问题。
如果你的 Azure DevOps 布局清晰,权限管理将变得简单,流水线逻辑会更容易推理,新加入的开发者也能更快速地理解整个系统。其核心层级如下:组织(Organization)是顶层容器,项目(Project)位于组织内,而代码库(Repo)则位于项目内。流水线、看板、制品和权限通常在项目级别关联,并在此基础上进行细化。
组织代表最高层级的工作空间。在大多数实际场景中,一个组织映射到一家公司、一个初创企业或一个主要的业务单元。它是管理用户、账单、全局访问模式以及所有项目集的“外壳”。最佳实践通常是:一家公司对应一个组织。除非存在法律层面的隔离、独立的计费需求、强制性的安全边界或完全不同的管理权,否则不建议为每个产品或团队创建新组织,因为过早拆分会增加额外的管理负担并降低跨团队的透明度。
项目(Project)是团队进行核心架构决策的地方。在这个层级,Azure DevOps 开始从一个简单的容器转变为真正的交付环境。一个项目通常汇集了看板、代码库、流水线、服务连接、制品以及团队特定的权限。清晰的思维模型是:一个项目对应一个产品、平台或交付流。例如:客户 Web 平台、内部数据平台或移动应用生态系统。需要注意的是,这并不意味着每个微服务都要对应一个项目,过多的项目会导致导航、权限管理和报告变得异常繁琐。
代码库(Repo)则是代码实际存放的位置。在一个项目内部,你可以根据系统构建方式拥有一个或多个库。每个库可以代表一个应用程序或组件。