- 1. 什么是Azure DevOps Server
- 2. 内网部署和云端服务
- 3. 技术架构
- 3.1 服务器架构
- 3.2 扩展和定制开发
- 3.3 客户端
- 4. 工作项管理
- 5. 版本管理
- 5.1 Team Foundation Version Control - TFVC
- 5.2 Git
- 6. 全文索引
- 7. 流水线
- 8. 测试管理
- 9. 制品库Artifacts
- 10. 版本路径
1. 什么是Azure DevOps Server
Azure DevOps Server,之前名为Team Foundation Server (TFS)和Visual Studio Team System (VSTS)。它是微软公司提供的一个应用软件生命周期管理产品,是微软公司的软件开发管理平台产品。
这个产品包含了源代码版本管理(包括Team Foundation Verson Control和Git)、数据分析和度量、需求管理、项目管理(支持敏捷开发和瀑布式开发)、自动编译、自动测试和自动发布等功能模块。在产品的设计思路中,它不仅覆盖了软件开发测试过程中的全流程、各角色使用的功能,同时具备完整的DevOps能力。
作为一款强大的软件开发管理服务器,它支持软件开发行业中主流的集成开发工具(IDE),而对于Microsoft Visual Studio和Eclipse来说,这个产品几乎是为他们量身定制的服务器端软件;此外,它还可以集成常用的Office和WPS等办公软件。
2. 内网部署和云端服务
用户可以采用两种方式应用Azure DevOps产品提供的功能:内网部署on-premises(“Server”)和云端服务online(“Services”)。微软分别将这两种形式的产品命名为Azure DevOps Server和Azure DevOps Service。
在产品开发过程中,除了区分云端和内网的细微区别外,二者实际使用了同一套源代码;新功能通过测试后,产品组首先将它发布到云端平台中,供用户预览和采纳;大约三个月左右后,这些新增的功能会以升级包(updates)的方式,提供给内网用户。
我们的国内用户,基于安全和其他因素的考虑,使用内网部署的场景较多;如果使用内网部署,则需要用户自行采购、部署和维护服务器;而在使用云端服务器的过程中,用户只需要注册微软账户,即可使用Azure DevOps的全部功能,无需考虑服务器维护和数据备份的工作。但是由于云端服务器依赖互联网连接,大量金融相关的用户不得不采用内网部署的方式。
在采购方式方面,内网部署的用户,可以采用永久买断授权或按月支付授权的方式采购产品;使用云端服务的用户,只能按月支付授权的方式采购产品。
本文主要以内网部署的Azure DevOps Server为示例,介绍相关的技术架构和功能组件。
3. 技术架构
3.1 服务器架构
Azure DevOps Server在服务器端的技术架构设计中,将系统分为应用层(Application tier)、数据库层(Database tier)和数据仓库(warehouse)。作为系统架构中的主要组成部分的应用层,它运行和维护着一个web应用门户,其中提供web应用访问的用户界面,同时提供丰富而完整的rest api接口。这个web应用门户,可以为多种客户端应用提供数据和运算服务。如果作为简单的应用场景,例如用户数量少于50人的开发测试团队,我们往往可以将应用层和数据库层部署在同一台服务器中,以此降低硬件投入成本和系统维护成本。
在服务器的扩展设计中,应用层和数据库层可以分别使用负载均衡和数据库高可用技术,分别扩展多个节点,以此提供服务器的稳定性。如果我们使用了Microsoft SQL Server 2012或更新的版本,我们就可以利用数据库的高可用机制(AlwaysOn)实现数据库的故障转移,利用数据库的高可用技术,不仅可以提供不间断的数据服务,还可以将数据库部署在不同的物理位置,以此提高数据的安全性。
在Azure DevOps Server中,团队项目集合(Project Collection)是一个主要的数据容器,其中包含了多个团队项目(Team Project),而团队项目则是开发测试过程中的基本单元,它包括的开发团队的源代码、需求等多种数据。在数据存储的结构中,每个团队项目集合的数据独立存储在一个数据库中;每个数据库则可以分散在不同的数据库实例甚至不同的数据库服务器中。Az