Azure DevOps Server 2019 (TFS)安装教程

Stella981
• 阅读 405

概述

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来说,非常简单,基本上是傻瓜式的,只需要简单点击几个”下一步“就可以了,参考下面的截图:

Azure DevOps Server 2019 (TFS)安装教程

Azure DevOps Server 2019 (TFS)安装教程

安装完成以后,系统会可能会提示你重启操作系统,进入到后面的配置环节。也可能由于你的系统之前已经安装的相关的模块,例如Framework 4.7以上版本,不需要重启操作系统。

第二步,系统配置:

当完成上一步的系统重启以后,Azure DevOps Server 自动弹出配置窗口,你可以开始配置TFS 服务器的所有信息了。

在配置过程中,你可以根据系统提示,一步一步的完成所需的全部配置信息;你也可以在配置过程中选择忽略一些功能模块,例如报表功能、搜索引擎功能等。

在配置过程中,系统还会自动检查你的环境是否符合要求,如果系统发现环境问题,会自动停止安装过程,要求你解决问题后,再次启动环境检查过程。下面是具体配置的过程和相关说明:

1. 自动弹出配置信息,点击”启动向导“

Azure DevOps Server 2019 (TFS)安装教程

2. 欢迎页面,不需要解释和截图

3. 全新部署,需要选择”这是新的Azure DevOps Server 部署“

Azure DevOps Server 2019 (TFS)安装教程

4. 部署方案

一般情况下,我们都会选择高级部署。在高级部署中,你可以对每一个部署过程做配置调整。

Azure DevOps Server 2019 (TFS)安装教程

5. 选择语言

系统会自动选择操作系统的语言版本。Azure DevOps Server支持几十种语言文字,用户无需安装语言包,也无需使用特定语言的安装程序。

Azure DevOps Server 2019 (TFS)安装教程

6. 数据库设置

你可以在这个页面中选择数据库服务器的名称和实例米名称;如果希望多个版本的TFS部署在同一台数据库服务器上,你可以选择标签区分不同版本的数据库。例如笔者的数据库服务器上之前已经部署了TFS 2018版本,在数据库标签上我添加了”2019“的标签,就不会干扰或者覆盖现有TFS数据库。

Azure DevOps Server 2019 (TFS)安装教程

7. 配置访问数据库的账户

Azure DevOps Server 2019 (TFS)安装教程

8. 配置Web应用的端口的应用名称

默认配置中,TFS使用IIS中的8080端口,使用tfs作为应用程序名称。你可以根据服务器的应用范围,自己选择端口和应用程序名称。如果你不太明白每一项设置的含义,可以保持默认配置。

Azure DevOps Server 2019 (TFS)安装教程

9. 配置全文索引服务

Azure DevOps Server 2019的全文索引使用了Elastics Search(ES) 搜索引擎服务。在安装应用程序的过程中,系统会自动配置ES服务器和对应的功能。

Azure DevOps Server 2019 (TFS)安装教程

10. 配置报表

Azure DevOps Server 的报表处理功能是一个比较复杂的技术,对于初学者,可以忽略配置。后续我们会在专门的博客中讨论TFS报表的安装配置、应用、自定义开发和性能问题。

Azure DevOps Server 2019 (TFS)安装教程

11. 默认团队项目集合

安装过程中,系统会自动创建一个团队项目集合”DefaultCollection“,系统会为每个团队项目新建一个数据库。为了区别其他已经步数据的,我们在团队项目集合的名称后面添加2019.

Azure DevOps Server 2019 (TFS)安装教程

12. 配置信息汇总页面,无需解释

Azure DevOps Server 2019 (TFS)安装教程

13. 配置Java 运行时环境

Azure DevOps Server (TFS2017以后的版本)系统要求有Java 环境!什么,Java?微软的产品需要Java?你是来搞笑么?

是的,基于Elastics Search搜索引擎的搜索功能需要Java运行时环境,必须安装对应版本的Java 环境,并且必须安装Server JRE。安装就绪以后,点击”单击此处重新运行就绪检查“。

Java 环境的安装比较简单,只需要将JRE复制到服务器,再添加环境变量”JAVA_HOME”,就可以了。

Azure DevOps Server 2019 (TFS)安装教程

Azure DevOps Server 2019 (TFS)安装教程

看到所有检查结果都是绿勾以后,急可以点击下一步,开始实际的配置过程了。

14. 执行配置

配置过程可能需要几分钟,根据你的硬件配置,所需时间不一样。例如,在我的笔记本的SSD硬盘上,整个配置过程大约耗费了10分钟时间。

Azure DevOps Server 2019 (TFS)安装教程

15. 配置完成

看到配置成功的页面后,你可以使用浏览器打开页面(例如:http://tfsserver:8080/tfs),开始你的DevOps 之旅了!

Azure DevOps Server 2019 (TFS)安装教程

Azure DevOps Server 2019 (TFS)安装教程

后续我们会在Azure DevOps Server 2019的应用上,包括敏捷看板、需求管理、代码管理、自动生成、自动发布和测试、Wiki等方面,介绍相关的内容。

微软DevOps MVP 张洪君 http://www.cnblogs.com/danzhang

--End--

点赞
收藏
评论区
推荐文章
Jacquelyn38 Jacquelyn38
1年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
刚刚好 刚刚好
4个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
晴空闲云 晴空闲云
4个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
3个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Stella981 Stella981
1年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序selectfromtable_nameorderiddesc;2.按照指定(多个)字段排序selectfromtable_nameorderiddesc,statusdesc;3.按照指定字段和规则排序selec
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
helloworld_28799839 helloworld_28799839
4个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue
helloworld_34035044 helloworld_34035044
6个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为