【干货整理】一文读懂制品库
分类:博云动态 发布时间:2024/5/14 17:14:05

引子:从金融行业技术栈加强管理说开去


近年来,金融行业安全运行的重要性越来越受重视,相关单位多次发文,倡导确保金融安全稳定运行,全面提升金融发展环境和软实力。在微服务架构下,技术栈的使用管理变得尤为关键。为确保信息系统的稳定和安全,金融机构需要建立完善的技术栈管理体系,其中包括对制品库的管理。

制品库微服务架构中扮演着重要角色,它是集中存储和管理软件开发过程中产生的各种制品的平台,包括源代码、编译后的二进制文件、依赖库等。制品库的有效管理对于保障系统的稳定性和安全性至关重要。

在技术栈管理中,制品库起到了关键作用。首先,制品库为团队提供了统一的存储和版本控制平台,确保团队成员可以方便地共享和获取所需的制品。其次,通过制品库,团队可以有效管理和追踪制品的版本变化,避免因版本混乱而引发的问题。此外,制品库还能够帮助团队管理项目依赖关系,确保项目依赖的组件和库的可用性和一致性。

因此,建立健全的制品库管理流程是确保信息系统安全运行的重要一环。金融机构应当制定制品库的使用规范,明确制品的上传、下载、更新和版本控制等流程,同时加强对制品库的权限管理,确保只有经过审批的人员才能进行关键制品的操作。此外,要定期对制品库进行清理和整理,清除过期或不再使用的制品,保持制品库的整洁和高效。



制品库介绍


制品库是一个集中存储和管理软件开发过程中产生的各种制品的平台。这些制品包括但不限于源代码、编译后的二进制文件、依赖库、配置文件、文档等。制品库的主要作用是提供一个统一的存储和版本控制平台,方便团队成员共享、获取和管理所需的制品。


制品


制品是指由源代码编译打包生成的二进制文件,不同的开发语言对应着不同格式的二进制文件。这些二进制文件通常用于运行在服务器上或者作为编译依赖。制品的管理是配置管理的重要组成部分。

制品通常包括各种文件的存档,例如:类文件中的Java字节码、C对象文件、文本文件、二进制文件等。这些文件可以以多种格式存储,例如Java JAR,WAR,EAR格式;普通ZIP或.tar.gz文件;其他软件包格式,例如NuGet软件包,Ruby gems,NPM软件包;可执行文件格式,例如.exe 或.sh 文件,Android APK文件,各种安装程序格式等。

图片


制品分类


按使用场景分

1. 外部引入的第三方组件

2. 产品内部依赖包,公共SDK

3. 产品交付安装包

图片

按照开发语言分

· Generic File 指的是通用文件类型的制品。

· Docker

· Maven

· npm

· PyPI

· Helm

· Composer

· NuGet

· Conan

图片



制品管理的规范


在针对制品管理时,我们应该遵循以下的规范:


制定清晰的命名规范

制品库的命名规范应当清晰明了,易于理解和识别。可以采用一致的命名约定,包括对仓库、包和版本的命名。例如,命名可以包含项目名称、制品类型、版本号等信息,以便团队成员快速定位和识别所需的制品。

图片


版本号规范化

制品的版本号应当遵循一定的规范,有助于团队成员理解版本之间的变化和差异。常见的版本号规范包括语义化版本规范(Semantic Versioning),即主版本号.次版本号.修订版本号格式,以及可能的预发布版本和元数据版本等。通过规范化的版本号,可以更好地管理制品的迭代更新和发布流程。


图片


1、语义化版本规范(Semantic Versioning,SemVer):

这是一种广泛采用的版本号规范,格式为主版本号.次版本号.修订版本号。具体规则如下:

主版本号(Major):当进行不兼容的 API 变动时,增加主版本号。

次版本号(Minor):当增加新功能,但保持向下兼容时,增加次版本号。

修订版本号(Patch):当进行向下兼容的 bug 修复时,增加修订版本号。


