溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

發(fā)布時間:2020-08-05 02:51:32 來源:ITPUB博客 閱讀:139 作者:JFrog杰蛙科技 欄目:開發(fā)技術(shù)

背景:

本文為大家介紹 Capital One 如何利用自動化流水線實(shí)現(xiàn)Artifactory   HA集群進(jìn)行自動化運(yùn)維。 Capital One 銀行是美國最大的數(shù)字化銀行之一,在 Capital One devops體系中應(yīng)用了JFrog   Artifactory   HA集群進(jìn)行軟件制品管理。由于 Capital One 規(guī)模龐大并且為滿足業(yè)務(wù)連續(xù)性要求,其部署的Artifactory   HA擁有primary和DR(災(zāi)備)兩套集群的架構(gòu)。在運(yùn)維Artifactory   HA集群維護(hù)中通過建設(shè)和運(yùn)行自動化的流水線,在不影響用戶使用和業(yè)務(wù)連續(xù)性的前提下,自動地完成了版本升級、配置更新、功能更新,安全檢測等工作,并且在檢測到問題時,實(shí)現(xiàn)自動化的回滾。

流水線總體介紹:

  CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

通過Jenkins與Github集成驅(qū)動流水線。每個PULL請求觸發(fā)一個小規(guī)模測試并提供快速反饋。 每個Merge會觸發(fā)研發(fā)環(huán)境HA集群范圍的部署,并進(jìn)行相關(guān)測試。標(biāo)簽(Tag)被用來標(biāo)記代碼更新的驗(yàn)證階段和對應(yīng)的環(huán)境。

使用 Terraform 創(chuàng)建基礎(chǔ)設(shè)施,實(shí)現(xiàn)藍(lán) / 綠的發(fā)布。并通過Chef   Cookbook完成整個集群內(nèi)所有角色服務(wù)器配置

流水線構(gòu)成

靜態(tài)分析流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

通過對代碼靜態(tài)分析 對代碼結(jié)構(gòu)進(jìn)行快速反饋,確保其符合行業(yè)標(biāo)準(zhǔn)。同時使用一系列的Linters進(jìn)行不同類型的代碼分析。

 

安全掃描流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

      Capital One 引入DevSecOps概念,能夠在產(chǎn)品上線之前進(jìn)行安全掃描和漏洞檢測。安全檢查主要使用了靜態(tài)安全檢測通過代碼掃描來完成漏洞發(fā)現(xiàn)。除了靜態(tài)檢測還通過對比分析,使用Jfrog   Xray對依賴進(jìn)行安全掃描,提高第三方依賴的安全性,并提供修復(fù)建議。

單元測試流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

單元 / 集成測試,用于驗(yàn)證代碼的更新不會破壞預(yù)期的功能。主要應(yīng)用于用戶自定user   plugin的測試。流水線通過容器方式拉起Artifactory安裝并測試這些 custom plugin ,確保其正確工作,避免在生產(chǎn)環(huán)境中進(jìn)行測試。

構(gòu)建階段流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

本階段的所有文件都需要部署在一個高可靠的位置,以便在系統(tǒng)運(yùn)行時進(jìn)行自動擴(kuò)展不需要去依賴其他任何系統(tǒng)包括Artifactory。 Capital One 選擇了S 3 進(jìn)行外部存儲。所有制品與chef   cookbook都從Artifactory拉取并存到s 3 中。

用于部署的流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

  部署流水線需要確保新集群部署不會影響到現(xiàn)有Artifactory提供正常服務(wù)。

  1 流量切換到DR區(qū)域

  2 縮容現(xiàn)有集群,減少節(jié)點(diǎn)數(shù)量并釋放license給新的集群使用,Aritfactory集群采用多主架構(gòu)在所容時不會影響剩余節(jié)點(diǎn)的正常工作

  3 新部署集群復(fù)用原油的數(shù)據(jù)庫與s 3 存儲內(nèi)容做到無痕切換

  4 當(dāng)新集群完成部署后,業(yè)務(wù)流量進(jìn)行回切

  5 主集群完成升級后,DR集群進(jìn)行升級

  由于Artifactory使用數(shù)據(jù)同步機(jī)制,因此新節(jié)點(diǎn)加入集群的過程對用戶透明。

配置測試流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

