我是版本控制和部署环境的新手,我对此事的了解已经停止:如何部署如果开发人员无法在同一台本地计算机上工作并且被迫始终在远程服务器上工作,那么环境是否有效?
如何根据最佳做法设置部署环境的流程?
对于此示例,我考虑了三种部署环境:开发,暂存和生产;和三个存储环境:本地,存储库服务器和最终服务器。
这是我提出的流程图,但我不知道它是否正确或如何正确实施它:
PS。我以为服务器上的暂存测试可以通过登录或ip检查限制访问,以防你想知道。
答案 0 :(得分:4)
我可以给你(根据我的经验)一个良好而直接的做法,这不是唯一的方法,因为没有关于如何处理所有项目的独特标准:
使用分布式版本控制系统(如git / github):
当地发展:
master
分支的分支shared folder
,因此,您将使用您喜欢的编辑器在主机操作系统上编写源代码,同时此代码存在并在你的虚拟机内运行,是不是真的太棒了!!python
我还强烈建议您使用虚拟环境(如virtualenv或anaconda)来隔离和管理内部依赖关系fabric
)远程服务器:
部署流程:Local-Repo-Remote服务器,它是如何工作的?:
fabric
转发的用户代理)部署:
5.1如果要将功能部分部署到测试或暂存:
ssh
访问服务器,然后cd
访问项目文件夹(手动或通过autamtion脚本从repo克隆)git checkout <the branch used>
git pull origin <the branch used>
5.2如果要部署到生产部门:
pull request
并在拉取请求得到经理验证并与master
分支合并ssh
访问服务器,然后cd
访问项目文件夹(手动或通过自动化脚本从repo克隆)git checkout master
#不需要因为它应该永远在主人身上git pull origin master
这是一种简化的方法,还有一堆其他推荐的和最好的prectice工具和任务。