CapitalOne - 千亿资产银行如何进行唯一可信源的建设?

2020-07-15  本文已影响0人  JFrog

1. 背景

     Capital one创立于1988年,最早是弗吉尼亚州Signet银行的信用卡部门;1994年,Signet将信用卡部门独立出来并在纽交所上市,于1995年更名为Capital One。自上市以来,Capital One的股价一路走高,成长为美国第五大零售银行和第八大银行。

     在Capital One发展史上,其多次通过并购拓展业务,并延伸到了英国和加拿大。尤为令人瞩目的是,2008年金融危机之后,Capital One接连吃下了ING集团美国直销银行业务和汇丰银行美国信用卡业务。

     在零售银行和互金界,Capital One几乎无人不知,前些年更是神一般的存在。来自Capital One的海归精英炙手可热,他们创办或者在很多互金平台担任要职。

     如今,Capital One总资产接近4000亿美元,是美国主要的信用卡发卡行和汽车金融服务商之一。虽然 2014 年后,Capital One业绩开始下滑,但纵观其发展史,在竞争激烈、巨头林立的美国银行业,它所取得的成就堪称奇迹。这背后得益于Capital One很早就确立了数据驱动的战略,被视为大数据金融的先驱,也因此在金融科技兴起之后得以封神。

     在 JFrog SwampUp 2020用户大会上,来自 Capital One 的资深研发经理Wayne Chatelain分享了他们内部的建设唯一可信源的方法和收益。Wayne 在公司内部负责 SRE 相关的工作,提供公司级别的 Artifactory 服务,帮助公司内部其他团队构建应用。那么我们来看看他们为什么要建设唯一可信源。

2.  什么是唯一可信源?

     唯一可信源是企业内部所有通过审批批准的软件唯一存放的仓库。这些软件包括 war 包,jar 包,Docker 镜像,zip 包,以及第三方开源组件或者商业软件的授信版本。

为什么需要建立唯一可信源?

      很多银行仍然使用 FTP 进行 war 包,zip 等交付包的管理,这样会导致交付包缺失信息,版本管理的配置变更在哪,版本是否通过了代码扫描,漏洞扫描,自动化测试和测试团队的 Approve?这些信息的缺失会导致沟通成本急剧上升,造成人力和时间的大量浪费。随意获取有漏洞的依赖库,或者使用违反公司 License策略的依赖包,也会给公司带来直接损失。如果没有唯一可信源,各个团队,特别是分布在多个地区的开发团队将花费大量的时间在配置变更,版本传递和部署上。

3.  如何建设唯一可信源?

3.1 首先,定义实施唯一可信源的目标:

⭐创建唯一可信源仓库。

⭐确保产品全部使用唯一可信源仓库里的制品。

⭐定制制品审批规则和准入门槛。

⭐在 CI/CD 流水线中自动化

⭐微信可信源的可维护性。

3.2 创建唯一可信源仓库

3.3创建仓库模型:Capital One 基于 JFrog 的最佳实践进行仓库的命名:

⭐用虚拟仓库把所有 local 和 remote 仓库聚合

⭐根据包的类型,按团队进行划分

⭐根据开发,测试,生产环境实行制品晋级制度,区分生产和非生产的包

⭐第三方组件通过隔离仓库晋级到唯一可信源仓库

总体发布流程:

1.   开发则通过流水线进行构建

2.    流水线集成各自扫描,自动化测试并验证结果,记录为制品的元数据

3.    通过 JFrog Distribution 服务分发到各个数据中心的 Artifactory Edge节点,在准生产环境中进行自动化验证。

4.   验证通过之后制品晋级到生产仓库,进行生产环境的自动化部署。

制品晋级的流程:

1. 开源组件漏洞扫描(JFrog Xray)

2. License 扫描(JFrog Xray)

3. 静态代码扫描

4. 动态应用安全扫描

5.黑名单扫描

6. Metadata 属性验证(Artifactory 元数据验证)

     a)   开发,QA,测试元完成验证

     b)   技术 Lead/产品负责人审批通过验证

7. 制品签名验证

8. 企业报表验证

9.制品的所属人验证

10.合规性例外验证

这里 Artifactory 的元数据验证能够作为质量门禁,控制软件包的质量,值得大家参考。

制品的分发流程:

1. 流水线中触发制品的分发

      a)    完成制品的构建

      b)     推送到Artifactory

      c)      触发审批接口

                i.   制品验证阶段

                ii.   编排分发的工作流

  2. 异步状态轮询

         a)     流水线暂停直到审批结果都通过

         b)     检查证书签发状态

                i.   确认签名证书完成

                ii.  验证制品分发到了所有 Edge 节点

    3. 流水线从 Edge 节点拉取制品

          a)     流水线仅仅拉取Edge 里被审批过的制品

                 i.   审批能够被部署到生产环境的制品

                 ii.   Artifactory Edge 只存放被审批通过的制品 

最终结果:

     通过制品的晋级,分发,审批流程,测试 Artifactory Edge 节点里存放的制品库可以认为是企业的唯一可信源。

⭐开源组件和自己构建的组件基于审批和准入机制入库

⭐通过接口调用实现自动化的审查和审批

⭐自动化的分发包到 Edge 节点,实现多机房部署

⭐和 CI/CD 流水线进行集成和分发

⭐未审批的包无法推送到 Edge 节点,无法被部署的生产,避免部署错误。

唯一可信源的工作流:

⭐将所有制品存储在唯一的 Artifactory仓库

⭐触发发布动作

⭐验证制品元数据记录

⭐分发制品

⭐发布制品到唯一可信源

⭐当在 Artifactory Edge 节点的老版本失效时,通过Artifactory 同步删除的通过,在主节点删除某个老版本,将能够自动同步删除 Edge 节点上的老版本。

4. 收益

在银行内部通过唯一可信源的建设,可以实现以下收益:

⭐所有业务团队有唯一可信的依赖库和二方库

⭐所有业务团队有唯一可信的发布版本库

⭐所有审批的过程数据都汇总成为元数据绑定到发布版本上

⭐部署工具有唯一可信的部署来源,基于元数据校验进行自动化部署

参考:

https://baijiahao.baidu.com/s?id=1670085533834899304&wfr=spider&for=pc

https://www.youtube.com/watch?v=me3kwaQI4Gk&feature=emb_logo

上一篇下一篇

猜你喜欢

热点阅读