在工作節(jié)點(diǎn)上線前需要對其配置進(jìn)行檢測,Jenkins通過ssh方式驅(qū)動新節(jié)點(diǎn)進(jìn)行測試,確保Artifactory,Nginx,Datadog,Splunk這些工作節(jié)點(diǎn)運(yùn)行正常。

確保所有的工作節(jié)點(diǎn) 配置文件的內(nèi)容、位置、權(quán)限都部署正確,以及所有的網(wǎng)絡(luò)端口都正常開通。

系列測試流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

系列測試是確保Artifactory的各個repositories運(yùn)行正常。通過容器拉取所有種類的repositories中的包進(jìn)行測試,同時檢測所有virtual   repositories,并且需要 測新的系統(tǒng)配置是否會影響制品依賴的解析。

性能測試流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

確保發(fā)布產(chǎn)品不會存在性能問題。 Capital One 使用Jmeter工具模擬生產(chǎn)級流量并分析, 1 5 分鐘的負(fù)載測試作為流水線的一部分,使用1小時負(fù)載測試主線升級以及重大變更場景。

由于Artifactory支持多種類型的包因此在流量模型是一個挑戰(zhàn), Capital One 通過分析日志獲取常用API,并在流量峰值時期測試API調(diào)用速度。

回滾策略流水線

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

Capital One 設(shè)計(jì)了兩個回滾策略:

In-region回滾。當(dāng)部署后的測試失敗時,馬上啟動自動化回滾,刪除新的集群,并恢復(fù)舊的集群。

DR容錯回滾。當(dāng)主集群升級成功后,或監(jiān)測幾天用戶流量,沒有問題的時候再更新容災(zāi)集群。如果在這幾天中發(fā)現(xiàn)問題,就會啟動容錯回滾:用戶流量切換到DR集群,主集群回滾到之前版本,數(shù)據(jù)庫回滾到之前的快照,再通過 Artifactory  Replication同步數(shù)據(jù),最后再把流量切換回回滾后的工作集群。目前

由于 數(shù)據(jù)庫的回滾可能會有DataBase   schema的變化, Capital One 目前在數(shù)據(jù)庫回滾操作上依然使用手動方式完成。

自動化流水線部署帶來的收益

CapitalOne - Artifactory高可用集群的自動化部署實(shí)踐

Capital One 通過自動化流水線部署Artifactory   HA為團(tuán)隊(duì)帶來的收益:

* 加快部署進(jìn)度并且使開發(fā)人員能更專注于代碼開發(fā)本身,不再需要花費(fèi)時間維護(hù)制品管理的工具。

*Capital One 更好的擴(kuò)展性,整個集群的擴(kuò)縮容都可以由流水線完成

*全面的測試流程確保用戶體驗(yàn)

*自動化回滾策略,加快故障檢測和響應(yīng),減少對生產(chǎn)業(yè)務(wù)影響

更多 精彩內(nèi)容 請關(guān)注公眾號: JFrog 杰蛙 DevOps

  更多技術(shù)分享 可以關(guān)注 2 18 日在線課堂:《Artifactory企業(yè)版介紹》

報名鏈接:https://www.bagevent.com/event/6365977

 

課程介紹

在企業(yè)數(shù)字化轉(zhuǎn)型的背景下,應(yīng)用的更新迭代周期正在不斷加速,如何在多語言環(huán)境下建設(shè)一套高性能,高可用的應(yīng)用制品管理平臺成為企業(yè)在數(shù)字化轉(zhuǎn)型中的一個新課題。

課程收益

本期通過演示事例說明如何通過Artifactory企業(yè)版實(shí)現(xiàn)制品管理,元數(shù)據(jù)管理,制品與依賴安全管理。并且實(shí)現(xiàn)Artifactory與Jenkins的集成使用。

本期話題

1 artifactory企業(yè)版的特性以及高可用架構(gòu)

2 如何通過Artifactory實(shí)現(xiàn)多語言環(huán)境的制品管理

3 通過Artifactory建立企業(yè)級制元數(shù)據(jù)管理平臺

4 如何實(shí)現(xiàn)制品依賴安全管理

課堂活動

本期課堂講師會在結(jié)束前進(jìn)行抽獎活動

第一名:小愛音響

第二名:JFrog 新版 T

第三名:JFrog 新版 T

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI