公司开源软件、中间件版本管理跟进 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
payton93
V2EX    问与答

公司开源软件、中间件版本管理跟进

  •  
  •   payton93 2019-06-27 15:40:13 +08:00 2633 次点击
    这是一个创建于 2302 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近的工作,有感而发,想请教一下社区的大佬们:

    工作的公司目前通过人工收集整理各部门使用的开源软件、中间件及版本,然后通过邮件通知整改一些高危漏洞去推动版本升级,极其低效且不方便统筹管理。

    各位所在的公司都是如何管理并推动公司各部门使用的开源软件、中间件版本更新的呢?

    13 条回复    2019-09-20 09:09:05 +08:00
    c4f36e5766583218
        1
    c4f36e5766583218  
       2019-06-27 15:52:03 +08:00
    pom.xml?
    lazyfighter
        2
    lazyfighter  
       2019-06-27 18:49:33 +08:00
    你的职级不够
    payton93
        3
    payton93  
    OP
       2019-06-27 19:39:02 +08:00
    @lazyfighter 扎心了老哥 但这个事总得要做 还没有想到好的办法
    cnnblike
        4
    cnnblike  
       2019-06-27 20:14:25 +08:00 via iPad
    亚马逊有一整个 builder tools team 维护了一个内部的版本管理系统 依赖写在 config 文件里面,有个组会扫描依赖文件然后自动化发邮件的
    payton93
        5
    payton93  
    OP
       2019-06-27 20:41:54 +08:00
    @cnnblike 好的多谢多谢 我先去了解这个 看看有没有可操作性
    Takamine
        6
    Takamine  
       2019-06-27 23:25:56 +08:00
    自建公司内部的 RMS 系统,然后接入云管平台。
    300
        7
    300  
       2019-06-28 00:40:05 +08:00 via Android
    “这几个库版本已经更新到 xxx 了“
    ”你不要动,一下升级那么多版本,出问题怎么办?“
    ㄟ( , )ㄏ
    payton93
        8
    payton93  
    OP
       2019-06-28 10:51:43 +08:00
    @Takamine 多谢老哥!了解了下云管平台 挺符合这个需求的 你这边有推荐的产品么
    lazyfighter
        9
    lazyfighter  
       2019-06-28 11:35:31 +08:00
    @payton93 我一般收到的邮件,比如 nginx 暴露的 bug 会导致严重问题,排期 5 天解决,超一天抄送上级主管 m5,超两天 m6,抄三天 m7,超 4 天 m8
    Takamine
        10
    Takamine  
       2019-06-28 17:41:08 +08:00
    @payton93 我对具体外面的服务提供商也不清楚,可能要你自己去排雷了:doge:。
    cnnblike
        11
    cnnblike  
       2019-06-29 03:38:39 +08:00   1
    我建议这样子,用 k8s/docker 接管所有生产环境的构建流程,然后库之类的外部依赖统一走公司内部的 registry,不允许 override。
    build 过程中只能访问内部 registry 就可以避免用一些 hacky 的方式拿外部包、库的问题了。
    然后强制所有的库依赖都必须在 dependency.xml 或者 package.json 里面写明白。

    这样就直接避免了大部分问题。

    如果你们已经有内部的 CI/CD 的话,要做的就是 1.写几个包管理器的 wrapper 2.写几个包管理器的配置文件的解析,然后和你们内部的 email 系统 /工单匹配,pre-build 扫描,定期全局扫描,发现问题就发邮件。

    ^1. hijack 也好,包管理器 registry 设置也行,其实难度不高的。
    cnnblike
        12
    cnnblike  
       2019-06-29 03:49:47 +08:00   1
    通过设置内部 registry,我们可以更进一步,在导入开源库之前就对有污染性的开源协议进行评估,如何更好的利用开源产品。
    接下去,就是“ never-build-twice ”这个功能的开发,充分利用之前已有的 build 成果。

    然后你还可以进一步考虑,怎么进一步接管整个灰盒测试流程啊这种,比方说,只能在线上验证的代码,怎么自动划分一部分给 pre-Prod staging/baking,怎么做 One-Box baking,怎么 lock 住 stage 防止在高峰流量的时候部署?怎么管理运行时环境的环境变量?怎么用这个做服务端 shadowing(保证除了特定流量之外行为和原来完全一致)

    反正这一整套 feature 下来,估计你也升职了,我一个 SDE1 就不多嘴了
    payton93
        13
    payton93  
    OP
       2019-09-20 09:09:05 +08:00
    @c4f36e5766583218 项目的 lib 目录下除开用 maven 的还有一部分是自己封装的 jar 包 这部分咋更新呢 老哥有遇到过这种问题么
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1072 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:13 PVG 07:13 LAX 16:13 JFK 19:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86