• 请不要在回答技术问题时复制粘贴 AI 生成的内容
itechnology
V2EX  ›  程序员

怎么随时分辨出哪个是预生产环境,哪个是生产环境呢?

  •  
  •   itechnology · Dec 1, 2022 · 6493 views
    This topic created in 1435 days ago, the information mentioned may be changed or developed.

    事情是这样的。公司目前有 A 和 B 两套生产环境,平时只用其中一套,另一套作为预生产环境,每次上线后轮换。

    举个例子,当前生产是 A 环境,那么 B 环境就是预生产,12 月中旬需要上线,那这个时候会把代码先上线到预生产环境,也就是 B 环境,等预生产确定没问题之后,运维会把流量切到预生产,也就是 B 环境,这个时候 B 环境就是生产环境,A 环境就变成了预生产……如此循环。

    现在的问题是,因为 A 和 B 两个环境经常轮换,导致开发人员经常搞不清楚哪个是生成环境,哪个是预生产环境。

    请问有没有什么好的办法可以快速区分?

    目前运维想的办法是每次上线之后把堡垒机的备注改一下。

    Supplement 1  ·  Dec 1, 2022
    目前很操蛋的是,每次线上出了问题,想登录堡垒机到对应的服务器看日志,必须要先问运维现在的生产是哪几台服务器。
    33 replies  •  2022-12-02 10:55:23 +08:00
    singerll
    singerll
    Dec 1, 2022❤️2
    1
    生产环境不允许开发直接访问,有特殊情况提申请。
    EmptyDX
    EmptyDX
    Dec 1, 2022
    2
    测试环境加个显眼的背景色区分
    chengran630
    chengran630
    Dec 1, 2022
    4
    生产环境的 apache 给个特殊的标记
    xuanbg
    xuanbg
    Dec 1, 2022
    5
    让运维给一个动态的入口就行了呀,访问的流量切到生产,发布 /测试的网络流量也是流量啊,一样可以切到预生产。这样你们只要使用特点的入口就行了。
    hayhong123
    hayhong123
    Dec 1, 2022
    6
    可以在登陆或者首页接口里 塞入一个环境的 ENV cookie 后端通过 AB 环境不同的配置文件去取 ENV 信息 这样访问就知道在哪个环境了
    rekulas
    rekulas
    Dec 1, 2022
    7
    感觉这种发布机制有问题,a,b + dev 环境是不是好点,dev 开发环境,b 预生产,a 生产不允许直接访问
    dev 测试完毕更新到 b ,打一部分流量过来没问题自动同步环境到 a ,流量全部切回 a ,这样还可以灰度测试也不会冲突
    everyx
    everyx
    Dec 1, 2022
    8
    好奇这种情况,如何涉及到数据库的修改怎么在两种环境下同步数据的,能否分享一下?
    yogogo
    yogogo
    Dec 1, 2022❤️1
    9
    不是应该每次更新迭代完,两个都生产环境了吗?每次版本更新的时候,每次默认 A 是用预生产测试
    WaldenHorizon
    WaldenHorizon
    Dec 1, 2022
    10
    好奇怪,也有同事跟我讲过类似的 AB 环境,但服务器资源会不会浪费一半呢?只有生产环境才有大流量。我理解的预生产应该是用于蓝绿发布的临时环境,发布成功后需要把原生产环境下线的
    adoal
    adoal
    Dec 1, 2022
    11
    A 和 B 的访问通过一层反代或者其它接入方式(比如浮动 IP )控制,用户和开发不直接连 A 和 B 。在接入控制层,生产环境总是固定为一组网络资源,预生产环境总是固定为另一组网络资源,往后端接入时,根据切换映射到不同的实际资源。

    类似某些主备数据库集群里常用的做法,A 有固定 IP 1 ,B 有固定 IP 2 ,两者一个是可读可写的主库,一个是只读的备库从主库同步数据过来。当现任主库挂了时从库提升,运维人员去修复主库。浮动 IP 3 永远飘到现任主库上,浮动 IP 4 永远飘到现任备库上,当主库降级修复时 3 和 4 都在新的主库上。这样,不论 A 和 B 角色怎么调整,应用程序要访问主库就用 IP 3 ,访问备库就用 IP 4 。当然你这个场景是切换整套业务系统,那可能需要自己写一些逻辑来在接入层控制。
    james2013
    james2013
    Dec 1, 2022
    12
    觉得这种切换逻辑总会出问题的
    正常来说,A 固定长期是生产环境,B 是预生产.在 B 环境没有问题,将流量切到 B,在 A 上线代码后,将流量重新切回到 A
    itechify
    itechify
    Dec 1, 2022 via Android
    13
    生产和预发布同一个库?
    opengps
    opengps
    Dec 1, 2022
    14
    就不应该用切流量的方式,测试一般是完全隔离,单独部署一套测试环境的域名等信息:单独的测试公众号,单独的测试网址,单独的测试环境等等
    zhouyg
    zhouyg
    Dec 1, 2022
    15
    不应该切服务器,应该把生产环境固化下来
    itechnology
    itechnology
    OP
    Dec 1, 2022
    16
    @rekulas 目前就是你说的这种模式。现在其实有四套环境,开发环境、测试环境、预生产环境和生产环境。

    开发环境是用于后端开发人员和前端开发人员联调用的;联调完没问题后更新到测试环境给测试测,测试测完没问题之后,更新到预生产环境,预生产测试没问题后切换为生产。
    itechnology
    itechnology
    OP
    Dec 1, 2022
    17
    @oneisall8955 不是同一个数据库,但是预生产的数据库是从生产数据库数据拉出来的一个临时库
    Jooooooooo
    Jooooooooo
    Dec 1, 2022
    18
    为啥是这种模式, 正常来讲预发不应该和线上轮换呀. 一般配置也不一样.
    itechnology
    itechnology
    OP
    Dec 1, 2022
    19
    @Jooooooooo 这个是领导定的方案,我们没法改变
    Yuesh1
    Yuesh1
    Dec 1, 2022
    20
    像 JVM 里面的 s1 和 s2 ,标记复制算法
    cctv6
    cctv6
    Dec 1, 2022
    21
    我们是在 http 请求头里面增加了一个字段,通过这个字段能识别出后端是什么环境。
    exonuclease
    exonuclease
    Dec 1, 2022
    22
    blue green 发布啊 很正常 不过一般来说 inactive 的会 scale down 的 我们是监控里面有个页面会显示两个 side 的流量 不太精致但是可以用
    q474818917
    q474818917
    Dec 1, 2022
    23
    你们领导是个人才,百年难得一遇的,贵公司应庆幸拥有此人。
    mrzhangrb
    mrzhangrb
    Dec 1, 2022
    24
    🐂
    fiypig
    fiypig
    Dec 1, 2022
    25
    区分开,搞那么麻烦 ,很容易搞出问题吧
    tang00337788
    tang00337788
    Dec 1, 2022
    26
    两套环境的访问地址不一样吧。搞个内部人员隐藏按钮,可以查看访问地址的。
    karott7
    karott7
    Dec 1, 2022
    27
    这么搞肯定出问题,长期下来有几个人能分得清?不都是固定环境么
    zbianbiaos
    zbianbiaos
    Dec 1, 2022
    28
    Linux 的 hostname
    sujin190
    sujin190
    Dec 1, 2022 via Android
    29
    所以不应该把日志自动汇总到统一的日志管理服务器么
    bjzhush
    bjzhush
    Dec 1, 2022
    30
    我之前的办法是不同的环境,zsh 采用不同的主题和颜色。
    你也可以试试,给线上环境加上红色主题,这样会比较容易让人认真对待
    securityCoding
    securityCoding
    Dec 2, 2022 via Android
    31
    这个发布流程是个人才
    itechnology
    itechnology
    OP
    Dec 2, 2022
    32
    @sujin190 目前还没有做,后续据说会考虑用 elk
    WhiteDragon96
    WhiteDragon96
    Dec 2, 2022
    33
    每次发布,写个发布日志
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5025 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 07:11 · PVG 15:11 · LAX 23:11 · JFK 02:11
    ♥ Do have faith in what you're doing.