wp28556259
作者wp28556259·2021-11-17 17:48
软件架构设计师·CMBC

城商行业DevOps持续交付场景下制品库如何设计及选型建议探讨总结

字数 11815阅读 3242评论 2赞 8

摘要:

现在的大环境是科技是第一生产力,科技金融需要靠科技来驱动,传统金融在互联网经济下,受到了支付宝,微信等较大的冲击,必须做出改变,迅速响应市场,怎么更快的感知市场并迅速交付新产品到客户手里,所以金融银行业必须要做Devops,应对互联网的发展要求。在做Devops建设必须要考虑制品库设计,制品库设计在Devops持续交付的重要性体现在以下几个方面:
1、一般金融企业的系统都是购买的各个第三方软件公司,这样带来的问题是开发语言复杂,技术架构种类繁多,而Devops中的核心概念是流水线,流水线上的组件种类越多,伴随的运维,管理,开发的难度就越大;所以一个能支持全语言类型的制品仓库就显得比较重要。
2、监管要求金融企业的开发测试环境和生产环境是物理强隔离,所以在投产时,会有一个制品从开发环境搬运到生产环境的动作,那么仓库还需要有制品同步的能力。
3、同时制品仓库本身还需要具备高可用的能力。
4、Devops里还有个比较重要的概念是质量门禁,这里需要制品库中的制品具备自定义元数据的能力。

本期的线上同行交流邀请到民生银行、中原银行、上海银行、乐山银行、山西银行、江苏银行、吉林银行、重庆三峡银行、浙江泰隆商业银行、自贡银行、贵州银行等多家金融同行会员,同时也特别邀请了杰娃制品库专家一同参与交流分享。本期大家的交流重点围绕三部分进行重点探讨:
1、 DevOps与 制品库(商用、开源)产品选型建议;
2、制品库的设计如何保证高可用及安全性;
3、 DevOps与制品库设计上难点问题 。
希望给金融同行们在 DevOps 与制品库(商用、开源)选型上以及设计上提供一定的参考和帮助。本期的更多交流内容可以点击查看:https://www.talkwithtrend.com/Activity/index/op/question/id/1799

一、 DevOps与 制品库(商用、开源)产品选型建议探讨

1、企业制品库选型建议?

各位专家好,我们公司基于开源的相关软件产品和组件构建了一套自己的 DevOps 基础性的平台,但是目前在制品库管理和安全检查组件的选型上遇到了一些问题,迟迟没定定下合适的方案。所以想和各位专家请教一下,目前市面上都有哪些开源类的制品库方案?不知道是否有专家在这方面有过最佳实践的经验,如果方便的话,能否分享一下?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
小型企业,可以选在Nexus、Harbor等开源产品,能实现最简单的制品管理功能.对于中大型企业,研发规模超过200人,并且对制品库稳定性、制品合规性、安全管理、制品分发等功能均有需求的场景下,建议采用商业解决方案 JFrog Artifatory,对于不同行业,JFrog有相应的最佳实践方案.

wp28556259 软件架构设计师 , CMBC
我们是用的artifactory,全语言管理依赖,支持镜像仓库,配套有xray实现安全扫描.

lchqq DevOps工程师 , 中原银行
制品库主要功能是依赖管理与制品管理2方面。目前开源与商业制品库可供选择的并不多。商业的Jfrog Artifactory比较成熟,安全扫描功能也有,码云也有制品库的功能。开源的制品库基本上就是Nexus了,中小企业使用基本够用,但安全扫描需要自己实现。

2、 制品库软件如何选型,Jfrog和Nexus的区别?

## 嘉宾观点:
匿名: 网上的对比很多,通常都是说JFrog功能更全面,对云的支持更好,采用JFrog的知名企业也很多,不过通常这也意味着价格更高,所以还是结合自己的需求和预算综合考虑。

wp28556259 软件架构设计师 , CMBC
从核心功能上,Nexus跟JFrog相比来说支持语言较少。其他方面,JFrog相对生态更丰富一点,比如安全扫描,多地复制。 个人觉得如果团队技术能力强,人力充足,那么选择开源方案也是可以的,毕竟自主可控是需要的。

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心

