首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

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

  •  
  •   payton93 · 139 天前 · 1039 次点击
    这是一个创建于 139 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

    反正这一整套 feature 下来,估计你也升职了,我一个 SDE1 就不多嘴了
        13
    payton93   54 天前
    @c4f36e5766583218 项目的 lib 目录下除开用 maven 的还有一部分是自己封装的 jar 包 这部分咋更新呢 老哥有遇到过这种问题么
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2781 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 14:13 · PVG 22:13 · LAX 06:13 · JFK 09:13
    ♥ Do have faith in what you're doing.