查看其它 1 个回答liwei1567的回答

liwei1567liwei1567解决方案架构师JFrog

1,    什么是软件元数据

元数据(Metadata)是用来描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

软件元数据顾名思义,就是用来描述软件位置、历史记录、属性的数据,同时我们可以通过软件元数据来快速过滤查找软件。

如今的软件发展中,每个软件的产生都需要经历完整的软件生命周期,从需求的诞生,到编写的代码、代码的质量检查、编译的过程、测试的结果、安全的验收、软件的发布与监控等。这些统一称之为软件的生命周期信息(SDLC,Software Development Life Cycle,软件生命周期,即软件的产生直到退市的生命周期,是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量)。为了将软件生命周期更好的收集和记录,我们用到了元数据的方式,将软件与生命周期属性做关联。

 

2,    为什么要收集元数据

 

首先,我们了解一个概念, SBOM。SBOM(Software Bill of Materials)即软件物料清单,软件供应商通常通过组装开源和商业软件组件来创建产品。 SBOM 描述了产品中的组件。2021 年 5 月,美国白宫发布了一项指令,要求与联邦政府合作的软件供应商为其产品提供 SBOM,可见SBOM重要性。

SBOM 的常见元素包括:

l  应用程序引入或依赖的开源库。

l  应用程序使用的插件、扩展或其他附加组件。

l  开发人员内部编写的自定义源代码。

l  有关这些组件的版本质量、许可状态和补丁状态的信息。

作为开发人员,应该努力在每个 SBOM 中包含尽可能多的元数据,是整个SDLC的数据可以被任何人轻易的查看,以快速的了解软件的质量及安全风险等。

       通常软件元数据就是软件完整的SDLC信息,包括但不限于需求、代码、质量、安全、状态等,用来标识软件的整体质量和安全的信息。我们使用元数据进行软件质量度量,软件质量门襟,制品晋级,制品可靠分发等操作,帮助我们更快更可靠的迭代软件产品。

另外大家经常在做DevOps建设的时候,经常发现开发和运维之间有一堵墙,这堵墙往往是由于信息传递阻塞,软件生命周期上游与下游之间信息无法对齐导致的。表现就是运维人员无法了解软件关联的特性、质量、安全,导致黑盒部署,如果出现生产故障,没办法快速定位影响范围、问题出处,久而久之就变成了部门之间的隔阂。究其原因,就是因为软件的元数据没有正确传递到下游。所以,软件元数据的重要性不言而喻。

 

 

3,    怎样收集元数据

由于整个软件交付的流程最终的价值流需要使用软件制品去流转,制品也是软件价值的载体,同时为了打破部门墙,让信息传递通畅,目前业界最佳元数据管理实践为以制品为中心,对软件生命周期元数据完成收集。

通过继续集成流水线及审批流,收集所有过程中的元数据信息,与制品库集成。

关联到每个制品都存在必要的元数据,确保软件安全可靠

 

4,    收集元数据后怎么用

JFrog Artifactory具备完针的元数据记录及查询机制,并可自定义元数据的键值对,帮助技术团队加速迭代,保证软件质量及安全。用户可通过JFrog Artifactory的元数据及AQL(包查询语言)功能,确保每个制品均具备10条以上的质量数据标签,实现开发与测试之间零沟通,使版本具备自动化筛选能力,避免下错版本,浪费时间。

具体实现为,开发团队构建制品版本,并将过程数据、需求数据、测试数据、匹配机型数据等自动补全在制品的元数据属性中,如未携带此数据,则无法成功上传。测试人员在使用制品进行烧机测试时,则通过自动化脚本,自动筛选符合自己机型并具备一定质量属性的制品,自动测试,整个版本筛选过程无需人与人的沟通,一切自动化完成,提高效率,避免出错。

      

基于元数据的制品晋级:

l  使用元数据收集有关生命周期和质量的信息

l  使用元数据和 AQL 查找正确的二进制文件

l  使用元数据提升二进制

 

 

互联网服务 · 2021-11-17
浏览1288

回答者

liwei1567
解决方案架构师JFrog
擅长领域: 云计算制品库系统运维

liwei1567 最近回答过的问题

回答状态

  • 发布时间:2021-11-17
  • 关注会员:3 人
  • 回答浏览:1288
  • X社区推广