Azure DevOps Server 2019 (TFS)安装教程
概述
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--
Azure DevOps Server 2019 (TFS)安装教程的更多相关文章
- 微软 Azure DevOps Server 2019 Update 1 (TFS 2019.1)
1.概述 微软在2019年5月发布Azure DevOps Server 2019后不到2个月的时间里,就快速准备好了第一个升级包(2019 Update 1),并计划在几周后发布正式版本.也许你还没 ...
- 你好,Azure DevOps Server 2019;再见,Team Foundation Server
微软正式发布Azure DevOps Server 2019的第一个版本,作为Team Foundation Server (TFS)2018的升级版本和替代产品. 这是目前市面上唯一一款将产品名称冠 ...
- Azure DevOps Server(TFS) 客户端分析
Azure DevOps Server(TFS) 是微软公司的软件协作开发管理平台产品,为软件研发.测试.实施提供全流程的服务.作为一款应用服务器产品,他的客户端是什么,在哪里下载客户端?我们在项目实 ...
- Azure DevOps Server 2019 第一个补丁包(2019.0.1 RTW)
在Azure DevOps Server 2019正式发布后的2周左右时间,微软快速发布了第一个补丁包Azure DevOps Server 2019.0.1 RTW.Azure DevOps Ser ...
- 在macOS苹果电脑上安装Azure DevOps Server(TFS)代理
1. 概述 MacOS是一套运行于苹果Macintosh系列电脑上的操作系统,是首个在商用领域成功的图形用户界面操作系统.Iphone应用软件的开发人员,都使用运行macOS的电脑或mini盒子进行软 ...
- 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)
概述 Azure DevOps Server(之前名TFS)是微软公司实现软件研发.测试和部署一体化的全流程解决方案.在近几年的研发过程中,Azure DevOps Server 大幅增强了软件部署过 ...
- 为Azure DevOps Server (TFS) 配置安全访问(HTTPS with SSL)
Contents 1. 概述 2. HTTP和HTTS比较 支持HTTP和HTTPS两种方式 要求所有连接使用HTTPS 优点: 缺点: 3. 为Azure DevOps Server 配置安全访问 ...
- 在Azure DevOps Server(TFS)上集成Python环境,实现持续集成和发布
Python和Azure DevOps Server Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端 ...
- Azure DevOps Server(TFS): 在Excel中解除服务器同步
通过Azure DevOps Server 提供与Excel集成的功能,用户可以非常便捷地使用Excel,实现工作项数据的同步. 对于需要批量处理数据.离线工作.制作临时报表的用户来说,这个功能必定成 ...
随机推荐
- Binary Prefix Divisible By 5 LT1018
Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a bi ...
- 一波水题 MZOJ 1035: 贝克汉姆
#include <bits/stdc++.h> using namespace std; ; int n,m; int v[N],w[N],f[N]; int main() { scan ...
- Python开课复习-10/17
pickle是一个用来序列化的模块序列化是什么?指的是将内存中的数据结构转化为一种中间格式 并存储到硬盘上 反序列化?将硬盘上存储的中间格式数据在还原为内存中的数据结构 为什么要序列化?就是为了将数据 ...
- 2019.01.01 bzoj3625:小朋友和二叉树(生成函数+多项式求逆+多项式开方)
传送门 codeforces传送门codeforces传送门codeforces传送门 生成函数好题. 卡场差评至今未过 题意简述:nnn个点的二叉树,每个点的权值KaTeX parse error: ...
- hdu-1034(模拟+小朋友分糖)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1034 参考文章:https://blog.csdn.net/zyy173533832/article/ ...
- react native项目的创建和运行
1.创建项目 react-native init projectName 2.运行项目 在AndroidStudio上运行安卓模拟器 cd projectName react-native run-a ...
- linux学习--查看操作系统版本及cpu及内存信息
查看版本当前操作系统内核信息 uname -a 查看当前操作系统版本信息 cat /proc/version 查看物理cpu个数: cat /proc/cpuinfo| grep "phy ...
- C++STL priority_queue
priority_queue优先级队列 最大值优先级队列(队头是最大值) 最小值优先级队列(队头是最小值) priority_queue<int> q1;//默认定义为最大值优先级队列 ...
- 张奎师弟参与devexpress chartControl绘图--解决了devexpress的chartControl控件不能添加系列的问题
using DevExpress.XtraCharts; using System; using System.Collections.Generic; using System.ComponentM ...
- VIP之CVI CVO
3. VIP CVI CVO 在开始时,对于CVI和CVO是不知道应该怎样去调试的,就是不知道应该从哪里去确认是对还是错. 关于这一点从再次看到关于数据包的格式才明朗的.去分析CVI和输出 ...