【问题标题】:What are you using to script deployments for complex server products?您使用什么来编写复杂服务器产品的脚本部署?
【发布时间】:2011-06-14 00:14:34
【问题描述】:

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

想象一下,我们有一些漂亮的新代码(或者可能是第 42 版的漂亮代码)并已发布。现在,我们当然已经有了基础知识——数据库自己构建和升级。我们有很好的“包”(zip 文件)但是在“闪亮的新服务器”和“好的,现在点击开始按钮”之间有很多东西——从服务帐户到 3rd 方软件,再到字体。

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

通过回答以下任何一个问题,启发我如何轻松、良好地做到这一点...

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

【问题讨论】:

    标签: deployment scripting


    【解决方案1】:

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

    相同的脚本用于部署到我们的测试、QA 和生产环境,当然所有内容都保存在源代码控制中。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-11-07
        • 1970-01-01
        • 1970-01-01
        • 2011-05-22
        • 1970-01-01
        • 1970-01-01
        • 2019-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多