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的宏观应用,我们就会发现它的趋势是稳步向上的。
这里是一个查看几个月里主要指标变化情况的简表:
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