8

我对版本控制部署环境有点新了,而且我已经停止了对此事的了解:如果开发人员无法在同一台本地计算机上工作,那么部署环境如何工作以及被迫总是在远程服务器上工作远程服务器上的部署如何工作?

根据最佳实践应该如何设置部署环境的流程

在这个例子中我考虑了三种部署环境:发展分期生产;和三种存储环境:本地,存储库服务器和最终服务器

这是流程图,我想出了,但我不知道,如果它是正确的还是如何正确实现它:

deployment version control flow chart

PS。我想在服务器上的临时测试可能通过登录或IP检查限制访问,以防万一您想知道。

回答

4

我可以给你(根据我的经验)的好和straightforwarfd做法,因为没有对如何在所有项目上工作的唯一标准,这是不是唯一的方法:

  • 使用分布式版本控制系统(如Git/github上):

    • 拨打私人/公共仓库来处理你的项目
  • 地方发展:

    • 开发者科恩从回购该项目,并作出贡献,建议在分支上每一个工作,并创建一个新的分支为每个新功能
    • 在你的团队里是一个负责任的合并已准备好与master分支
    • 我强烈建议开发过程中在虚拟机上工作的分支:
      • 从主机中分离的开发环境和处理依赖
      • 为了有一个虚拟机同文到远程生产服务器
      • 容易复位,删除,复制
      • ...
      • 我建议使用VirtualBox为VM提供者和Vagrant用于配置
      • 我建议你的项目文件夹是你的主机和您的虚拟机之间的shared folder,这样,你会使用你的编辑器写上你的主机操作系统源代码爱,同时这个代码存在并运行在虚拟机内部,这不是那么棒!
    • 如果您正在使用python工作,我也强烈建议使用虚拟环境(如virtualenvanaconda)来隔离和管理内部的依赖
    • 然后写一些源代码之后每个开发人员,他可以承诺并推动他改变到库
    • 我建议使用项目的自动化安装工具如(fabric/fabtools为Python):
      • 制作一个脚本或东西,与点击或一些命令,重现了项目所需的所有环境和所有依赖项以及所有需要运行的东西,因此所有开发人员后端,前端,设计人员......不管他们的知识和他们的主机类型如何都可以让项目运行。我也建议对远程服务器执行相同的操作,无论是手动还是使用像(fabric/fabtools)这样的工具 该脚本将主要安装操作系统依赖项,然后是项目依赖项,然后克隆Virsion控件中的项目回购,你需要给远程服务器(测试,分期和生产)访问存储库:添加的每个服务器的SSH公钥到您的版本控制系统的按键(或use agent forwarding withfabric
  • 远程服务器:

    • 您将需要至少一个生产服务器,使您的项目访问
    • 建议你也有一个测试和应用服务器上的最终用户(我想你知道每个人的目的)
  • 部署流程:本地回购的远程服务器上,它是如何工作的?

    1. 给远程服务器(测试,分期和生产)访问存储库:添加的每个服务器的SSH公共密钥在密钥您的版本控制系统(或用户代理转发fabric
    2. 开发人员编写了机器
    3. 最终写入了他的代码,测试,并在本地运行它们(和测试服务器上)
    4. 的devloper提交和推手他的代码,以他使用到远程存储库
    5. 分支上的代码
    6. 部署:

      5。1如果你想部署一个特性分支测试或分期:

      • ssh访问服务器,然后cd到项目文件夹(从回购克隆手动或autamtion脚本)
      • git checkout <the branch used>
      • git pull origin <the branch used>

      5.2如果你想部署到生产环境:

      • 做一个pull request和拉请求被由经理验证,并用master分支
      • ssh访问服务器合并,然后cd到项目文件夹(从回购手动或自动化脚本克隆)
      • git checkout master#后不需要堂妹它应该永远是主
      • git pull origin master
        • 我建议写像布/ fabtools或使用工具,如Jenkins一个脚本来自动部署TA SK。 Voilà!部署完成!

氏有点简单化的做法,还有一堆其他的建议和最佳prectice工具和任务。

相关问题