概述
Azure DevOps Server 2019 (之前的名称为TFS),作为微软Azure DevOps 的企业私有(on-premises)服务器,是一个为开发团队提供软件协作开发管理的服务平台,在需求管理、代码管理、持续集成和交付、敏捷开发方面为软件开发团队提供全流程的技术服务。
这一运行在企业内网中的开发服务器,由于具备入门门槛低、成本费用低、功能齐全等特点,深受国内软件开发团队、管理团队的喜爱。特别是对数据安全有较高要求的金融行业的用户,DevOps Server 成了企业开发中心的研发服务管理平台,承担者企业软件研发、质量管理和实施运维的管理工具的角色。
由于运行在企业内网,在数据安全、扩展开发和度量分析方面,对比公有云上的Azure DevOps Service,Azure DevOps Server具备天生的优势;但是,在安装部署和运行维护方面,企业又需要投入额外的精力。下面我们就DevOps Server 2019的部署方式和过程,做一个基本介绍,为初次接触Azure DevOps Server的用户提供参考。
安装类型
我们有多种部署DevOps Server 的方式。可以将所有服务部署在同一台机器上,也可以将不同的服务分布部署在不同的服务器上。选择哪一种部署方式,取决与你的开发团队和用户的规模。例如,一个不到100人的开发团队,我们推荐将所有服务安装在同一台服务器上即可;一个超过3000人的开发团队,我们推荐将应用服务器、数据库服务器、搜索服务器分布部署在不同的服务器上,同时还需要增加应用服务器节点,以解决多用户并发访问时可能造成的性能问题。
下面是三种比较典型的安装配置方式:
- 单一服务器部署
将所有的服务都部署在同一台服务器上,这是最简单的部署方式,在运行维护上也有很多的便利。不足的是,容易出现性能故障;出现故障时,不容易排查问题的原因。
- 双服务器部署
将应用服务器和数据库服务器分布部署在不同的服务器上,只是目前最为典型的部署方式,也是大部分用户采用的方式。这种部署方式兼顾了系统性能、运行维护和扩展方面的考虑。
- 多服务器部署
将不同的服务分别部署在不同的服务器上,例如至少包含一台应用服务器、一台数据库服务器、一台生产代理服务器、一台搜索引擎服务器、一台报表服务器;还会根据用户数据量和访问频率的因素,扩展每种服务器的数据量,应用负载均衡和高可用技术,以便适应多用户高频访问的特点,同时解决服务器性能瓶颈和数据安全问题。我们在多个超过千人的开发团队中,都使用了这种多服务器部署的模式。
- 学习评估安装
如果基于个人使用或者学习用途,你可以选择TFS的免费版本(Express:https://www.visualstudio.com/downloads/)。这个版本可以为最多提供5个用户提供免费的服务。
软件要求
操作系统
Azure DevOps Server 2019 仅支持服务器64位的操作系统,你可以安装在服务器操作系统或者客户端操作系统中。除非是评估使用,我们推荐安装在服务器操作系统中。目前支持的操作系统包括:
– Windows Server 2019
– Windows Server 2016
– Windows Server 2012 R2 (Essentials, Standard, Datacenter)
– Windows Server 2012 (Essentials, Standard, Datacenter)
– Windows 10 (Professional, Enterprise) Version 1607 或更高版本
虚拟化
微软支持在虚拟化平台上安装Azure DevOps Server 2019。你可以将Server 2019的任意模块安装在虚拟机上。目前我们的许多客户都使用虚机机的方式安装TFS服务器集群。对比物理机部署,虚拟化部署具备安装快捷,部署简单、迁移方便的特点。
数据库SQL Server
Azure DevOps Server 2019是运行在微软SQL Server数据库服务器平台上的应用服务器。和微软近年来的所有服务器产品一样,Azure DevOps Server 向前支持两个版本的SQL Server,包括:
– SQL Server 2017
– SQL Server 2016 (minimum SP1)
如果你正在考虑升级你目前的TFS 系统到最新版本的Azure DevOps Server 2019,那必须特别注意这一个要求。
另外,目前不支持Linux上的SQL Server 服务器版本。
硬件要求
Azure DevOps Server 对硬件的要求,基本上完全取决与用户规模的访问频率。我们可以将Azure DevOps Server 安装在内存4GB的笔记本电脑上,供个人学习或开发使用;也可以将它安装在一个超过30台服务器的集群个中,为几千人的技术团队提供研发、测试和运行一体化的全流程服务,其中还包含负载均衡、数据库AlwaysOn的高可用性机制。我们通过评估不同的研发团队的规模和应用,配置不同的硬件。下面几种配置比较典型,你可以以此为标准,结合自己的团队,配置一个合理的硬件环境:
单一服务器:
微软官方推荐,单核CPU, 4GB内存,500GB高速磁盘,可以为最高250人的团队提供源代码、工作项跟踪功能。这种配置环境中,不建议使用自动化构建、测试和发布和报表等功能。
上面是微软官方的推荐配置,其中当然会有商业推广的考虑,会适当降低服务器对硬件配置的要求,就像汽车厂商提供的百公里油耗一样。在实际使用过程中,我们会推荐客户,参考微软的官方标准,翻倍配置硬件设备。
多服务器:
参考我的实践经验,我们推荐:
【200人左右的参考团队】
– 数据库服务器:16GB内存,8核心CPU,500GB磁盘
– 应用服务器:8GB内存,8核心CPU, 200GB磁盘
【500人左右的开发团队】
– 数据库服务器:32GB内存,16核心CPU,1000GB磁盘,额外2000GB备份磁盘
– 应用服务器:16GB内存,8核心CPU, 200GB磁盘
【1000人以上的开发团队】
– 数据库服务器:64GB内存,32核心CPU,2000GB磁盘,额外4000GB备份磁盘;应用AlwaysOn高可用性技术,实现数据库系统的持续服务。
– 应用服务器:21GB内存,16核心CPU, 200GB磁盘;至少2个节点的应用服务器,应用负载均衡技术分散系统性能压力
安装过程
做好了前期准备和相关的部署方案以后,你就可以动手实施了。无论你是部署最新版本的Azure DevOps Server,还是老版本的TFS系统,整个部署过程基本包括两个部分:系统安装、系统配置。
第一步,系统安装:
包含了数据安装和应用程序安装。数据库的安装,可以参考SQL Server 的标准安装过程,本文不做详细介绍。应用程序的安装,对于Azure DevOps Server来说,非常简单,基本上是傻瓜式的,只需要简单点击几个”下一步“就可以了,参考下面的截图:
安装完成以后,系统会可能会提示你重启操作系统,进入到后面的配置环节。也可能由于你的系统之前已经安装的相关的模块,例如Framework 4.7以上版本,不需要重启操作系统。
第二步,系统配置:
当完成上一步的系统重启以后,Azure DevOps Server 自动弹出配置窗口,你可以开始配置TFS 服务器的所有信息了。
在配置过程中,你可以根据系统提示,一步一步的完成所需的全部配置信息;你也可以在配置过程中选择忽略一些功能模块,例如报表功能、搜索引擎功能等。
在配置过程中,系统还会自动检查你的环境是否符合要求,如果系统发现环境问题,会自动停止安装过程,要求你解决问题后,再次启动环境检查过程。下面是具体配置的过程和相关说明:
1. 自动弹出配置信息,点击”启动向导“
2. 欢迎页面,不需要解释和截图
3. 全新部署,需要选择”这是新的Azure DevOps Server 部署“
4. 部署方案
一般情况下,我们都会选择高级部署。在高级部署中,你可以对每一个部署过程做配置调整。
5. 选择语言
系统会自动选择操作系统的语言版本。Azure DevOps Server支持几十种语言文字,用户无需安装语言包,也无需使用特定语言的安装程序。
6. 数据库设置
你可以在这个页面中选择数据库服务器的名称和实例米名称;如果希望多个版本的TFS部署在同一台数据库服务器上,你可以选择标签区分不同版本的数据库。例如笔者的数据库服务器上之前已经部署了TFS 2018版本,在数据库标签上我添加了”2019“的标签,就不会干扰或者覆盖现有TFS数据库。
7. 配置访问数据库的账户
8. 配置Web应用的端口的应用名称
默认配置中,TFS使用IIS中的8080端口,使用tfs作为应用程序名称。你可以根据服务器的应用范围,自己选择端口和应用程序名称。如果你不太明白每一项设置的含义,可以保持默认配置。
9. 配置全文索引服务
Azure DevOps Server 2019的全文索引使用了Elastics Search(ES) 搜索引擎服务。在安装应用程序的过程中,系统会自动配置ES服务器和对应的功能。
10. 配置报表
Azure DevOps Server 的报表处理功能是一个比较复杂的技术,对于初学者,可以忽略配置。后续我们会在专门的博客中讨论TFS报表的安装配置、应用、自定义开发和性能问题。
11. 默认团队项目集合
安装过程中,系统会自动创建一个团队项目集合”DefaultCollection“,系统会为每个团队项目新建一个数据库。为了区别其他已经步数据的,我们在团队项目集合的名称后面添加2019.
12. 配置信息汇总页面,无需解释
13. 配置Java 运行时环境
Azure DevOps Server (TFS2017以后的版本)系统要求有Java 环境!什么,Java?微软的产品需要Java?你是来搞笑么?
是的,基于Elastics Search搜索引擎的搜索功能需要Java运行时环境,必须安装对应版本的Java 环境,并且必须安装Server JRE。安装就绪以后,点击”单击此处重新运行就绪检查“。
Java 环境的安装比较简单,只需要将JRE复制到服务器,再添加环境变量”JAVA_HOME”,就可以了。
看到所有检查结果都是绿勾以后,急可以点击下一步,开始实际的配置过程了。
14. 执行配置
配置过程可能需要几分钟,根据你的硬件配置,所需时间不一样。例如,在我的笔记本的SSD硬盘上,整个配置过程大约耗费了10分钟时间。
15. 配置完成
看到配置成功的页面后,你可以使用浏览器打开页面(例如:http://tfsserver:8080/tfs),开始你的DevOps 之旅了!
后续我们会在Azure DevOps Server 2019的应用上,包括敏捷看板、需求管理、代码管理、自动生成、自动发布和测试、Wiki等方面,介绍相关的内容。
微软DevOps MVP 张洪君 http://www.cnblogs.com/danzhang
–End–