2、预发布版本和元数据版本:

在SemVer规范中,还可以包含预发布版本号和元数据版本号。预发布版本号用于标识尚未正式发布的预览版本,而元数据版本号用于在版本号之后添加额外的信息,例如构建号或提交哈希值等。


3、遵循一致的发布流程:

制定一致的发布流程,包括版本号的分配、测试、打标签和发布等步骤。确保团队成员了解并遵循这些流程,以保证版本号的一致性和可靠性。


权限管理与团队协作

 制品库的权限管理是确保信息安全和团队协作的重要环节。根据团队成员的角色和职责,设置不同的权限级别,例如只读权限、读写权限等。同时,建立清晰的团队协作机制,促进团队成员之间的沟通和协作,确保制品库的有效管理和利用。


图片


1、角色和权限定义:

根据团队成员的角色和职责,定义不同的权限级别。例如,制品库管理员可能需要完全的读写权限,而普通团队成员可能只需要读取权限。确保权限设置符合最小权限原则,即每个成员只拥有完成工作所需的最低权限。

2、权限控制:

利用制品库提供的权限控制功能,确保只有授权的人员能够访问和操作相关制品。定期审查和更新权限设置,以适应团队成员的变动和制品库的需求变化。

3、清晰的团队协作机制:

建立清晰的团队协作机制,包括沟通渠道、工作流程和责任分工等方面。确保团队成员了解彼此的工作进展和需求,协调工作计划并共同解决问题


持续集成与持续交付

制品库与持续集成/持续交付(CI/CD)流程紧密结合,有助于提高开发效率和交付速度。通过自动化构建、测试和部署流程,及时发布和更新制品,确保团队的开发工作顺利进行,并降低人为错误和手动操作带来的风险。

图片

1、自动化构建和测试:

将制品库与CI/CD流程集成,可以自动触发构建和测试过程,确保代码变更能够快速地进行编译、测试和验证。

2、快速发布和更新:

通过自动化部署流程,可以将经过测试的制品快速部署到生产环境,实现快速发布和更新,缩短交付周期。

3、减少人为错误:

自动化构建、测试和部署流程可以减少人为错误的可能性,提高软件质量和稳定性。

4、降低风险:

自动化流程可以降低手动操作带来的风险,确保每一次发布都是可重复、可靠的,减少潜在的故障点。

5、增强团队协作:

CI/CD流程的自动化可以增强团队成员之间的协作,使他们更加专注于编写代码和解决问题,而不是花费时间在手动构建和部署上。

6、提高开发效率:

自动化流程能够节省开发人员的时间和精力,提高开发效率,使团队能够更快地交付功能和解决问题。



监控与审计

建立制品库的监控与审计机制,定期检查制品库的运行状态和数据完整性,及时发现和处理异常情况。

同时,记录和审计制品库的操作日志,追踪制品的变更历史和操作记录,确保制品的安全性和可追溯性。


图片


1、定期检查运行状态:

设置监控系统,定期检查制品库的运行状态,包括性能、可用性和运行状况等方面,及时发现潜在的问题。

2、数据完整性检查:

定期验证制品库中的数据完整性,可以通过比对备份数据或使用哈希算法等方法来实现。

3、异常检测与处理:

建立异常检测机制,监控制品库操作和数据访问的异常情况,一旦发现异常,及时采取措施处理,并调查根本原因。

4、操作日志记录:

记录所有对制品库的操作,包括谁、何时以及做了什么样的操作,确保操作的可追溯性。

5、变更历史追踪:

记录制品库中制品的变更历史,包括新增、修改和删除操作,以便追踪制品的变更过程。

6、审计制品库操作:

定期进行审计,检查操作日志和变更历史,确保制品库的操作符合规定和政策要求。

7、加强安全培训:

对制品库管理员和用户进行安全培训,加强他们对安全意识和操作规程的理解和遵守。



国产化制品库解决方案


