fid*_*per 7 deployment git multiple-instances
主要问题:在生产服务器上使用 Git 进行部署是一个好策略吗?
我看到的许多部署策略都围绕着在您的服务器上安装 Git(开发、暂存和生产)。
对于部署到舞台/生产,这的优点似乎很明显:
但是,我看到了一些缺点:
git pull
如果生产中存在某种未分阶段的更改(也可以使用 -f 克服),则在生产服务器上可能会失败部署即服务公司(例如 Beanstalkapp.com、deployhq.com)使用 FTP、SFTP 或 SSH。Beanstalkapp 尤其擅长只根据 git 历史修改文件(而不是重新部署每个文件)。这些服务不要求您在舞台/生产服务器上安装 git(尽管如果您通过 SSH 部署,您是否会/可以使用该策略是有争议的)。
我发现我喜欢使用 sftp:
就最佳实践和安全性而言,在生产服务器上轻松使用 git 是否值得?如果没有,在跳过持续集成工具的同时进行部署的好方法是什么?
(我只询问是否跳过 CI 工具,因为时间/预算/客户限制不允许它们用于我的日常使用)。
回答您的问题:是的,使用 git(或任何其他版本控制)进行部署是可行的方法,特别是当您的基础设施开始变得复杂/庞大时。
回答您的顾虑
安全必须分层完成,即使 git 是一个真正令人担忧的攻击媒介,仍然有人必须获得对服务器的访问才能做到这一点。拥有良好的服务器安全性、基于 SSH 密钥的身份验证和访问控制/日志记录,您的风险将非常低。
如果你想编写一个部署工具,当然你必须考虑一个回滚过程,以防代码更新失败。好消息是像 capistrano(我更熟悉)这样的工具已经内置了所有这些步骤,你可以改变行为等等。
我认为最好的方法是使用部署工具,如capistrano或Vlad the Deployer,如果您已经拥有 Chef(或其他配置管理工具),甚至可以使用Chef 进行部署。
例如,默认情况下 Capistrano 有点针对 rails,但您可以对其进行定制以部署任何东西。它将连接到您的服务器,更新代码(保留一些旧版本,以防您需要回滚到以前的版本),执行数据库迁移或清理等任务,然后在需要时重新启动服务。您可以为您的环境量身定制它,甚至可以拥有不同的环境(我与生产部门合作,说明 + 3 个人)。
所有其他工具都可以让您做类似的事情,我认为花时间编写部署脚本只有在您的系统与“通常”的系统真正不同时才有效。
归档时间: |
|
查看次数: |
3342 次 |
最近记录: |