看客户场景。对于金融企业,对于制品库的高可用性和维护性,制品的合规引入、安全管控、开源许可管控、多环境同步等都是有严格的监管要求的。在监管要求的基础上,开源的Nexus和Harbor等工具就很难满足金融企业业务场景要求。
Nexus与JFrog主要在下述几个方面的区别 :
1,JFrog原生高可用集群、Nexus为单点。JFrog稳定性及维护性更好。
2,JFrog具备开源组件的安全扫描及许可证扫描能力。JFrog提高开源治理能力。
3,JFrog与DevOps工具链或平台对接能力强,全功能api、命令行、插件功能,方便二次开发,国内原厂支持
4,JFrog多环境自动同步能力,可以基于checksum完成一致性校验,匹配监管需求

lchqq DevOps工程师 , 中原银行
开源制品库功能还是弱了很多,网上也有不少的对比。商用的JFrog比较成熟,码云等代码库也有类似的功能,但距离JFrog还有一定差距。

3、当下提供DevOps厂商比较多?城商行在DevOps选型上主要应该从那方面的考虑和建议?

当下提供DevOps厂商比较多?城商行在DevOps选型上主要应该从那方面的考虑和建议。

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
选型主要分为两种
1,基于开源工具和必要的商业工具,自建devops体系
优点:自主性强,便于定制,提高团队能力
缺点:需要投入研发成本

2,采购成熟的devops平台
优点:使用方便
缺点:流程无法定制,无法提升团队人员能力。

lchqq DevOps工程师 , 中原银行
我觉得主要应当考虑如何落地与后期维护的问题。每个行的具体技术能力与管理流程都不尽相同,与互联网行业更是有很大的差别。有些DevOps产品看起来功能完善而强大,但实际落地的时候往往水土不服,需要很大的改造工作量。而且DevOps体系建设也不是一朝一夕的事情,而后期行内的管理诉求与技术路线都在不断的变化,能够及时的支持经常性的变更甚至颠覆性的变更都是要考虑的。
当然需要投入的成本也是需要重点考虑的,这里不做过多阐述。

wp28556259 软件架构设计师 , CMBC
主要是售后吧,因为产品售前和售后可能是两个东西,强大的售后支持才是最重要的

二、 制品库的设计如何保证高可用及安全性;

1、如何全面检测制品库自身安全以及内部镜像及运行时的安全?

嘉宾观点:

wp28556259 软件架构设计师 , CMBC
制品库自身的安全,开源产品可以扫描其源码和依赖。商业产品只能找厂商要相关材料了。内部制品的安全靠安全产品或企业内安全团队来检测,和其他应用软件的检测办法一样。

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心

这个问题包括两个方面
1,自身安全,制品库软件的安全问题
因为开源nexus及harbor,都是开源项目,没有安全团队维护,所以漏洞风险更新频率较慢,如果出现问题,也没有厂商支持
JFrog时商业产品,所以如果有漏洞风险,可以第一时间由工程师现场修复

2,对于制品库内部管理内容的安全
主要是开源软件、组件、镜像的安全,这个很容易存在依赖混淆攻击及软件供应链攻击,所以需要制品库具备安全扫描及开源合规扫描能力,对制品进行安全检测、影响分析、组成分析等。JFrog制品库可以完全满足此需求
对于运行时安全,需要对应的运行时扫描工具。

2、代码制品库或容器镜像制品库安全性相关问题?

中小型银行、应用系统大多以采购为主,不同厂商的产品在实施devops过程中,会形成不同的制品库,如自动化流水线生产的mvn jar,自动化生产的应用镜像等等。
这里存在一个问题,就是安全性的相关问题。以往传统运维环节下,运维部门可以强行管控各类资源的版本,同时也会建设各种自动化统一操作平台。基于这些基础IT的版本管理和自动化运维平台,安全相关的问题都比较容易管控处理。
比如说,统一的操作系统补丁升级、中间件补丁升级、版本管理、密码定期自动化更换、镜像底层安全扫描啊等等。
在devops推广后,一定程度上模糊了开发与运维的明显界限。
传统运维层针对安全性的现有方案无法很好的适用于devops环境。
比如说,各个厂商所带来的不同规格的制品库,其内容迥异,很难按照传统思路进行统一化的安全管控。
这里的问题就是如何实现devops环境下,不同厂商制品库安全层面如何做到监、管、控。
比方说:安全部门发布的一个开源jar的安全漏洞,如何实现制品库的自动扫描发现?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
目前金融行业重要采用JFrog Artifactory及Xray进行开源组件安全及合规性治理

