zoukankan      html  css  js  c++  java
  • 从运维角度来说如何实现多分支测试

    多分枝测试需求

    随着业务和需求的增长,需要研发进行并行开发,如何保证功能之间不受影响,防止研发打架。如何保证大家代码不被覆盖,如何保证上线的功能就是上线的代码。这需要从代码管理方面来进行考虑,当然推行git是基本。
    1.功能开发时使用功能分支,抛弃都提交到develop分支的方式,单独拉取一个分支进行开发,保证开发的时候只涉及当前功能;
    2.权限管控:下掉开发master权限,只保留开发权限;
    3.上线的时候通过代码合并的方式将功能代码提交到master,合并通过cmdb平台自动完成。

    会带来的问题

    当开发功能从develop到功能分支,不可避免的会遇到合并代码时候的冲突问题,这个需要在合并的时候研发进行相应的处理,解决冲突。

    多分枝测试的实现

    为什么要做多分枝讲了,那么如何实现呢?
    多分枝不可避免就是服务器上需要跑多套环境,多套不可避免会造成资源冲突,比如端口/pid文件等,还有可能造成管理混乱(多个版本都在跑,回收或手动操作的时候不知道删哪个)。如何规避这些问题,我们选择了kubernetes来解决这些问题。
    实现思路为:
    1.默认的测试环境,代码全部从develop拉取,也可以查看当前develop分支的代码是否都正常运行;
    2.分支环境,从功能分支进行拉取,非功能分支的都从默认环境获取;
    3.分支环境的代码和develop的代码通过对ingress的编排实现,我们选用的时helm的charts进行实现的。

    以上基本就能实现资源的发布。
    那么资源的删除呢,也是需要通过helm来实现。在ingress中把功能分支的service更换成默认的service即可。

    会带来的问题

    多分枝测试避免了研发之间代码的相互覆盖(合并有冲突会提醒,只有解决了冲突之后才能完成合并,在此之前研发能够相互进行沟通,避免覆盖的发生),但是任何事情都有利有弊。
    下面简单说说弊端:
    1.需要程序进行适配:由于多分枝是通过不同域名进行实现的,需要给程序制定一个规则,让其访问对应域名下的程序;
    2.需要对dns进行泛解析,如果放到公网会带来一些安全问题。
    edit by cherrydot

  • 相关阅读:
    飞思卡尔IMX6处理器的GPIO配置方式
    批处理清除VisualStudio解决方案文件夹
    总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
    详解Linux2.6内核中基于platform机制的驱动模型 (经典)
    [驱动注册]platform_driver_register()与platform_device_register()
    机器人系统常用仿真软件介绍效果与评价指标
    WINCE的批处理
    项目开发中的人月及如何计算
    常用的六个富文本编辑器
    如何获取公众号里面的歌曲
  • 原文地址:https://www.cnblogs.com/chrrydot/p/11582956.html
Copyright © 2011-2022 走看看