服务器 app 的部署问题

2013-07-22 16:16:17 +08:00
 humiaozuzu
一般情况下,我们会有 staging 和 production 2个服务器。

一般有2种部署的模式,一个是 local (dev/master branch)分别 push 到 staging 和 production

还一个是,push 2 个 branch 到 github,staging 和 production 分别从不同的 branch 获取代码。

后者是之前一直使用的模式,但是有不少缺点,比如
- 需要 push 了然后 pull
- github 偶尔会挂
- staging 部署的次数会比较多,因为部署经过了 github 所以会在github上有message提示,多了会刷屏

第一种方法,大家账户是怎么配置的呢?因为要通过ssh,所以push的用户和www-data用户权限如何配置呢,用不用添加到一个group呢?

大家有什么更好的建议吗?
3435 次点击
所在节点    问与答
15 条回复
humiaozuzu
2013-07-22 16:23:59 +08:00
ritksm
2013-07-22 16:27:06 +08:00
我是这么想的:
问题一:
比较简单的:服务器去轮询git库
自定义程度高的:自己写一个接口,然后https://help.github.com/articles/post-receive-hooks
问题二:
自己搭一个呗,当然,偶尔也会挂
问题三:
自己搭一个同样可以解决,或者Github上Watch选项选择Ignore,好像不太好的感觉

至于key的问题,我用了个没密码的deploy专用key。。。。不安全的赶脚
Livid
2013-07-22 16:34:44 +08:00
你其實並不真的需要 GitHub,在自己的 server 上用 Stash 會更穩定。
notedit
2013-07-22 16:38:07 +08:00
我说一下我的做法 测试服务器和线上服务器分别有一个配置文件(可以根据环境变量来读取不同的配置),

线上服务器的分支默认是default 测试服务器上是一个开发分支 测试没问题之后 在线上服务器merge一下 然后重启完成部署

可能还不够智能 但实践证明还是比较靠谱的方式 还没出过什么上线的事故
humiaozuzu
2013-07-22 16:58:26 +08:00
@Livid Stash 指的是?
Livid
2013-07-22 17:01:28 +08:00
Kai
2013-07-22 17:19:51 +08:00
其实如果再简单些,并且 git log 就足够交流的话,VPS 上随便搭个 Git server 就足够和小伙伴们一起用了吧。

http://tumblr.intranation.com/post/766290565/how-set-up-your-own-private-git-server-linux
bcxx
2013-07-22 17:45:51 +08:00
staging 用手动 push 呗...
humiaozuzu
2013-07-22 17:57:24 +08:00
@Livid 好的,thx 也就是说你还是走的从 git server pull 的模式?
humiaozuzu
2013-07-23 00:33:36 +08:00
@Livid 赞一个,Stash 相当好用,就是内存占用。。。。
humiaozuzu
2013-07-23 11:21:01 +08:00
@Livid 内存占用太大了,1G内存用完了,创建repo的时候失败。。。64位的机器,有什么省下内存的方法吗
alexrezit
2013-07-23 11:23:58 +08:00
在自己的服务器上放 repo 不就好了...
humiaozuzu
2013-07-23 11:47:48 +08:00
@alexrezit 是的啊,不过我搭建的是类似github那种级别的 web app
Livid
2013-07-23 11:55:47 +08:00
@humiaozuzu 可以改一下 Java 的启动参数。不过 Stash 确实有规模。
blue5tar
2013-07-23 22:44:19 +08:00
最近在研究用capistrano部署。 https://help.github.com/articles/deploying-with-capistrano。这是github使用capistrano部署的文章。 支持多台机器 git svn 分支 staging product 回滚 神马的都可以。数据库部署 服务重启。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/76601

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX