TFS中管理大型资源网站的策略

时间:2014-10-03 16:00:54

标签: visual-studio tfs msdeploy

我正在迁移一系列以前基本上没有版本控制管理的网站(VSS插入开发服务器,但是从开发人员的POV基本上是不存在的)到TFS, WebDeploy安装在Windows Server 2012计算机上进行部署。

我的问题来自我们拥有超大资源库的几个网站,我们每个人都在谈论20-30GB的PDF,PowerPoints和视频。

在过去的设置中,这些资源基本上只存在于服务器上。网站开发人员将获得一组新文档,将它们打包并通过FPSE发送到服务器,然后删除其本地工作副本以释放空间。

使用TFS我刚刚制作了网站当前状态的副本,加载到解决方案中并将其全部放入TFS中。由于多种原因,结果很笨拙:

  1. 这意味着解决方案非常庞大,我们很快就会在本地计算机上遇到空间问题,加上一个新的开发人员加载解决方案,或者开发人员在删除他们的本地副本后回到解决方案,初始打开可以采取从服务器下载所有这些大型资源的小时数。
  2. 进行发布时,所有这些资源都包含在存储在用户计算机上的包中。这会导致更多空间被耗尽,并且所有资源都被复制到临时目录,因此会进行极长的初始发布。
  3. 我考虑过将跳过规则添加到部署设置中,以便只处理添加和更新,然后让开发人员在发布后删除文档,这样可以正常工作,但它只留下了部分版本的版本控制该网站的真实内容。

    有没有办法配置这些目录,以便需要在本地显式复制,即当用户从TFS打开解决方案时,他们不会被复制,但如果我们需要进行干净部署,它们就可用了该网站到一个全新的服务器?这与跳过规则相结合将是一个解决方案,但我不知道是否/如何可能。

    另外一个警告,这些网站不是网络应用程序项目,似乎总是让事情变得更加困难......

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题是您在应用程序代码旁边存储了非必要的二进制文件。

由于以下原因,这是一个很大的问题:

  • 自动构建需要更长时间,因此设置良好的持续集成变得更加困难或不可能。
  • 部署需要更长时间,因为他们必须复制无关文件的演出
  • 开发人员必须处理下载大量与他们无关的文件才能开展工作

将两件事分开。将内容存储在其他地方。 "其他地方"根据很多因素,它在空中。对于初学者,您只需将其迁移到应用程序代码文件夹之外的单独文件夹即可。不关心内容的开发人员可以隐藏文件夹。也就是说,源代码控制对于静态二进制内容来说是一个非常糟糕的地方。

这样的事情:

$/
  Dev
    Application
      Code
      Content        
  Main
     etc

开发人员可以映射$ / Dev /,并隐藏$ / Dev / Application / Content。 如果你这样做,部署会变得有点棘手,因为你有一个额外的步骤 - 部署代码和部署内容成为单独的任务。我们的想法是组合/ Code和/ Content文件夹。

这为您提供了极大的灵活性,因为您可以更快地部署应用程序的代码。您还可以采取措施自动化内容部署,以便更快地推送内容更改,而无需担心在部署新代码时内容推送会导致您的网站停机。