2015-10-05 102 views
2

我已经介绍了分支/合并到我的团队,它怎么会是伟大的自动构建和部署代码签入切入/主分支以前提到过的,但我是一个初级开发,不非常ops-y。TFS联网自动化部署战略

我有麻烦,是我们创建Intranet应用程序,并将它们存储在我们自己的虚拟机,我们有机会获得,但我们也有,这是造成我悲愤负载均衡!

我可以构建自动化(嗯,我没有弄清楚所有的错误,但我正在通过他们的方式工作) - 我甚至可以让构建自动创建一个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这样的代码是建立在相同的服务器是所有存储,但是这不是我们运行从活代码服务器。

任何帮助或特定于我的设置教程将不胜感激,我真想把这个部门围绕释放战略!

回答

3

我将只处理部署方面。有很多不同的方式,这是可以处理的,如:

  1. 定制构建模板
  2. 编写自定义Net代码并将其插入到生成模板(这也将涉及,定制的模板)
  3. 创建设置构建完成
  4. 后,使用单独的工具,如OctoDeploy或发布经理来处理部署运行批处理或PowerShell脚本

第一你需要做的事情是将构建和部署步骤分开。虽然它们紧密结合在你的模型中,但它们是两个完全不同的任务,需要以不同的方式处理。
第二件事是在开始部署时停止像开发人员那样思考。虽然可能会有一个程序化解决方案,但您需要首先确定手动步骤。
你说你并不是非常适合我,我认为你的意思是你是开发者而不是系统分析师。如果是这样的话,那么你需要做的第三件事是找人涉及到谁,如当前的发行团队。

有需要进行,于是做了3件大事:

  1. 一切都需要加以规范。如果你不能标准化某些东西,那么标准化它的非标准化方式(例如:你有一个需要部署到的服务器的大量列表,你需要根据它们的名字找出要部署的服务器,在这种情况下,需要制定一条规则,即所有QA服务器都需要在其名称中包含QA,用户接受服务器需要UAT,生产需要PROD等)。
  2. 弄清楚你将如何从构建到部署进行通信,哪些构建要部署到哪些服务器以及哪些代码将从
  3. 中挑选出来您需要记录每个手册步骤和这些步骤的每个例外,以及这些例外的每个例外。

一旦您完成了所有这些工作,您需要通过每个手动步骤并自动执行,无论是通过批处理,Powershell还是定制应用程序。将所有步骤自动完成后,您将完成构建和部署。
后你能执行一个“手动”自动部署到一个单一的环境,你就准备好要弄清楚要如何运行多个环境。这可能与迭代的XML文件一样复杂,只需使用不同的参数多次调用相同的命令即可。

的我是如何做到了这一点,在我目前的工作简要总结(其中使用第三方部署工具是不是一种选择):

  1. 创建使用。NET的WinForms让我们的工具“手动”运行自动构建(我们使用接口来确定输入参数,引擎盖下的自定义类完成所有繁重的工作,这些自定义类位于一个单独的项目中,可以构建到自己的dll中,这也使我们测试的调整和在测试环境变化的过程中,我们将其推广到我们的生产构建服务器)之前
  2. 建立一个XML文件,每套环境(QA,UAT,PROD等)包含所有需要在该环境中部署的服务器,包括目标路径,计划任务,和Windows服务
  3. 定制TFS生成模板,包括自定义工具创建的自定义类,将读取XML文件并通过每个服务器条目重复进行部署

我更乐意帮助更具体的例子和帮助,我看的东西比大多数人有点不同,它可以帮助当谈到释放管理。

+0

感谢这一切 - 这是一个耻辱TFS不能够仅仅有一个非常简单的“下面是一些直接的文件路径部署到”,但我想它不是针对内网建这么多。 我们目前有4个主要业务部门,都有自己的QA/UAT/Production(主要BU有3个负载均衡产品)。 如果我能得到TFS自动生成,(即开发合并多达QA) - 没有“自动” /“一键式”的方法来容易地解除这些变化对所有QA服务器?实际上考虑一下,允许在'一键式'方法中控制哪些服务器可能会更可取... –

+0

我相信新版本(2013+)具有更好的部署管理(我最熟悉2010)。由于所有的环境都不同,开箱即用的东西很难。有第三方工具(嗯,发布管理现在是第一方),可以用来扩展TFS功能,使部署更容易,没有它们是一个不小心,并需要自定义代码或脚本。 你可以看看ClickOnce发布,它可以做你需要的东西,但它有它自己的时髦限制,我从来没有尝试过它的实际构建。 – Taegost