00:03
大家好,我是腾军统来自腾讯云coding团队的解决方案架构师,今天我给大家分享的内容,师制品管理的应用实践指南以及基于Co产品的实现与操作演示。今天的课程呢,会分为以下几个部分,再简单介绍制品库的基础知识之后,我们会分析制品管理都有哪些痛点,然后会介绍所提供的制品管理解决方案是如何帮助企业有效解决这些痛点的。接着再给大家讲解我们所总结的制品管理方面的最佳实践。最后一部分是使用coding制品管理进行场景化实操演示。制品库这个词可能有些同学会比较陌生,那它是什么呢?首先我们要理解什么是制品。制品是指由源码编译打包生成的二进制文件,不同的开发语言对应着不同格式的二进制文件,这些文件通常可以直接运行在对应服务端环境上,而制品库则是用来统一管理不同格式软件制品的仓库。除了基本的存储功能,制品库还提供了版本控制、访问控制、安全扫描、依赖分析等重要功能,是现代企业处理软件开发过程中产生的所有型的方式。关于品,一个叫泽的件工程师这样一句名manfacturing warehouse same发等同于。
01:47
还有仓库。接下来我们来思考一个问题,我们为什么需要制品库呢?首先,在软件开发的整个生命周期中,制品库是连接上下游的重要工具。借助制品库,可以将企业内部所有研发构建产物和第三方开源组件进行统一管理,从而保证所有制品来源可信,建立企业唯一可信源。通过添加软件开发生命周期中的关键源数据,也可以大大增强问题的可追溯性。除此之外,通过对软件制品进行统一管理,我们可以集中解决多项目资源权限管理问题,实现项目级制品自制管理。那么可能有同学会问,我们是否可以使用像gift这样的源代码版本控制系统来管理软件制品呢?在回答这个问题之前,我们先来看看源代码版本控制系统和制品管理系统的一些区别。首先,V。
02:49
S主要是用于存储源代码的,源代码的内容属于文本内容,其不同版本之间的内容是可以进行对比的,同一个文件的不同版本主要是通过其文件内容来进行区分,而制品管理系统主要用于存储软件制品,软件制品的内容主于二进制内容,其不同版本之间的内容是不可对比的,同一个制品的不同版本主要是通过其文件名称来进行区分的。除此之外,在de off模式下,每当有新的代码提交时,可以设置自动触发持续集成流水线,而每当有新的制品上传到制品仓库时,可以设置自动处放持续部署流水线。由此可见,代码仓库和制品仓库有着明显不同的职责,因为两者的使用场景存在着较大的差异,因此两者的功能也会大相迳庭。综上所述,管理软件视频需要有专门的工具与系统。
03:49
接下来我们来看看传统模式下在管理制品的过程中都有哪些挑战和痛点。从我们对客户进行的一些访谈中了解到,企业在进行制品管理的过程中普遍面临着以下的一些痛点,第一,版本混乱。制品缺少统一的版本管理机制,测试人员经常下版本费时,而且还经常出现制品盖现象,最终导致发布失败。第二,制品存储量大。对于大企业而言,制品可以达到PB级别,管理分散,浪费存储,并且数据量在成倍增长,由于没有合理的制品清理机制,导致过多无效存储,造成资源浪费。第三,制品下载缓慢。某些大型项目的单个视频可能达到100GB,下载时经常出现丢包、中断等现象,用户体验极差,浪费时间。第四。
04:49
制品安全漏洞频发。大多数研发团队对于漏洞扫描的认知还只停留在代码扫描层面,丝毫没有意识到制品扫描的重要性。由于缺少对二进制文件的安全扫描,导致线下安全事故频发,为企业造成了巨大的损失。第五,开发语言种类多,工具零散,缺少统一管理平台。许多团队仍然使用FTB或者SBN来管理软件,制品管理力度相对较粗,也有部分团队开始使用或者等工具来管理制品。但是团队内部搭建的制品库往往是单点的,无法保证系统的高可用性,一旦制品仓库出现问题,所有构建和发布流程都将受到影响。此外,因为没有统一的制品库,同一个企业内部的不同团队之间存在重复建设的问题,维护成本极高。第六,不同模块相互。
05:49
色列缺少自动化的构建和发布流程。自建的制品管理系统的一大缺点就是它与其他功能模块之间是相互割裂的,无法实现不同模块之间的信息打通,也难以实现自动化的构建和发布流程。
06:06
第七,缺少软件开发生命周期中的关键元数据,难以追溯问题。在使用自建制品管理系统的情况下,由于不同功能模块之间相互割裂,因此软件开发生命周期中的许多元数据都很难采集,一旦制品出现问题,我们很难进行问题的追溯和问责。在了解完制品管理的一些常见痛点以后,我们一起来看看holding所提供的制品管理解决方案是如何帮助企业解决这些痛点的。我们先来看看coding的能力全景图,如上图所示,Coding是一站式的deal研发管理平台,涵盖了软件开发生命周期中的各个阶段。coding的制品管理功能模块支持11种常见的制品仓库类型,提供灵活的版本覆盖策略和精细化的权限管理。基于腾讯云CDN提供极速分发能力,Coding的制品仓库针对每种类型的仓库都提供了详尽的操作指引,帮助用户快速上手。除此之外,还提供了镜像加速功能,可以提高用户拉取依赖的速度,从而提高构建效率。
07:23
针对每个上传到coding制品仓库的制品,系统都会自动计算该制品哈希值。通过对比系统生产的哈希值和用户自己计算出来的哈希值,我们可以快速判断该制品在下载的过程中是否被篡改过。coding的制品仓库还支持灵活的版本管理策略,我们可以针对某个仓库或者某个包设置自定义的策略,从而保障制品的唯一性。借助coding制品仓库所提供的灵活的版本策略,我们的制品在开发、测试和生产之间的流转变得更加有趣。coding还提供了精细化的权限管控,我们可以统一配置所有制品仓库的权限,也可以针对指定制品仓库配置权限。此外,Coding还提供了审计功能,我们可以实时查看食品仓库相关的操作日志。
08:18
Coding还支持两部认证功能,用户登录时不光要输入账号、密码,还需要提供已经进行过绑定的两部认证APP上的临时验证码进行验证,从而保证企业的信息安全。借助coding所提供的surface book功能,我们可以接近制品和制品仓库相关的变更事件,并实时推送这些变更通知到相关的企业微信群,让相关的责任人可以快速处理问题,缩短反馈周期。我们还可以根据实际需要对这些变更事件进行过滤,从而精准接听所关注的变更事件。Coding还提供了丰富的open API,用户可以很方便的将coding与第三方应用进行集成,或者对coding的功能进行扩展。在安全管控方面,扣定的制品仓库提供了制品漏洞扫描功能,可以帮助用户尽早发现制品中可能存在的安全漏洞问题。
09:20
扣的视频扫描能力是由腾讯云的安全团队提供数据和技术支撑的。腾讯安全专业研究团队基于国内外开源漏洞库和自身安全问题研究,建立了专门的开源组件漏洞特征库,对开源漏洞信息进行了误报验证,与中文翻译同时提供修复优先级和修复建议,信息扫描准确性行业领先。腾讯安全专业运营团队负责漏洞信息日常运营,保证漏洞信息实时更新,提供动态风险等级。现在总结一下coding制品管理系统的一些优势,第一,不同于企业自建的dex平台,Coding提供的是一站式的de set box解决方案,Coding所提供的功能模块可以满足软件开发生命周期中从构想到部署的各个环节的所有需求。第二,依托于腾讯云CDN,我们可以实现制品的极速分发,提高用户下载制品的速度。第三,扣定的制品管理系统是开箱使用的,使用门槛很低。第四,支持多达11种仓库类型,涵盖所有主流的类型,用户只需要使用一套系统,无需维护多套系统,大大降低了用户的学习成本和维护系统的人力成本。
10:42
第五,Coding内置了由专业的安全团队所提供的制品漏洞扫描功能,可以帮助用户尽早发现制品中可能存在的漏洞问题,降低修复成本。第六,通过coding所提供的质量红线功能,用户可以轻松拦截那些有漏洞或者未经扫描的制品进入到生产环境,从而实现安全左移,提高软件系统的安全性。接下来,我们一起来看看制品管理方面的一些最佳实践。
11:14
第一条规范化制品仓库的名称右边是我们推荐的一类命名规则,根据这个规则,每个制品仓库的名称应该由四部分组成,第一部分是team,也就是团队的名称,比如,如果这个仓库是专攻平台组使用的,那么我们就可以将第一部分设置为platform,第二部分是,也就是我们所用到的技术,比如,如果这个库是专门用于类型的制品的,那么我们就可以将第二部分设置为,第三部分是maurity,也就是制品的度,或者说前个如开发,我们可部分置,第四部分是locate,顾名思义,这个部分主要是用于标识这个制品仓库所在的位置了。比如,如果这个制品仓库主要用于。
12:14
存本地生成的制品,那么我们就可以将第四部分设置为相反,如果这个制品仓库主要用于缓存远程制品仓库的制品,那么我们就可以将第四部分设置为remote。第二条最佳时间是规范化制品的版本号关于版本号的设定,一个比较好的实践是语义化版本规则如下,版本格式由主版本号、次版本号、修订号组成。版本号递增规则如下,主版本号代表做不兼容的API修改,次版本号代表当你做了向下兼容的功能性新增,修订号代表你做了向下兼容的问题修正。先行版本号及版本编译信息可以加到主版本号、次版本号、修订号的后面作为衍生。第三条最佳实践,定期清理未使用的制品定期清理未使用。
13:14
的制品可以为我们带来很多好处,比如通过删除无用的制品,可以减少制品数量,从而缩短进行制品全量安全扫描的时间。第四,持续扫描制品漏洞安全问题。由于漏洞特征库每天都在更新,之前没有发现的漏洞可能在某一天就突然出现,因此需要对制品仓库中的制品进行定期的扫描,从而及时发现漏洞。第五,开启制品缓存功能,避免重复拉取相同的制品。通过开启视频缓存功能,可以直接使用已经缓存到coding制品仓库中的制品,而不是每次都去远端服务器去拉取相关的视频,从而节省拉取依赖的时间,提高构建的效率。
14:03
第六,在持续集成环节收集并记录该制品关键元数据。众所周知,在DEMO模式下,软件制品都是通过持续集成流水线构建而成的,因此通过收集相关构建流水线的关键信息,比如触发这次构建的代提交记录代码变更所在分支这条流水线所对应的环境的,我们就能快速的追溯到这个制品是由哪个开发人员所提交的代码所构建而成的。第七,设置质量红线,禁止下载有漏洞和未经扫描的制品。借助coding制品管理模块所提供的质量红线功能,可以禁止开发人员去下载那些有漏洞或者未经扫描的视频,这就等同于设立了一个视频准入与准出机制。最后,我们让解决方案架构师钟启工给大家进行coding制品管理的场景化实操演示。
我来说两句