助力研发效能提升 下一代制品库的演进与优化 李威高级解决方案架构师 李威JFrog中国高级解决方案架构师,DevOps教练,GDevOps、TGO鲲鹏会金牌讲师。《软件研发效能权威指南》联合作者 曾就职于京东、烽火等互联网企业及传统企业,十余年一线开发及运维经验,带领团队从零到一实践DevOps转型。 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Content 目录 当前制品库的挑战与限制,对软件研发效能的影响 01 02下一代制品库的演进趋势 03 下一代制品库在面对未来交付场景的架构设计及性能优化 04成功案例与最佳实践 01 当前制品库的挑战与限制,对软件研发效能的影响 软件研发效能的定义 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 软件研发效能是指在软件开发过程中,团队或组织能够高效地完成项目目标的能力。它衡量了团队在给定时间、资源和需求下,交付高质量软件的能力。 goc++java ProductA_v1.3.2.warProductA_v1.3.3.warProductA_v1.3.4.warProductA_v1.3.5.warProductA_v1.4.2.warProductA_v1.4.3.warProductA_v1.4.4.warProductA_v1.4.5.war 测试ProductA_v1.3.2版本 ProductB_v1.3.2.warProductB_v1.3.3.warProductB_v1.3.4.warProductB_v1.3.5.warProductB_v1.4.2.warProductB_v1.4.3.warProductB_v1.4.4.warProductB_v1.4.5.war ProductC_v1.3.2.warProductC_v1.3.3.warProductC_v1.3.4.warProductC_v1.3.5.warProductC_v1.4.2.warProductC_v1.4.3.warProductC_v1.4.4.warProductC_v1.4.5.war 发布ProductA_v1.3.3版本 每人每天花费10分钟通过邮件等方式沟通制品版本信息,一年将会浪费42个工时 分布式团队及跨国团队此数据会成指数级上升 经常会因为获取到错误制品,导致发布事故,迭代延误,软件质量低下 iosjs 开发 这个版本单元测试通过了么 95%通过了 需要100%通过才能提测哦 那测试ProductA_v1.3.3版本 这个版本sonarqube扫出多少问题? 你去jenkins上看看测试 。。。。。。。。 测试全部通过了么 全部通过了 安全扫描过么 你去问安全同事 测试报告在什么地方 我发给你邮件 。。。。。。。。 运维 取包发布 制品信息黑盒的问题 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Coding Coding Testing Developer 花费大量时间查找Log4J的影响范围,浪费人力,干扰迭代进度 Testing Delay SecurityScan Release Testing Coding Friday-NextSunday Monday Tuesday-Wednesday ThursdayFriday 软件供应链安全对交付的影响 Log4j.jar有一个高危风险,所有团队需要清查 Securityadministrator Testing Coding 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Developer Fastjson.jar有个高危风险,需要在上线前修复 Delay 软件供应链安全对组织绩效的影响 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 •81%的受访者同意“我们正在努力监测来自公共来源的关于我们使用的软件及其第三方组件中可能存在的漏洞的信息”。 •56%的受访者同意:"我公司现有的软件安全流程拖累了我所从事的应用程序的开发过程"。 Google2022年DevOps加速状态报告表明:开发者普遍接受需要防范软件供应链的问题,但是近半数用户认为现有的安全流程及工具拖累了开发过程 现代软件交付的趋势 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 520M apps/servicesby2024 >60% 企业每天进行版本发布,甚至更快2025 >50% 新的基础设施将被部署在边缘节点/ 数据中心 80% 边缘节点/数据中心将运行k8s XXX Sources:IDC,PreparingfortheDigital-FirstEconomy:TheHyperscale,Hyperspeed,andHyperconnectedEnterprise,#DR2020_GS2_FG,March2020andIDCFutureScape:WorldwideDatacenter2020Predictions,#US44747919 02 下一代制品库的演进趋势 质量安全 质量可信 指开发过程中的代码质量、测试通过率、审批结果、合规性、所属人等。 安全可信 指开发过程中的代码安全风险、外部依赖安全风险、开源许可证合规性风险 建设下一代可信制品库的原则 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 没有统一管理,就无法治理。 单一可信源是企业内部单一的,合规地存放所有软件的仓库 包括war包,Docker镜像,zip包等,以及第三方开源组件或者商业软件的授权版本和软件物料清单(SBOM) 开发版本库 生产区 私有云服务器 制品库管理统一管理 制品库管理统一管理 漏洞扫描 晋级 公有云服务器 建设单一可信源 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 制品元数据收集与展示 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 通过元数据数据收集及展示保障软件质量可信、可靠 •统一展示DevOps工具链所有数据 •质量度量数据作为质量门禁,服务于CICD •作为提供制品晋级依据 •流式软件交付模式的基础 需求ID 测试结果 1.沟通成本 2.质量门禁 3.自动化部署 4.清理 元数据,制品的质量门禁 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 漏洞扫描 软件制品晋级,分成熟度管理制品 2023DevOps国际峰会暨BizDevOps企业峰会·北京站15 制品晋级 alpha-docker-dev-local alpha-docker-test-local alpha-docker-stage-local alpha-docker-prod-local CI Server 集成测试通过QA/QC审批通过 性能测试与可靠性验证通过 待发布 基于元数据的自动软件交付 开发测试阶段发布阶段 TeamA/A-1.0jar |-二方库 |-三方库 DEV制品库 项目测试环境 Dev流水线 系统测试流水线项目开发流水线 系统A 晋级 系统定 A时 系统投产流水线 系统A 发布流水线 Test流水线 投产制品库生产区 TeamC/C-1.0jar |-二方库 |-三方库unitTest=passedjiraID=101SIT=passeddeploy=true TeamA/A-1.0jar |-二方库 |-三方库unitTest=passedjiraID=101SIT=passeddeployed=true 基于元数据自动拉取最新待测试版本 晋级 投产制品库开发区 TeamA/A-1.0jar |-二方库 |-三方库 unitTest=passedjiraID=101SIT=passed TeamC/C-1.0jar |-二方库 |-三方库 unitTest=passed jiraID=101 SIT=passed 项目测试环境 SIT测试制品库 TeamC/C-1.0jar |-二方库|-三方库 unitTest=passedjiraID=101 TeamA/A-1.0jar |-二方库|-三方库 unitTest=passedjiraID=101 基于元数据智能拉取 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 生产环境 发布制品自动筛选 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 XRAYPLUGIN IDE插件 准入审批 PublicRepos 依赖解析-仓库策略与解析顺序 安全访问 SBOM 公有云 混合云/私有云 云区域 SBOM ARTIFACTORY CONNECT XRAY DISTRIBUTION 发布单元扫描 代码依赖扫描 package .json </> >gitcommit 制品扫描 流水线/仓库扫描 Edge边缘 IoT设备 发布包扫描 构建安全门襟,制品晋级 持续安全 准入开发投产 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 PIPELINES 流水线签名 GitRepo 安全左移 IDE左移 修复建议 风险通知 IntelliJIdeaVSCodeEclipseVisualStudio 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 正反向依赖收集 正反向依赖 单一可信源 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 风险阻断 组件防火墙 阻断策略 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 上下文分析 o它有什么作用? 发现应用程序漏洞的可利用性 根据安全专家的建议进行补救 识别可访问的路径、适用的配置…… 支持容器制品中进行扫描 o它为什么如此重要? 帮助开发人员专注于修复可利用的漏洞 提高修复效率,消除无用功 ~50% 超高危漏洞被证实是对应用程序无影响的 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 03 下一代制品库在面对未来交付场景的架构设计及性能优化 下一代制品库部署架构 全技术栈统一UI 支持横向扩容,轻易应对万人规模 Ssdcache Ssdcache Ssdcache 全技术栈统一制品仓库热文件缓存 解决NFS读写速度慢的问题原生高可用集群部署方案 E+支持S3协议下载重定向 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 异步写,数据未写入NFS之前就可以在集群间共享 PG集群 Nas/S3 基于checksum的去重存储,节省存储空间40% 1.多地之间同步 •实时、定时 •推送、拉取 •不重复同步 2.逻辑打包多种文件分发 •增量分发 •大文件分片传输 •多线程分发 3.P2P下载 •任何二进制文件 •Docker镜像 •K8Sworkernode集群 现代软件交付的趋势 2023DevOps国际峰会暨BizDevOps企业峰会·北京站25 高并发场景下,支持p2p下载加速 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 混合云/多云制品库部署架构 DataCenterProd-mvn-localdev-mvn-local FederatedRepositories AWSSaaS Prod-mvn-local deploy onAws MysqlS3 DataCenter2 Prod-mvn-local DataCenter3 Prod-mvn-local Private Public DeveloperPipeline Deploy DeployonAws Softwaredownload 202