由于制品管理的重要性,所以衍生出来对应的制品解决方案用来统一管理不同格式的软件制品,除了基本的存储功能,版本控制、访问控制、安全扫描、依赖分析等重要功能,最终建立“单一可信源”,是企业常见处理软件开发过程中产生的所有包类型的标准化方式。


博云牧品(folib)

博云牧品(Folib)是一个面向多语言制品包的管理仓库,专注于处理规模达到百亿级别的软件依赖包和元数据管理。


通过整合先进的软件组合分析(SCA)工具,结合全球开源安全漏洞库NVD以及国内安全漏洞库CNVD,为用户提供全方位的安全保障。

该平台支持实时枚举标识,能够识别每个依赖包的安全情况并进行CVE(通用漏洞及公告)分析。利用图数据库技术,实时处理依赖关系、准确定位安全范围并进行跟踪与告警。为企业的云原生技术转型和快速迭代提供有力支持,提供了元数据管理和多环境晋级同步分发的功能,为在复杂网络环境中实施DevOps落地提供安全和便利。


图片


制品库工具比较

由于制品管理在软件开发过程中的重要性不言而喻,因此衍生出相应的制品管理解决方案,用于统一管理不同格式的软件制品。除了基本的存储功能外,这些解决方案还提供了版本控制、访问控制、安全扫描、依赖分析等重要功能。通过这些功能的支持,企业能够建立起一个“单一可信源”,实现对所有包类型的标准化管理,从而提高软件交付的效率、质量和安全性,促进企业的DevOps实践。


(该列表可在博云公众号后台留言“姓名、公司、联系方式+制品库功能”索取)


可以看出Folib在多个方面展现出了更为全面、先进和灵活的特性:

支持更多种类的仓库管理

包括Docker、Helm、Debian、Gradle等;

功能上更加丰富

如支持实时物理删除镜像、OCI格式docker镜像、文件的正反向依赖关系等,这些功能提供了更高级别的管理和定制选项。

提供更全面的安全扫描和管理功能

包括漏洞扫描、安全扫描策略、漏洞影响性分析,以及更丰富的元数据管理和搜索功能。

此外,Folib还具有一些独特的特性,如文件的正反向依赖关系分析、仓库自定义存储路径等,这些特性为用户提供了更高级别的管理和控制。


综上所述,Folib作为一款国产自主研发的制品库产品,不仅在功能上与商业级工具不相上下,还提供了更灵活、更全面的解决方案,为企业的软件交付和DevOps实践提供了有力支持。在未来的发展中,Folib有望成为国内企业的首选制品库管理工具之一,并且其国产化的身份也使得其在国内市场具有更大的竞争优势。



关于博云

江苏博云科技股份有限公司(简称:博云)是国内云原生基础软件领域的创新领导者,是国家高新技术企业,国家级专精特新小巨人企业。


公司专注为企业级客户提供自主可控,以容器和云资源调度技术为基础的云操作系统相关的基础设施软件、解决方案与技术服务,包括人工智能基础设施产品族、容器云产品族、云资源管理系统、开发支撑软件DevOps四大系列产品与服务。


公司为企业的数字化转型和人工智能化转型提供包含传统应用、新型云原生应用、边缘计算应用和人工智能及高性能计算应用等广泛异构应用的运行承载与调度,同时通过开发支撑软件DevOps大幅提升应用开发效率。通过多云资源管理、应用承载调度和开发支撑三位一体的软件工具助力企业IT架构革新和业务敏捷创新。


公司充分利用自身在云原生领域的长期技术积累,为企业提供云原生架构下的高弹性、高可用、高安全性的人工智能开发基础设施和算力运营基础设施,实现对 AI 计算资源的灵活调度、远程共享等目标,支持万卡万核的大模型训练迭代和算力资源运营,帮助企业提升人工智能时代的企业竞争力。

体验创新云技术带来核心业务效率显著提升
立即预约,加速企业数字化转型进程
Copyright ⓒ 2022 苏州博纳讯动软件有限公司 国徽 苏ICP备13004761号 法律声明及隐私政策