1
scys 2016-04-09 01:19:43 +08:00
今天刚部署公司项目,好在是测试期间,结果停了 1 个小时有多。
测试环境和实际环境差异太大。 推荐单独划分一个路径 /path 测试通过后,监听不同端口,由 nginx 进行 reload 区分,新链接会自动读取新的服务器,旧链接不会断。 |
2
SlipStupig OP @scys 不仅仅是 web 服务,我想的代码开发完成了,本地测试也通过了,怎么分发到生产环境中,如果有新应用上线就安装新环境完成后起服务,如果是版本更新就覆盖掉老的代码,然后启动已经更新完成的项目,但是这个过程我想完全自动化,不能说每次都登陆到服务器上面去吧?一条两台还好,几十台怎么办?
|
3
scys 2016-04-09 01:28:16 +08:00
git hook
|
4
Mush 2016-04-09 02:03:14 +08:00
哎, 关于这个问题, 我们能聊一天, 我用 docker 实现了一个比较炫酷的方式.
|
5
zhouxuchen 2016-04-09 02:13:26 +08:00
我 php 开发用的是 Git WebHooks ,生产环境和线上环境走不同的配置文件。不知道 Python 行不行。
|
6
janxin 2016-04-09 08:22:04 +08:00 via iPhone
lz 可以看一下持续交付与持续部署
另外线上我不太建议自动持续部署,有可能版本本身 bug 等等原因,当然,除非就 1 、 2 台机器的小项目。 |
7
virusdefender 2016-04-09 10:38:58 +08:00 via Android
fabric
|
8
SlipStupig OP @Mush docker 很好说,环境打好了直接 push 到生产环境,但是公司无人使用,所以这个一定不行!
@zhouxuchen 应用程序不是推上去就可以了,还要启动入口程序,可能有的还有相关参数需要设定,有些模块是第三方使用配置文件基本上没可能,所以这个方法可能可行,但是可能要增加额外的工作量 |
9
greenmoon55 2016-04-09 13:20:43 +08:00
docker or ansible/saltstack...
|
10
qihboy 2016-04-14 20:03:57 +08:00
你们没听说过 virtuanenv 和 fabric 么?
|