我已经调查了两者。希望您就多个服务器上的自动Web部署更好地提出建议。
答案 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中,但基本前提是:
msdeploy -verb:sync -source:package.zip -dest:auto,computerName=http://server:8172/msdeploy.axd -setParamFile:dev.xml
MSDeploy支持大量功能,包括在Windows凭据管理器中存储凭据以及参数化部署的几乎所有方面。我强烈建议你看一下。 (除Windows Server许可证外,它也是免费的)
答案 2 :(得分:1)
这取决于。 (让我觉得这个问题还没有被标记)。但无论如何,它可能值得问自己这些:
如果您对上述大部分内容表示肯定,我会说Octopus Deploy会因为部署而失败。猜猜看,它可以免费用于多达5个项目,轻而易举地启动并运行。
对于需要由最终用户或不需要由开发人员维护的网站进行简单CMS管理的简单网站,我要说所有Azure内容和MSDeploy都是这项工作的绝佳工具。正如Richard Szalay所提到的那样,它现在有很好的命令行工具可以定期发布。
就构建服务器而言,它并不重要,因为它应该用于创建你的文物。 Team City是我的赢家,因为它与Octopus有很好的整合。国际海事组织,这是一个单独的讨论。