使用teamcity在多台服务器上自动部署哪一个更好章鱼或msdeploy

时间:2012-07-10 10:32:13

标签: .net msbuild teamcity msdeploy octopus-deploy

我已经调查了两者。希望您就多个服务器上的自动Web部署更好地提出建议。

3 个答案:

答案 0 :(得分:16)

我认为你一定要试试TeamCity和Octopus。我们使用TeamCity创建Octopus(NuGet)软件包和Octo工具,以便在每次成功构建后自动触发部署到测试环境。之后,我们使用Octopus门户推动部署到其他环境。

我们使用以下Octo命令行来触发TeamCity的部署:

Octo.exe create-release --apiKey=YourOctopusAPIKey --server=http://YourOctopusServer:9015/api --project=YourOctopusProjectName --deployto=YourOctopusEnvironment

Octo创建发布步骤需要在一个单独的TeamCity项目中,否则NuGet不会使用构建中生成的包进行更新。

答案 1 :(得分:4)

MSDeploy可用于部署从Web应用程序到数据库的所有内容,Web Farm Framework可用于从主服务器同步到辅助服务器(如果您愿意,也可以使用不同的set parmeters手动执行)。

您所描述的是“部署管道”。我不确定你如何将其整合到Team City中,但基本前提是:

  1. 构建应用程序,测试并打包它(声明需要设置的任何参数)。将包(以及将来步骤所需的任何文件)推送到工件存储库(可能是Team City,如果它支持的话)。
  2. (自动触发)从工件存储库获取包并通过调用msdeploy -verb:sync -source:package.zip -dest:auto,computerName=http://server:8172/msdeploy.axd -setParamFile:dev.xml
  3. 将其部署到dev
  4. (手动触发)将程序包部署到阶段
  5. (手动触发)将程序包部署为
  6. MSDeploy支持大量功能,包括在Windows凭据管理器中存储凭据以及参数化部署的几乎所有方面。我强烈建议你看一下。 (除Windows Server许可证外,它也是免费的)

答案 2 :(得分:1)

这取决于。 (让我觉得这个问题还没有被标记)。但无论如何,它可能值得问自己这些:

  1. 您是否正在开发一个网站,要求QA签署并推广或使用自动化测试套件来验证每个版本?
  2. 您是部署到多个环境(QA,UAT,Demo,Production),并希望看到哪个版本所在的漂亮仪表板?
  3. 您是否要求某些用户拥有推向生产的权限?
  4. 您是否需要部署其他类型的组件(Windows服务,数据库等)
  5. 在开始部署之前,您是否需要在每台服务器上进行一些额外的设置(例如,调用chocolatey来安装和设置Mongo)。 Aka有限的服务器配置。
  6. 是否需要在促销生命周期内进行控制(例如,只有通过质量检查才能进入生产阶段)。
  7. 如果您对上述大部分内容表示肯定,我会说Octopus Deploy会因为部署而失败。猜猜看,它可以免费用于多达5个项目,轻而易举地启动并运行。

    对于需要由最终用户或不需要由开发人员维护的网站进行简单CMS管理的简单网站,我要说所有Azure内容和MSDeploy都是这项工作的绝佳工具。正如Richard Szalay所提到的那样,它现在有很好的命令行工具可以定期发布。

    就构建服务器而言,它并不重要,因为它应该用于创建你的文物。 Team City是我的赢家,因为它与Octopus有很好的整合。国际海事组织,这是一个单独的讨论。