TFS Intranet自动部署策略

时间:2015-10-05 12:28:06

标签: deployment version-control tfs intranet

我已经向我的团队介绍了分支/合并,并且之前已经讨论了如何自动构建和部署检查到登台/主分支的代码,但我是一个初级开发人员,而不是非常ops-y。

我遇到的麻烦是,我们创建内部网应用程序并将它们存储在我们可以访问的自己的VM上,但是我们还有负载平衡,这让我感到悲伤!

我可以获得自动化的构建(好吧,我没有弄清楚所有的错误,但我正在通过它们) - 我甚至可以让构建自动创建一个zip文件,可以部署。 是否可以配置多个服务器进行部署? 即

1) I check in some code to stage
***Automatically***
2) Code builds
3) Build completes, Unit tests run and they complete
4) Code is packaged into a .zip
5) .Zip is deployed across the three load balancing servers (all with the same file path).
***

也许值得注意的是,我们目前让我们的TFS服务器运行Visual Studio,因此代码构建在所有存储的同一台服务器上,但这不是我们运行实时代码的服务器。

任何特定于我的设置的帮助或教程都会非常感激,我真的想让这些部门发布策略!

1 个答案:

答案 0 :(得分:3)

我将仅解决部署方面的问题。有许多不同的方法可以解决这个问题,例如:

  1. 自定义构建模板
  2. 编写自定义.Net代码并将其插入构建模板(这也涉及自定义模板)
  3. 创建批处理或Powershell脚本集,以便在构建完成后运行
  4. 使用OctoDeploy或Release Manager等单独工具来处理部署
  5. 您需要做的第一件事是分离您头脑中的构建和部署步骤。虽然它们在您的模型中紧密耦合,但它们是两个完全不同的任务,需要以不同的方式处理。
    第二件事是在部署部分时停止像开发人员一样思考。虽然可能会有程序化解决方案,但您需要先确定手动步骤。
    你表示你不是很认真,我认为你的意思是你更多的是开发人员,而不是系统分析师。如果是这种情况,那么您需要做的第三件事就是找一个参与的人,例如您当前的发布团队。

    当时有三件大事需要做:

    1. 一切都需要标准化。如果你不能标准化某些东西,那么标准化它是非标准的方式(例如:你有一个需要部署的服务器的批量列表,你需要根据它们的名称找出要部署的服务器,在这种情况下,需要制定一条规则,规定所有QA服务器都需要在其名称中使用QA,用户验收服务器需要UAT,生产需要PROD等。)
    2. 弄清楚如何从构建到部署进行通信,构建将部署到哪些服务器,以及从哪里获取代码
    3. 您需要记录每个手动步骤,这些步骤的每个例外以及这些例外的每个例外情况。
    4. 一旦掌握了所有这些部分,您需要完成每个手动步骤并自动执行它,无论是通过Batch,Powershell还是自定义构建的应用程序。完成所有步骤后,您将完成构建和部署工作。
      在能够对单个环境执行单个“手动”自动部署之后,您就可以准备好了解如何在多个环境中运行它。这可以像迭代的XML文件一样复杂,只需用不同的参数多次调用同一个命令。

      我在当前工作中如何完成此操作的快速摘要(使用第三方部署工具不是一种选择):

      1. 使用.Net WinForms创建了一个工具,允许我们“手动”运行自动构建(我们使用界面来确定输入参数,并且引擎盖下的自定义类可以完成所有繁重的工作。这些自定义类位于构建到自己的dll的单独项目。这也允许我们在测试环境中测试进程的调整和更改,然后再将它们推送到我们的生产构建服务器。)
      2. 为每组环境(QA,UAT,Prod等)设置一个XML文件,其中包含需要在该环境中部署的所有服务器,包括目标路径,计划任务和Windows服务< / LI>
      3. 自定义TFS构建模板并包含为自定义工具创建的自定义类,该工具将读取XML文件并遍历每个服务器条目以执行部署
      4. 我非常乐意帮助提供更具体的示例和帮助,我看一下与大多数人不同的事情,这对发布管理有帮助。