开发团队合作模式的疑问

2015-10-20 11:02:30 +08:00
 zhkzyth

hi , all

我们团队是用 python 做开发的,在团队协作方面,遇到了一些问题。

目前团队的协作开发是这样的,比如做某一个业务产品,开发者把代码拷到本地,所有的依赖服务,比如 mysql 、 redis 、 rabbitmq 等等,都在自己本地部署一套,数据也拷贝一份,然后进行开发调试。测试完毕后,推送到测试环境,跟客户端进行调试。

其实有过另外一个思路,就是每个开发者都在同一台开发服务器上面进行开发。代码方面,给每个人分配一个账号,共用数据服务、第三方服务;路由方面,主要是通过 nginx 转发。每个开发者自己都有一个 nginx ,负责路由到自己的实例上,然后还有一个主的 nginx ,负责转发。

有点抽象,举个例子:

我是 A 开发者,就分配一个 a.dev.xx.com , B 开发者就是 b.dev.xx.com 。

我登录到 dev 服务器,在自己的 /home/a ,下面有个业务代码,比如叫 produt_v2 ,打开 vim 进行开发(或者我本地通过`SSHFS`之类的功能,映射到本地进行编码)。

开发完后,我跑下 unittest 写的测试用例,这里的域名,我用的是 a.dev.xx.com ,然后请求经过主的 nginx 转发,转到我自己的 nginx (二级 nginx ),最后转发到我的 product_v2 代码实例上面来(比如 tornado 实例,端口 9990 )。

调试完成,通过`fabric dev`类似的命令,把代码发布到测试环境(目前来说,开发和测试是同一套环境)。这里其实是把代码发布到一个叫做`deploy`用户的`/home/deploy`目录下,我主要是用它来负责运行测试代码的。本质上,它跟普通的开发者是一致的。

最后,客户端或者其他测试人员,通过 dev.xx.com 来进行调试访问。

之前做 php 的时候,用的是这种多个 nginx 分发的模式,但是当时手头那套工具比较复杂,就没继续沿用在现在的基于 python 栈的团队开发中了。

提出来其实想问问大家在团队开发过程中,怎么比较合适、舒服的方式进行开发的呢?比如,用 docker ?自己搞了一套工具?

欢迎吐槽=。=

3138 次点击
所在节点    Python
10 条回复
Muninn
2015-10-20 11:55:21 +08:00
关注

你说的公用服务 比如数据库啊 redis 啊队列啊 是公用一个呢 还是各自建一个库
各自建一个其实和以前是一样的 公用呢, 有的还好, 有的地方容易冲突
est
2015-10-20 12:25:41 +08:00
表示是混用的。 python manage.py runserver --settings= 可以写

--settings=dev
--settings=local
--settings=test
--settings=staging
--settings=prod

本地开发和共用服务器开发都可以无缝切换。
felixzhu
2015-10-20 12:53:38 +08:00
个人觉得还是每个人有一套开发环境的环境比较好,开发环境可以大家共用一套数据
其实就是 PHP 的那种模式,也不算复杂吧,就是要一个人配置一下

然后多个测试环境多个分支,每个分支可以配置 Hook 实现 merge push 之后自动部署, Master 也应该这样不该手动部署,因为每次 Master 的合并都应该是经过测试的,如果不放心还可以加一个 pre 环境使用线上数据库。

好处是不用每个人自己配置环境,而且来新人也不用教配置环境啥的。然后 fab dev 的时候直接本地 rsync 就可以了,不用每次改代码 commit
tabris17
2015-10-20 12:57:56 +08:00
环境的一致性和代码的一致性

前者,开发环境可以用 vagrant 。
后者,用 git 分支管理
virusdefender
2015-10-20 12:59:37 +08:00
简单的服务和工具就本地装一个

依赖复杂的,安装麻烦的就用 docker
Hipponensis
2015-10-20 13:05:07 +08:00
关注一下,目前觉得每人一套开发环境好点,但不知道团队规模大了之后会如何……
fy
2015-10-20 14:04:13 +08:00
以前就是这么搞的,每人一个账户,连上开发服务器进行开发, tmux+vim 写代码。

现在可能 docker 更好一些吧?
chinajik
2015-10-20 14:21:29 +08:00
jenkins+docker
skydiver
2015-10-20 14:24:49 +08:00
围城……
我们现在用的就是大家一个机器,结果大家还希望用自己的机器开发呢。。
pkking
2015-10-20 18:09:42 +08:00
docker 就是为此而生

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

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

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

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

© 2021 V2EX