随着开源软件及组件被组织广泛应用,带来的安全风险和法务风险也愈发严重。近年来无数企业被护网行动和开源风险所影响,由于管理不严格、制度不规范,在护网行动中只能通过断网来方法,影响产品安全的同时,也对业务正常运转有极大的影响。所以开源治理的工作必然是下一阶段重点内容。那么如何通过开源组件及软件的管控,来助力开源治理呢?

我们通过下述4种方法来为开源治理行动打下坚实的基础:

1, 控制源头,统一引入开源组件及软件
无论传统行业还是互联网行业,开源引入的方式都十分重要,如果没有统一的引入源头及引入平台,使用者随意下载开源组件及软件,直接在组织内使用,带来的风险无法清查,对开源的使用、更新、退出等流程无法监管。

为了避免此种现象,可以使用JFrog Artifactory,统一建立引入机制,对开源引入合规化、可视化,使开发者可以通过可信渠道,快速获得所需开源组件及软件,并对开源软件及组件的使用、更新、退出情况全流程记录。

2, 识别开源风险
开源风险分为安全风险和法务风险两部分,无论是哪个方面,对于普通的开发人员,均无法识别到。如果风险被引入到交付体系中,将对产品的安全性和法务合规性有着严重的影响,开发人员为了修复风险,也将花费大量时间和成本。所以开源组件的风险识别,将是开源治理的最重要的部分。

为了给开发人员提供最佳体验,可以使用JFrog Xray监控开源资产的安全风险及法务风险,从源头帮助开发人员避免引入有风险的开源资产,从源头避免安全问题产生,为价值交付加速。

3, 开源风险记录追踪
对于所有交付软件资产,我们需要了解每个软件使用了哪些开源组件,每个组件是什么版本,每个版本有什么风险,以便在护网行动中,可以快速的定位暴露在互联网上的产品的安全情况,帮助我们快速设防。如果发生类似Fastjson这种0day漏洞,我们也可以快速定位到风险的影响范围,进行全面的风险定位,快速修复,避免漏网之鱼的存在。
为了实现该功能,我们需要使用JFrog Artifactory,实现组织资产的统一管理,打造企业单一可信源,确保软件资产在统一平台存储,同时通过JFrog Xray进行实时安全监控,分析软件及组件之间的依赖关系,快速定位影响范围。

4, 开源风险处置
当然仅仅识别到开源风险是不够的,我们需要对风险进行处置,知道风险如何进行修复。
可以使用JFrog Xray,将对已经暴露的风险进行提示,并直接将修复建议通知给开发人员,使开发人员快速的进行修复。

部分落地案例:
1, 某金融用户开源组件及软件引入规范:
组件引入需要架构办及安全办基于安全风险和法务风险进行评估,合规判定后,将会被引入到组织内部

2, 某金融用户开源资产追踪实践
通过JFrog Artifactory集中管理企业内开源组件、软件、商业组件、产品软件、docker镜像等,通过JFrog Xray自动分析组件、软件、镜像间的依赖关系,做到出问题可以快速追溯到风险的影响范围

3, 某互联网用户开源风险处置方案
通过在开发人员IDE中安装扫描插件,做到安全左移,在开发源头做到风险管控,避免风险传递到下游,导致返工等现象,大大提升了开发效率,减轻开发与安全团队之间的隔阂。

