Team Foundation Server试用升级 – 2011.5

[原文发表地址]Team Foundation Server Dogfooding update – May 2011

[原文发表时间] 2011-07-02 12:35 PM

我发布TFS试用的详尽介绍到现在也有些日子了。我之前每个月都做,但是服务器中的内容爆满,报告又非常单调,所以我决定停下来。在过去的几个月中,我发现了很多问题,所以我想是时候做一次升级了。

我将从DevDiv讲起。这比之前的复杂多了。以前一台TFS服务器就包含所有的DevDiv,并且我可以报告一个组的统计数据。而现在,我们有3台。我来详细说明下。

TFS 2010版中我们介绍了Team Project Collections。从很多方面来讲,Team Project collection就像一个独立的TFS服务器,它在它的SQL数据库中是完全独立的。当我们采用TFS 2010版的时候,我们决定要“重新开始”了。2004年以来我们一直使用同样的TFS服务器,它时常生成细枝末节,瘦长的组织结构,又会出现些没人需要的额外东西。之后我们在2010年对其进行了大幅大规模地改进,而要实现这一增强则需要数据库模式的升级,并将这些升级加入一个如我们所用的服务器一样强大的服务器,这些都要花费很长时间(很多很多天)。所以我们决定从一个新的Team Project collection着手,然后在我们需要的东西中寻找错误—做一些适当的重组—当作是一次春季大扫除。当然,我们保留了旧版的Team Project Collection,我们在那里给旧版VS做服务工作(服务包,hotfix等)。不过最近,这些没新版的collection用得多(我们用新的在做VNext工作)。这意味着我们使用着1到2个collection,不过,两个服务器都在同一个硬盘上运行,所以仍然只是一个TFS服务器。

第二个问题,我几年前就写过,那就是DevDiv服务器越来越大,而且是项艰巨的任务,让我们对升级这件事持非常保守的态度。试用的一部分已经可以使用正在开发的构建了,但是我们使自己陷入一个境况,那就是我们不能再继续长期使用了,因为我们不能冒险让在建造中的错误导致服务器崩溃。要讲这个问题,去年夏天,我们搭建了一个新的TFS服务器,我们亲切地称之为“Pioneer”。在这台服务器上,我们选取了相对小部分的DevDiv组织(大约350人)来做日常工作。团队经过精挑细选,看重的是他们对可能发生的崩溃的接受能力。他们在大部分情况下都是些直接或间接为TFS的功能提供代码的专家,也愿意为研发出新的特征功能而冒险。我们每隔几个月就会更新升级一下Pioneer服务器。

这就意味着当我报告DevDiv数时,我会将他们分为3个部分:VS VNext, VS Servicing 和Pioneer。一些像用户数之类的,也没排除在外(通常同一个人使用2个或者更多的collection),这将会导致重复统计,如果你只是把数据加起来。总的来说,大部分都可以通过求和得到最终的数字。

你在看这些数字的时候,请记住以下几点:

1) VS Servicing数据库已经存在多时了。很多人都已经用了好多年了。

2) Pioneer数据库里真正在工作的只是一小部分—所以只是DevDiv规模的缩影。现在的用户们不太能准确反映比例,因为它不会区别“轻量级用户”(那些寻找错误的)和“重量级用户”(那些登记的)。

3) Pioneer运行的是Dev11预发布的版本,我们对其做了些改动。比如,在文件计数中加入了附件内容。

Metric

VS VNext

Pioneer

VS Servicing

Recent Users

3,295

1,712

3,368

Team Projects

8

8

75

Files

371,903,328

73,317,059

1,052,226,846

Compressed File Sizes (MB)

1,276,709

1,419,324

4,915,960

Uncompressed File Sizes (MB)

5,418,821

2,681,084

16,319,559

Checkins

244,683

90,290

2,165,020

Shelvesets

55,727

35,859

284,213

Merge History

697,220,676

107,589,634

2,485,529,669

Pending Changes

16,042,586

1,422,410

26,931,501

Workspaces

19,786

8,522

44,650

Local Copies

3,129,226,059

409,161,527

824,218,447

Users with Assigned Work Items

2,698

3,695

5,093

Total Work Items

200,517

650,238

927,419

Areas & Iterations

4,493

8,014

12,092

Work Item Versions

1,879,382

6,842,523

8,963,043

Work Item Attachments

52,542

234,074

482,249

Work Item Queries

26,602

21,448

125,445

这里是每种数据库的表格大小排名前10的的简单情况:

VS V.Next

TableName

Size (MB)

%

tbl_Content

1329107.04

59.46%

tbl_LocalVersion

602183.99

26.94%

tbl_Version

64435.09

2.88%

tbl_PropertyValue

48772.83

2.18%

tbl_VersionedItem

43774.84

1.96%

tbl_MergeHistory

38935.34

1.74%

tbl_BuildInformationField

35031.9

1.57%

Attachments

22835.96

1.02%

tbl_BuildInformation

15014.2

0.67%

tbl_AttachmentContent

7601.68

0.34%

VS Servicing

TableName

Size (MB)

%

tbl_Content

5108682.9

73.17%

tbl_LocalVersion

641180.78

9.18%

Attachments

489900.24

7.02%

tbl_Version

257896.06

3.69%

tbl_VersionedItem

149325.45

2.14%

tbl_MergeHistory

141534.93

2.03%

WorkItemsWere

35543.32

0.51%

bak_versionsToUpdate

32940.14

0.47%

tbl_LabelEntry

28142.96

0.40%

tbl_PendingChange

17959.16

0.26%

Pioneer

TableName

Size (MB)

%

tbl_Content

1386480.21

88.34%

Attachments

51315.64

3.27%

tbl_LocalVersion

25392.61

1.62%

WorkItemsWere

16901.61

1.08%

WorkItemLongTexts

16634.2

1.06%

tbl_Version

12103.81

0.77%

tbl_PropertyValue

11172.32

0.71%

tbl_BuildInformationField

8953.96

0.57%

tbl_VersionedItem

8416.38

0.54%

tbl_MergeHistory

5811.37

0.37%

如果我们退回一点,看一下在微软中TFS的宏观应用,我们就会发现它的趋势是稳步向上的。

clip_image001

clip_image002

这里是一个查看几个月里主要指标变化情况的简表:

Service Offering

Oct 2010

Jan 2011

Growth

Instances

41

42

+1

Team Project Collections

100

145

+45

Team Projects

6,154

6,750

+596

Work Items

7,843,057

8,734,391

+913,072

Source Code Files

90,378,237

101,486,122

+11,107,885

就像你看到的那样,使用量有增无减。现在我们大约有2万的活跃用户(每周都使用的人)在使用这个系统。DevDiv仍然是最大的单个实例,由于工作安排的缘故,MSIT在多个案例中失败了。我们已经做好准备在Pioneer上试用V.Next,并且还将在今年晚些时候寻求拓展。看见那么多团队和成员从TFS中获得价值,真是太棒了。

Brian