[首發]國內某大型銀行的持續集成與交付實踐

一、背景

隨着架構的不斷演進以及微服務技術在我行的深入應用,應用部署發佈的複雜性大大增加,簡單的代碼配置管理模式、人工的版本記錄及手工部署等發佈操作和管理的模式,效率低、操作風險較大,因此急需從整體上提升我行軟件持續交付的能力,降低應用部署發佈的操作風險。
通過引入構建自動化及可視化的軟件交付流水線,整合從開發、構建、測試、部署、發佈、運維等多個環節,加強各職能團隊協助和溝通,全面實現項目構建持續自動化管理。

二、實施方法

1. 總體架構

DevOps是一組能夠幫助軟件開發團隊極大的提高其軟件交付的速度和質量的模式和最佳實踐組成;DevOps的整體架構如圖:
[首發]國內某大型銀行的持續集成與交付實踐

從使用層次主體關聯:開發、測試和運維團隊,配套對應的權限控制體系。
從交付流程方面:涵蓋從代碼到應用交付的全流程管理。
DevOps 平臺既包括了項目管理、產品管理、交付中心、組織機構等宏觀維度的各項,同時在也納入了編譯、部署、代碼管理及pass平臺部分,同時,平臺機制應該支持靈活的擴展(如工具集成擴展、部署能力擴展等),面對複雜的場景或者特殊需求的時候,平臺也可以提供更加靈活的能力。

2. 功能介紹

功能將實現流水線管理、質量管理、告警管理、製品管理、項目信息管理、系統管理、個人工作臺等模塊,達到交付自動化,可視化的目標。

3. 持續集成

持續集成模塊功能主要有代碼庫管理、構建定義管理以及構建實例管理等,DevOps平臺中構建任務可以分爲以下類型:

  • 需求類任務:jira、ones等
  • 編譯類任務:Maven、Ant、前端構建等
  • 打包類任務:Maven 、ant、gradle、npm、docker等
  • 測試類任務:junit、Postman、Jmeter等
  • 靜態代碼掃描:Sonarqube
  • 安全掃描:Xray
  • 部署類任務:ansible、chef、shell
  • 容器類:k8s、mesos
  • 日誌類:elk
  • 其他工具類任務:shell、製品提交到nexus倉庫、Jfrog製品庫等。
    每個構建定義上可選擇若干個需要構建的任務,通過原子步驟編排,組裝成一個完整的構建流程,代碼提交時觸發構建(支持gitlab、github、svn等常用代碼庫版本管理工具),結合諸如jenkins、docker等工具,提升編譯速度和增強資源的靈活調度能力,將持續集成的完整鏈路打通,示例如下:
    [首發]國內某大型銀行的持續集成與交付實踐

[首發]國內某大型銀行的持續集成與交付實踐

4. 持續部署

軟件團隊通常需要將發佈後續推送到不同部署環境進行上述討論的不同類別的測試。
例如,常見的情況是將軟件部署到測試環境進行人爲的質量檢查測試,然後部署到性能測試環境,進行自動化負載測試。 如果構建通過該測試階段,則應用程序可能稍後部署到用於 UAT 或 beta 測試的獨立環境中。
理想情況下,將任意發佈候選製品以及與之通信的其他系統可靠地部署到任意環境中的這個過程應儘可能實現自動化。
如果企業希望按照計劃的速度持續交付,那可能需要每天或每週多次執行,因此它的工作速度和可靠性至關重要。
用自動化方式在環境之間移動軟件是作爲DevOps的團隊的主要特性之一,因此這也是DevOps的關鍵重點。
示例如下:
[首發]國內某大型銀行的持續集成與交付實踐

5. 技術架構

[首發]國內某大型銀行的持續集成與交付實踐

6. 技術、工具、角色、能力梳理

Devops實施時,涉及到的技術、工具、角色、能力梳理如下:
[首發]國內某大型銀行的持續集成與交付實踐

三、收益

一期完成了Jfrog製品庫採購、上線、高可用建設並圍繞Jfrog製品庫進行了工具鏈的打通;實現了持續集成與持續部署功能、製品提升功能、軟件包不同倉庫流轉功能、軟件包依賴關係管理、軟件包元數據可視化管理及試點項目的接入;
主要得到的收益如下:
統一製品庫管理:軟件包統一由製品庫管理,改變原來散落在各處,無法跟蹤追溯的問題。
簡化操作步驟:使用前,開發人員部署需要手工操作7-10步;使用後,可以一鍵部署到DEV、SIT、UAT等環境。
縮短等待時間:測試人員可按需部署,無需等待。改變了以往測試人員需等待開發人員部署的情況。

**更多技術分享請關注 JFrog傑蛙在線課堂
1月7日,20:00 在線課堂:《Netflix,甲骨文的 DevOps 之路》
課堂收益:

  1. 介紹甲骨文在進行 DevOps 變革時遇到的困難
  2. 解決辦法
    3.落地 DevOps 用到的工具鏈
    4.甲骨文的自助式 CI/CD 平臺
    5.Netflix的持續交付平臺 Spinnaker
    6.完成 DevOps 轉型之後得到的收益
    報名鏈接:https://www.bagevent.com/event/6321621
    抽獎活動:
    課堂結束前五分鐘,進行抽獎活動
    第一名:小米藍牙耳機
    第二名:JFrog傑蛙新版T恤
    第三名:JFrog傑蛙新版T恤
    **
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章