您使用什么来编写复杂服务器产品的部署脚本?

时间:2009-05-05 08:11:10

标签: deployment scripting

您使用什么来编写复杂服务器产品的脚本部署?

想象一下,我们已经获得了一些灵活的新代码(或者可能是版本42的光滑代码)并且已经发布了它。现在,我们当然已经掌握了基础知识 - 数据库构建和自我升级。我们有很好的“软件包”(zip文件)但是“闪亮的新服务器”和“好的,现在点击按钮”之间有很多 - 从服务代理到第三方软件,再到字体。

顺便说一句,我们是MS商店:IIS,ASP.NET,MSSQL。我们主要部署自己的服务器。随着产品变得更大并且水平扩展,更新大量服务器变得越来越重。

启发我如何轻松地做到这一点,以及回答以下任何一点......

  • 您最喜欢的服务器部署解决方案是什么?
  • 您多久回到手动步骤(将此x添加到IIS)?
  • 有没有人真的在Visual Studio中使用网站设置项目?
  • 购买实习生比写剧本便宜吗?
  • 如果你编写脚本,你在用什么 - 你喜欢它吗? (这里的某个人刚刚从MSBUILD中找到了一个引人注目的安装程序。在.NET安装之后,它始终存在。)
  • 你学会了爱WMI吗?怎么样?
  • 您是否实现了部署超越。只需看一眼闪亮的新服务器就可以部署代码及其所有依赖项?怎么样?

2 个答案:

答案 0 :(得分:2)

我们使用NAnt构建文件进行构建&包装(拉链)我们的项目。 Powershell脚本将程序包部署到目标计算机,包括Web应用程序和Windows服务。 RedGate的SQL Compare / SQL Data Compare,使用PowerShell编写,用于更新数据库模式和静态数据。 全部由JetBrain的TeamCity持续集成服务器驱动。

相同的脚本用于部署到我们的Test,QA&当然,生产环境和所有东西都保存在源代码管理中。

答案 1 :(得分:0)

我们使用NANT将新版本上传到制作中。我们已根据我们的需求对其进行了修改,并且运行正常除了我们手动执行的web.config更改之外,我们几乎不需要进行手动更改。 我们每周上传一个新版本,在某些情况下我们每天上传。我们可以选择回滚到以前的版本,我们可以选择要上传的服务器,我们将不同的分支上传到不同的服务器,我们需要做的所有事情都可以在它上面构建。

我建议写一些上传脚本。这是确保您不会忘记任何事情,您可以轻松回滚以及您确切知道服务器上发生了什么的最佳方式。