没有上docker,单服务器持续集成/发布应该怎么做?
目前公司只有2台服务器,一台测试,一台生产,项目使用的laravel6.x,目前看了下现在的发布是用Jenkins做的,Jenkins部署在测试服务器上,发布的做法的在Jenkins服务器上把git的代码拉到临时文件夹上,然后用synchronize插件把代码文件同步到代码服务器上。
这是目前的做法,是之前的同事弄的,现在他要离职了,我感觉这个做法问题还是挺大的。我之前的公司要么是用docker部署,碰不到生产环境,还有非常简陋地使用文件对比工具上传代码的,所以对服务器发布这块不太了解,想知道大家都是怎么做的。
目前感觉有几个问题:
1、单服务器发布是不是一定会有短时间的服务不可用? 代码变更期间,怎么保证程序没有问题?比如代码跑一半引用的文件变了甚至不存在了
2、如果我使用代码更新,然后手动去服务器上git pull会更好更快吗?
3、还是1那个问题,代码更新怎么保证服务不受影响? 特别是只有单服务器的情况吗,难道是部署2个项目,然后去Nginx上手动切换root目录吗?
想看看大家是怎么做的,有什么好的方案可以不吝赐教下
当前你们的解决方案已经足够满足要求了