1、GOPS 全球運維大會2019上海站GOPS 全球運維大會2019上海站大型銀行持續交付流水線建設之路GOPS 全球運維大會2019上海站目錄3背景1迭代2路上3后記41.銀行信息化&信息化銀行 1996年軟件開發中心,自研”CBX“,9991數據大集中 2003”NV“2008”NV+“2019?”期待“2.軟件交付效能的提升?背景OCRINTELLIGENTGOPS 全球運維大會2019上海站目錄背景1迭代2路上3后記4探索(迭代一)n手工打包,FTP至服務器手工部署GOPS 全球運維大會2019上海站團隊級 純手工操作,效率低,難以規范 需熟悉打包和部署全流程,門檻高團隊級GOPS 全球
2、運維大會2019上海站團隊級協作墻標準與規范提高效率質量保障團隊自定標準,或無標準手工操作,效率低、易出錯高度依賴人員技能,人工檢查開發提供手冊,手工操作為主GOPS 全球運維大會2019上海站探索(迭代二)n手工打包,FTP至服務器手工部署n開發構建與部署工具,完成應用構建、部署GOPS 全球運維大會2019上海站團隊級工具化工具化三中心統一的構建和部署工具對構建和部署行為進行了一定的約束和標準化GOPS 全球運維大會2019上海站工具化協作墻標準與規范提高效率質量保障各環節基本還是孤立的有一定標準以人工檢查為主基本靠手工操作GOPS 全球運維大會2019上海站探索(迭代三)n手工打包,FT
3、P至服務器手工部署n開發構建與部署工具,完成應用構建、部署njenkins1.X串聯構建與部署,實現持續集成GOPS 全球運維大會2019上海站團隊級工具化持續集成持續集成使用jenkins1.X串聯構建與研發測試環境部署在持續集成中增加冒煙、打樁等質量檢查GOPS 全球運維大會2019上海站持續集成協作墻標準與規范提高效率質量保障確定了持續集成規范開發中心內的墻基本打通了版本更新門檻降低了,研發測試環境更新可按需發起靜態代碼檢查、冒煙測試等GOPS 全球運維大會2019上海站探索(迭代四)n手工打包,FTP至服務器手工部署n開發構建與部署工具,完成應用構建、部署njenkins1.X串聯構建
4、與部署,實現持續集成n借助自研流水線平臺,完成版本持續交付GOPS 全球運維大會2019上海站團隊級工具化持續集成持續交付持續交付打造持續交付系統,串聯版本過程各環節對標DevOps要求完成系統改造GOPS 全球運維大會2019上海站持續交付協作墻標準與規范提高效率質量保障交付的墻也打通了,逐步往生產延伸建立了交付的標準版本交付的成本降低了,可按需發起質量監控提前,增加了提交階段構建檢查等GOPS 全球運維大會2019上海站探索(迭代五)n優化持續交付工具,實現按需交付n手工打包,FTP至服務器手工部署n開發構建與部署工具,完成應用構建、部署njenkins1.X串聯構建與部署,實現持續集成n
5、借助自研流水線平臺完成版本持續交付GOPS 全球運維大會2019上海站團隊級工具化持續集成持續交付DevOps目錄背景1迭代2路上3后記4GOPS 全球運維大會2019上海站大發布單元的痛 應用功能解耦,發布卻耦合 傳統構建資源受限,等待太多構建分層的構建云 分模塊、分層級的標準化構建 工具賦能,“構建云”在路上-構建GOPS 全球運維大會2019上海站我真是不會裝 部署黑盒,運維無法掌控 部署過程復雜,雜亂無章版本自己裝好就行 部署結構標準化 部署過程標準化在路上-部署GOPS 全球運維大會2019上海站在路上-構建與部署制品庫應用源代碼(構建模型)應用X版本庫B版本庫A組件項目1組件項目3
6、組件項目4組件項目5組件項目2DDL管理數據庫實例6數據庫實例7組件包1組件包3組件包4組件包5組件包2數據庫安裝6數據庫安裝71、結構化組件項目的特點(類別),從而明確:1)構建方法2)部署方法,部署方法應可重復執行,且無順序依賴構建部署組件包,標識需要部署的節點類型。1、組件包可能被其他項目引用,也可能被部署到節點2、組件包不會被拆分部署在不同節點,3、一個組件包,可能部署在多個不同的節點4、一個節點可以部署多個組件包應用節點(部署模型)應用X子系統B子系統A節點類型1節點類型2節點類型3節點類型4子系統C節點類型5節點類型61、一個節點類型可對應多個實際節點,部署的組件包相同2、節點有明
7、確的技術棧說明,從而明確基礎設施定義按照應用版本組織部署,部署時從制品庫獲取本節點涉及組件包,按照組件包自帶的部署方法自動部署。部署組件項目3組件項目4組件項目5組件項目2數據庫實例6數據庫實例7GOPS 全球運維大會2019上海站等等,我先找找在哪 配置散落在四處 配置變更缺乏審計,回溯過程你要的都在這 配置集中分層管理 配置消費市場在路上-配置中心23負載均衡設備深度健康檢查探活WEBAPP配置中心深度健康檢查模塊DB節點庫可用性監控接口頁面路徑配置文件探活頻度+監控配置數據源配置超時設置探活SQL+應用監控可用性監控隔離控制接口應急平臺一鍵式應急個性化隔離擴展各應用實現的模塊本方案實現的
8、模塊圖例:本方案涉及的配置F5信息+由F5/SLB產生心跳,隔離就會產生報警探活異常,就會自動隔離應用主動隔離或一鍵式應急隔離數據庫探活應用探活通用配置個性隔離配置應用私有配置+熔斷策略探活開關GOPS 全球運維大會2019上海站我要的環境在哪里 標準化 自動化隨時可生成的環境 擁抱云、傳統環境定義可描述代碼化 基礎設施即代碼,快速提供在路上-環境管理鏡像倉庫標準軟件倉庫第三方軟件倉庫環境準備環境管理可執行的環境定義GOPS 全球運維大會2019上海站環境可用性-痛痛痛 角色:開發、測試、運維。類型:基礎設施、程序、數據、依賴耦合。精細化冒煙機制 完整性:檢測環境、版本可用性 精細化:細分問題
9、,有效指引解決 數據分析,系統治理在路上-環境可用性簡稱錯誤分類分類說明分類舉例分析人員BASENV基礎環境系統、網絡相關問題IP、端口不可用環境維護人員BASSER基礎服務應用服務相關問題整個URL不可用環境維護人員APPSER程序類應用程序導致的問題程序不可用,DDL不一致開發人員APPBUS案例類腳本本身、數據問題案例腳本或數據導致問題測試人員數據處理 推送結果 分析執行結果匹配處理人員判斷時間閥值發送提醒郵件 Jenkins作業業務類冒煙案例技術類冒煙案例 Jenkins插件分析執行結果匹配處理人員實時發送提醒郵件GOPS 全球運維大會2019上海站用戶的門檻 自動化測試沒有專用環境、
10、數據 質量標準需作用于流水線執行為用戶服務 度量指標自動收集 已建設提交審核流水線、交付門禁在路上-質量保證編碼構建測試部署發布上線門禁門禁門禁門禁度量平臺自動度量自動度量自動度量自動度量GOPS 全球運維大會2019上海站我要的流水線 靈活、分層 組件化,可復用 定制門檻低滿足你的個性要求 標準化組件 分流程、步驟的可視化維護 靈活可編排在路上-版本交付流水線GOPS 全球運維大會2019上海站在路上-自助化,打破傳統墻產品設計開發驗證交付周期提出需求處理等待交付需求效率豎井 各個環節和部門看上去繁忙而高效,但總體的效率和響應能力卻很低。團隊墻無處不在 版本流程冗長 團隊工作門檻高GOPS
11、全球運維大會2019上海站真正意義上的自助化 降低門檻,減少手工 開發團隊驅動版本全流程運轉誰開發誰運維 配置管理、測試、運維工具提升 各類運維服務自供應在路上-自助化,打破傳統墻交付周期提出需求處理交付需求產品設計開發驗證反饋反饋反饋GOPS 全球運維大會2019上海站在路上-持續高效交付有用的業務價值中心資產及管理支撐功能初步具備,持續提升研發設計中GITJENKINSSONARMAVENVAXXADXXTCXXJIRAPAXXSPXXCMDB研發資源自助分支自助創建分支同步管理分支規則管理標簽自助創建與管理分支與需求項關系管理依賴管理制品分級管理質量門禁制品晉級策略變更一鍵回滾構建腳本結
12、構化構建過程組件化構建方式服務化構建自助化構建環境配置標準化構建資源動態分配構建問題精準推送持續集成自助化部署腳本結構化部署能力組件化可視化編排部署方式服務化投產流程一體化流水線可視化部署策略管理研發環境標準化環境搭建自服務環境和依賴配置管理XXX制品管理應用配置全視圖流水線自助創建版本庫及分支模塊VAIM構建管理制品分級管理需求項驅動版本交付制品晉級策略XXX部署管理XXX環境管理開發中心測試中心生產中心提交構建流水線持續集成流水線版本交付流水線交付自助化交接自助化交接標準化投產自助化業研部署自動化緊急補丁流水線變更流水線服務化拆分組件化編排版本持續交付系統需求拆分生產運維數據自助獲取日志自助獲取應用監控預警系統監控預警任務管理需求管理資源統計分析項目管理反饋研發目錄背景1迭代2路上3后記4GOPS 全球運維大會2019上海站1.消除浪費是硬道理 結構化、標準化 代碼化 自助化2.高效交付業務價值 打造我們自己的高效平臺我們一直在路上。后記GOPS 全球運維大會2019上海站Thanks高效運維社區開放運維聯盟榮譽出品