wp28556259 软件架构设计师 , CMBC
个人理解软件安全管控和工具没有绑定的关系,因为安全是硬性的,无论用什么工具都必须满足企业的安全要求,即使是传统运维还是DEVOPS。传统运维和DEVOPS的区别只是把安全和质量相关的规范,做成线上化的自动的。
比方说:安全部门发布的一个开源jar的安全漏洞,如何实现制品库的自动扫描发现?
//这里要具体看是在开发端还是在生产端发现的,安全扫描手法也不一样,当然最好的办法是在构建时就拦截这些,其他产品我不太了解,artifactory的xray配套有这样的能力。

lchqq DevOps工程师 , 中原银行
您好,您的问题非常好,这也是中小银行的痛点问题。我觉得这可能属于一个更高层面——“开源治理”的范畴,需要有一系列的管理和技术手段进行管控,不是一个工具、一个部门能够独立完成的。我觉得

它至少包括下列3方面的内容:
1、准入标准。建设完善的企业级开源软件安全评估与引入流程。
2、安全管控。具备强大的开源组件安全管控能力,包括已有的开源软件使用情况梳理、及时获取开源软件安全漏洞信息、对开源组件的安全测试等能力。
3、修复或退出机制。实现安全漏洞的快速定位,通过对开源软件的修复或退出,快速解决问题,并考虑出现重大问题后的法务解决方案。
目前,我们行是通过一些流程进行管控的,比如架构部门的评审、安全部门的安全扫描测试等,发现问题通知整改等手段进行管控。但我们也是刚刚起步,感觉还存在职责不清晰、覆盖不全面、缺乏长效机制等问题,治理效果还有待进一步提升,咱们可以持续探讨这个问题。

3、传统DevOps与网络安全管控限制背景下的解决方案?

传统金融行业内不同环境相互的网络隔离是非常常见的场景,在此背景下,要做到测试域与生产域的Ops往往会选择与传统互联网不同形式的持续部署方式。
传统互联网会以鉴权被基础,打通测试到生产的网络通路来完成持续部署,而网络隔离的金融行业往往会选择在生产域内单独部署一套持续部署系统,通过从生产域往测试域拉取源码或集成物的方式来进行部署,随之而带来的问题是测试与生产域内多套持续部署系统带来的部署集成功能的不一致性。
问题:有什么好的方案可以做到两种方案的折中?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
由于历史和组织架构原因,银行体系内开发和运维经常是两个不同的部门,有各自的规范,这个是与DevOps概念相违背的。
但是考虑到兼容问题,虽然我们在工具、规范层面无法统一,那就需要在对接的时候让流程更规范。根据业务场景来看,开发和运维之间交付的内容为制品,对于交付物是否透明,是否能涵盖所有信息是金融行业打通组织架构与网络环境的纽带。
目前头部银行在做devops是,制品交接是非常重要的过程。一般是由运维定义交付制品的标准(版本、文档、元数据、测试通过率报告、安全报告等),由开发将这些内容构建成标准交付件,通过制品库自动同步到生产环境。并在过程中完成一致性校验,避免倍篡改。

wp28556259 软件架构设计师 , CMBC
开发测试到生产,流程和工具可能不一样,但是他们的目的是共同的,都是为了把制品发布出去,所以两边可以约定制品的规则,比如命名,存放路径,来实现打通。

lchqq DevOps工程师 , 中原银行
银行业由于网络隔离测试与生产域确实要有多套自动化部署系统。我们的经验是可以通过制品库作为桥梁,将经过严格的测试后的软件制品与部署脚本晋级至生产制品库,保证一致性。

4、在镜像仓库的构建上如何兼顾安全和方便?

在镜像仓库的构建上如何兼顾安全和方便?在镜像仓库的构建上如何兼顾安全和方便?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心

为了兼顾安全及方便,那必须保证制品管理和安全扫描能力可以很好的联动
通过制品库做所有开发语言的制品管理,并通过内置的安全扫描功能,进行合规管控,可实现下述功能:

1,自动做到制品引入,开发人员使用方便
2,自动做到风险管控,对于风险制品阻断开发下载
3,自动做到制品环境同步,打通开发生产,提高工程效率,真正做到devops,开发与生产打通
JFrog制品库支持上述能力,这样在方便的情况下,实现了安全管控。

