01. 什么是制品库?
1)开发阶段
首先开发同学在编程时,并非全部代码都需要自己来编写,这就导致了开发团队在开发构建阶段需要使用大量来自于外部的依赖组件。如果没有制品库去构建企业唯一的可信源,那么将无法保障众多开发团队所使用的组件来源是否都合法、安全和可信。一旦引入问题组件,对于企业业务的打击将是巨大的。
参考21年年底,几乎所有Java应用都会使用的maven制品(Log4j2组件)爆发严重漏洞,导致大量国内服务器遭国外黑客操纵,被列为最高级别漏洞:
▲来源:人民资讯文章《阿帕奇安全漏洞警示:原因、危害及应对》
2)开发运维交接
在开发团队完成开发工作后,接下来需要把软件包交接给运维同事去做测试/生产环境的部署。这时候没有制品库去做制品的版本管理和流转处理的话,开发团队就没法对制品的质量/发布状况了如指掌,运维团队也难以确定本次可发布的版本,这如果发生在大型IT组织内部,将造成难以计量的生产事故。
3)运维部署阶段
如果存在多地的生产环境(数据中心),运维团队需要做生产发布时,需要保证多地软件包的同步分发才能保障应用能在各地及时上线,其中传输介质是否安全可靠、版本如何保障一致、异地传输怎么处理、权限管理如何把关都是困扰运维团队的难题。