部署网站的最有效方法是什么?


8

我知道几种部署网站的方法:

  • 的FTP
  • 从源代码控制导出
  • 以源代码管理结帐为基础的网站

我可以看到每个方面的优点和缺点。关于部署新站点或站点修改的最有效方法是否达成共识?


1
与其他一些问题密切相关,而且比较主观。这可能会引发争论。实际上,如果它完全涉及版本控制,通常会引起争论。
蒂姆·波斯特

1
我感兴趣的不是源代码控制,而是比较不同的部署技术。我认为我们可以期望对优缺点进行合理的比较。
格兰特·帕林

Answers:


6

在堆栈溢出方面最有效(并符合Joel测试的第2点)的是一个持续集成的解决方案,允许一键构建我们的生产站点,以及在新代码签入后自动构建我们的开发人员层。

我们使用.NET风格的CruiseControl,并使用令人兴奋的名称。.CruiseControl.NET :)

一些关键功能包括:

  • 与各种源代码控制系统集成
  • 与其他外部工具(如NAnt和Visual Studio)集成
  • 可以在一台服务器上构建多个项目
  • 远程管理和报告

我们一直对这个开源软件感到非常满意,并将其推荐给希望简化构建过程的任何团队。


2
我以为Caps Lock是巡航控制系统……太酷了
Mark Henderson 2010年

3

我更喜欢自动且可重复的部署。您绝对希望从源代码控制标签开始,以便您确切了解部署的内容并可以随时重新部署它。然后使用脚本将其推送到服务器,就像Capistrano一样,或者只是自制的bash脚本或类似的东西。

对于使用已编译代码的站点,如果测试服务器与生产服务器匹配,则最好只编译一次代码,并在测试完该代码后将相同的编译版本推送到生产环境中。


1

我使用自定义脚本。对于静态(基于HTML)网站,我使用带有新版本和已安装版本的双重目录,然后脚本diff在新版本和已安装版本上运行递归,并且仅上载已更改的文件。


脚本是什么语言?ash?介意给我们看看吗?
paan 2010年

@paan:在Perl中。抱歉,我无法发布整个脚本。

0

我使用git和几个自定义的钩子进行部署。这甚至具有以下优势:我可以为dev / test / beta / production站点运行多个分支并执行一些CI。对于紧急补丁,git始终允许将特定的提交从一个分支挑选到下一个分支。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.