wp28556259 软件架构设计师 , CMBC
首先金融行业一定是安全第一,其次才是方便。金融行业要求生产环境与开发环境物理隔离,我们的安全分了几个方面:
1.制品仓库分为开发端和生产端多个集群
2.开发端的制品仓库与互联网的网络访问关系也是定向开放的,没有完全开放
3.在开发测试时,会有xray做开源软件漏洞扫描,也会有安全团队的黑盒扫描
4.一切都OK后,才会打上质量标签,传递到生产环境。

5、容器镜像库如何管理才能安全?内网与外网如何同步?测试与生产如何同步?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心

金融行业使用JFrog制品库,进行镜像内外网同步策略
1,DMZ-开发之间,做安全扫描,合规扫描,代理可信源,基线管控
2,开发内部做好镜像的成熟度晋级,
3,对于需要发布的版本,经过测试和审批后,单向同步到生产中心制品库 。

wp28556259 软件架构设计师 , CMBC
金融行业要求生产环境与开发环境物理隔离,我们的安全分了几个方面:
1.制品仓库分为开发端和生产端多个集群
2.开发端的制品仓库与互联网的网络访问关系也是定向开放的,没有完全开放
3.在开发测试时,会有xray做开源软件漏洞扫描,也会有安全团队的黑盒扫描
4.一切都OK后,才会打上质量标签,传递到生产环境。

6、制品仓库如何实现及保证自身的高可用?

嘉宾观点:

wp28556259 软件架构设计师 , CMBC
最好选型支持云的制品仓库,依靠云来实现高可用会轻松很多。

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心

如果对制品库的高可用性有需求,那一定是中大型企业或金融企业
这个时候就需要考虑商业的产品支撑了,对于开源技术,如nexus,目前没办法实现自身高可用。可以通过使用JFrog的商业产品,来完成高可用搭建。
JFrog具备原生高可用、高并发能力,同时支持30种仓库类型,满足所有金融用户及互联网科技公司需求 。

7、制品库多活问题:现在开源不支持备份,无多活结构,不知道有啥好方案?

嘉宾观点:liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
建议采用商用方案,开源技术对于自有开发团队能力要求较高,对于二次开发成本及维护成本均较高。并且在出现异常的情况下,由于不了解开源内部的技术,修复成本也较高,很容易造成生产故障。

故建议金融用户采用商业方案,如JFrog。提供原生的多活及备份机制,节省二次开发成本及维护成本,降本增效。

三、DevOps与制品库设计上难点问题

1、开发、测试、准生产、生产多环境下的制品库如何做设计同步?

非生产和生产之间的制品同步如何设计,既要考虑每套环境做到应用和配置参数分离,也要考虑每套环境的应用要同步一致但配置参数不一致,也需做到同步过程的可视化、回退能力。

嘉宾观点:

lchqq DevOps工程师 , 中原银行
我们的经验是同步一般是单向的“包传递”,也就是所谓的“制品晋级”,开发-测试-准生产-生产库从左向右单向传递,制品包只有通过质量门禁、安全监测等步骤才能晋级到更高级别的库。应用和配置参数分离确实需要落地开展,最好使用配置中心进行配置参数管理。

wp28556259 软件架构设计师 , CMBC
首先要代码和配置分离。一般来说企业会有配置中心来配合应用拉取不同环境的配置,比如多环境,多机房的不同的配置文件。晋级的制品是指不变的代码。

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心

金融用户的网络环境复杂,一般分为DMZ、开发测试、生产环境
对于制品流转,DMZ到开发之前应该是单向准入,基于安全扫描功能屏蔽风险组件准入 。
对于开发到生产之间,也是单向同步,并需要与审批对接,进行checksum一致性娇艳 。
生产端制品库只读,不支持写及修改。

2、能否完善制品元数据管理,为devops助力?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
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 使用元数据提升二进制

wp28556259 软件架构设计师 , CMBC
元数据管理确实是devops很关键的一个环节,因为只有完善了制品的元数据,才能实现质量门禁,来提高交付效率和质量。

