我们已经部署到使用厨师'作曲家install`生产部署
〜200个EC2实例任务关键型应用程序我们的供应商目录,目前GIT忽略,但我们在其他地方犯重要的依存关系到GIT,并自动加载他们。我们的计划是转移到更传统的方法,即通过Composer内的/ vendor和使用composer自动加载器来安装所有内容。
我的问题是:当我们发布/批量部署(200多个服务器同时)时,代码从GIT被拉到服务器上的新版本目录,因此我们需要执行我们的作曲家安装。是否有任何技术可以提高作曲家安装的可靠性?或者实际上没有什么可担心的。鉴于我们的服务器数量,即使1%的故障率意味着客户端中断。
我们有另一个应用程序在每个部署上触发作曲家安装,至少在24小时内我们无法部署,因为其中一个依赖关系“关闭”或移动了。有什么方法可以避免这个问题,同时还能避免将我们的依赖关系转化为我们的主要GIT?
谢谢!
嗨,感谢您的回复! 考虑到我们的部署实际上是一个使用厨师的GIT克隆,你在哪里推荐“包装生产构建”直播?在代码为“打包生产构建”状态的GIT中注册的代码库的“发布”分支是否是错误的?还是应该将代码构建并存储在别处以供我们的实例远程使用? 我倾向于说这个版本应该在我们主要的GIT回购之外生存,以避免混淆/意外。任何推动这一点的建议/工具? – sudoyum
嘿!它不会与'git clone'一起工作。 git checkout包含'composer.json'(或理想的'composer.lock')。基于依赖关系被拉入。 - 当然,可以将它们存储回Git中,并根据“依赖包含”分支创建发布标签,但我不会建议这样做。 –
'应该将代码构建并存储在其他地方供我们的实例远程使用吗?是的,构建应该在外面。例如,你可以使用一个简单的makefile(或一个PHP构建脚本或一个基于Ant/Phing的build.xml文件)来完成一些构建任务:'composer install' +'zip' +'upload to downloads folder for releases' 。 –