CapitalOne - 千億資產銀行如何進行唯一可信源的建設?(金融企業必看)

JFrog傑蛙科技發表於2020-07-15

1. 背景

   在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 首先,定義實施唯一可信源的目標:

l   建立唯一可信源倉庫。

l   確保產品全部使用唯一可信源倉庫裡的製品。

l   定製製品審批規則和准入門檻。

l   CI/CD 流水線中自動化

l   微信可信源的可維護性。

 

 

3.2 建立唯一可信源倉庫

3.3 建立倉庫模型:Capital One 基於 JFrog 的最佳實踐進行倉庫的命名:

l   用虛擬倉庫把所有 local remote 倉庫聚合

l   根據包的型別,按團隊進行劃分

l   根據開發,測試,生產環境實行製品晉級制度,區分生產和非生產的包

l   第三方元件透過隔離倉庫晉級到唯一可信源倉庫


總體釋出流程:

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 節點裡存放的製品庫可以認為是企業的唯一可信源。

l   開源元件和自己構建的元件基於審批和准入機制入庫

l   透過介面呼叫實現自動化的審查和審批

l   自動化的分發包到 Edge 節點,實現多機房部署

l   CI/CD 流水線進行整合和分發

l   未審批的包無法推送到 Edge 節點,無法被部署的生產,避免部署錯誤。

 

唯一可信源的工作流:

l   將所有制品儲存在唯一的 Artifactory 倉庫

l   觸發釋出動作

l   驗證製品後設資料記錄

l   分發製品

l   釋出製品到唯一可信源

l   當在 Artifactory Edge 節點的老版本失效時,透過Artifactory 同步刪除的透過,在主節點刪除某個老版本,將能夠自動同步刪除 Edge 節點上的老版本。

 

 

 

4. 收益

在銀行內部透過唯一可信源的建設,可以實現以下收益:

l   所有業務團隊有唯一可信的依賴庫和二方庫

l   所有業務團隊有唯一可信的釋出版本庫

l   所有審批的過程資料都彙總成為後設資料繫結到釋出版本上

l   部署工具有唯一可信的部署來源,基於後設資料校驗進行自動化部署

 

                        參考:

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2704568/,如需轉載,請註明出處,否則將追究法律責任。

相關文章