我对 有点陌生版本控制 和 部署环境我对这件事的了解已经停止:如果开发人员不能在同一台本地机器上工作并且被迫总是在 上工作,那么部署环境如何工作?远程服务器 ?
应该怎么做流量的部署环境是根据最佳实践设置的?
对于这个例子,我考虑了三个部署环境:发展 , 分期 和 生产 ;和三个存储环境:本地 , 存储库 服务器和最终 服务器 .
这是我想出的流程图,但我不知道它是否正确或如何正确实现它:
附注。我认为服务器上的暂存测试可能会通过登录或 ip 检查来限制访问,以防万一。
最佳答案
我可以给你(根据我的经验)一个好的和直接的实践,这不是唯一的方法,因为没有关于如何处理所有项目的唯一标准:
master
合并。分公司shared folder
在您的主机和您的 VM 之间,因此,您将使用您喜欢的编辑器在您的主机操作系统上编写您的源代码,同时这些代码存在并在您的 VM 中运行,是不是非常棒?! python
我还强烈建议使用虚拟环境(如 virtualenv 或 anaconda )来隔离和管理内部依赖项 该脚本将主要安装操作系统依赖项,然后是项目依赖项,然后从您的版本控制中克隆项目存储库,为此,您需要授予远程服务器(测试、登台和生产)访问存储库的权限:添加 ssh public每个服务器的 key 到版本控制系统中的 key (或 use agent forwarding with
fabric
)fabric
)5.1 如果您想将功能分支部署到测试或暂存:
ssh
访问服务器然后cd
到项目文件夹(手动或通过自动化脚本从 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
瞧!部署完成!
这是一个稍微简化的方法,还有很多其他推荐的和最佳实践的工具和任务。
关于web - 远程服务器上的部署如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43278477/