3、结合devops:制品库作为基础设施怎么服务应用开发,它的定位在那里、怎么结合提供服务?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
定位
1,软件资产仓库:统一管理第三方依赖、自研发组件、镜像、商业采购软件等
2,单一可信源:安全可信、质量可信

制品库作为DevOps最底层的工具,是DevOps的地基。提供与其他devops工具集成的能力。

wp28556259 软件架构设计师 , CMBC
制品库本身也有管理开发语言依赖的功能,金融行业一般到互联网不是开放的,开发时需要大量的互联网依赖,制品仓库可以提供服务。

lchqq DevOps工程师 , 中原银行
制品库主要有2方面的功能,依赖管理与制品管理。依赖管理,是指制品库可代理下载并管理各种语言编译构建时所需要的依赖包的功能,如Java的maven仓库,Vue的Npm仓库等。制品管理,是指制品库可以管理开发过程中编译或打包生成的软件制品包,主要用于软件制品的版本管理。制品库是衔接DevOps流程的关键组件,一般来说持续集成过程(CI)经过代码拉取、代码扫描、编译构建、自动化测试等步骤生成软件制品,而自动化部署工具则通过下载软件制品进行环境的部署。

4、在银行领域,会有不同物理隔离的环境(开发、测试、生产),制品如何进行同步?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
目前在银行,国有银行、股份制银行、头部城商行基本上在开发、测试、生产上可以进行一些联动。通过网络层面,单向打通网络,在各个环境建设制品库集群,结合行内审批流,进行制品的单向同步。
这个过程被称之为投产不落地
同步过程由制品库自动完成制品一致性校验,确保所测即所得。JFrog制品库支持该功能。

wp28556259 软件架构设计师 , CMBC
再怎么隔离也是得打通制品投产这一条路,如果制品库本身有同步功能那很方便,没有的话就得通过其他工具中转的方式了。

lchqq DevOps工程师 , 中原银行
还是需要开通不同环境间服务器到服务器之间单向的端口权限,Artifactory是有内部的机制可以进行晋级或同步的。

5、制品库与外部插件问题:对接开源安全扫描比较麻烦,有啥好方法?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心
商业制品库JFrog支持内置安全扫描能力,具备开源漏洞库和商业漏洞库,一站式解决制品安全合规及开源引入的问题。

目前90%的国有制银行及股份制银行均采用此方案解决制品开源扫描问题。

wp28556259 软件架构设计师 , CMBC
我们使用的artifactory有配套的xray来扫描开源软件,xray本身集成了nvd,cnvd,vulndb漏洞库。

6、针对多数据中心的私有云集成部署方案?

目前针对私有云环境,如k8s和Openshift,已经有许多的DevOps和GitOps集成方案,这些方案或多或少都会有针对容器及编排文件更新的需求,针对这些需求,总是没有一个特别完美的方案能做到多数据中心同步顺序更新的同时,即保证业务连续性也减少运维部署操作。

问题:传统的DevOps如何做到编排文件变动较大的双数据中心部署?GitOps当中如何完成多数据中心的同步?

嘉宾观点:

liwei1567 解决方案架构师 , JFrog企业级DevOps解决方案中心

开发到生产交付建议为制品,因为制品具有原子性,内容不易篡改
对于多数据中心场景下,JFrog提供了边缘节点方案,对制品进行统一分发和管控,保证制品一致性的前提下,增加了加密传输、分片传输、去重传输能力,最佳限度降低制品多数据中心分发成本,并且提供了两第三中心的校验机制 。

wp28556259 软件架构设计师 , CMBC
我们在开发端有一个制品库集群,负责管理依赖和开发端的制品,投产时会把制品同时同步到两个生产端数据中心里的制品库集群。目前我们的发布量也不是那么大,基本每个变更日流量峰值几百MB/S,使用的镜像支持分层传输,所以还没到撑不住的时候,明年计划升级网络和存储带宽。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

8

添加新评论2 条评论

kdykdy解决方案架构师腾讯云Coding
2022-06-07 02:02
kdykdy解决方案架构师腾讯云Coding
2022-06-07 02:02
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广