溫馨提示×

溫馨提示×

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

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

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

發(fā)布時間:2020-08-10 21:17:33 來源:ITPUB博客 閱讀:114 作者:螞蟻金服科技 欄目:互聯(lián)網科技

小螞蟻說:

在金融級互聯(lián)網產品持續(xù)交付方面,螞蟻金服積累了豐富的經驗和最佳工程實踐。在2018年ATEC技術探索大會上,螞蟻金服解決方案架構師呂中邦(鳳啟)從行業(yè)背景出發(fā),分析了金融級互聯(lián)網產品持續(xù)交付的核心挑戰(zhàn),從“更快更早地交付價值”和“守住技術風險底線保障交付質量”兩個維度分享了螞蟻應對這些挑戰(zhàn)的最佳工程實踐做法,最后還介紹了螞蟻研發(fā)效能平臺支撐持續(xù)交付的實踐經驗。跟著小螞蟻一起來學習吧~


一、行業(yè)背景與主要挑戰(zhàn)

數(shù)字化轉型的大背景下,企業(yè)需要打造多方面的核心能力,這些能力客觀上要求企業(yè)升級或者采用新一代的技術架構。其中非常重要的一個環(huán)節(jié)就是基于云端的基礎設施、分布式架構下的持續(xù)交付。談到持續(xù)交付,很容易想到一些具體的挑戰(zhàn):比如如何縮短新業(yè)務產品的研發(fā)與投產時間,快速響應細分客戶需求;如何應對分布式微服務架構帶來的業(yè)務場景復雜和高并發(fā)挑戰(zhàn);如何通過技術手段推動自動化減少研發(fā)過程中的人工投入等等。

此外,我們還需要認真審視所處的行業(yè),到底有怎樣的特點。金融互聯(lián)網產品最核心的兩個關鍵詞,第一個就是“ 金融 ”。 金融屬性最重要的是保障資金、安全、高可用,歸結成一個字——“穩(wěn)” ;另外一個關鍵詞“ 互聯(lián)網 ”, 最顯著的特征就是快速交付價值,支持業(yè)務的快速創(chuàng)新,我們把這歸結成另外一個字——“快” 。不僅要快而且要穩(wěn),這就是金融互聯(lián)網行業(yè)的基本特質,看似矛盾的兩個方面,缺一不可。

談到“穩(wěn)”和“快”,螞蟻金服做得怎么樣呢?分享上財年的幾個實際數(shù)據(jù):線上服務可用率——100%;每天應用發(fā)布超過150次;迭代平均研發(fā)周期5.8天;測試自動化率超過了80%;運維自動化率超過98%。


干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對


基于數(shù)字化轉型背景和行業(yè)的基本特征,我們認為金融互聯(lián)網產品在持續(xù)交付領域最核心的挑戰(zhàn)是: 如何兼顧快和穩(wěn)?既能夠敏捷快速地交付價值,又可以穩(wěn)妥創(chuàng)新、守住技術風險底線、持續(xù)滿足監(jiān)管合規(guī)的要求 。


二、敏捷交付——如何更快更早地交付價值

本章節(jié)分四個部分展開,首先是精益研發(fā)流程定制和多樣化分支與發(fā)布策略,主要解決我們的體系或流程如何適配不同業(yè)務場景,正確的路徑和姿勢是研發(fā)交付提效的基本前提。

其次是職能服務化、高效聯(lián)調和問題診斷,這兩個部分主要是闡述如何通過技術或自動化手段解放人肉、提高效率。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對


1. 精益研發(fā)流程定制

說到流程定制,很多人會問:我們依據(jù)什么來定制研發(fā)流程?在螞蟻我們有一個比較有效的做法,那就是依據(jù)應用分級。應用分級主要考慮三方面的因素:依賴服務的調用量,日交易資金量,以及每日的PV和UV。根據(jù)這三個方面我們定義了從A1-C4十二個不同的應用級別,然后為每個級別的應用設置基線的研發(fā)規(guī)則,在基線規(guī)則之上我們還支持各業(yè)務去自定義附加的風險管控措施。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

舉兩個例子,一是按需配置流程。螞蟻金服的業(yè)務非常復雜和多樣,有些比較核心的業(yè)務系統(tǒng)穩(wěn)定性要求非常高,相應配套的技術風險防控措施、測試驗證環(huán)節(jié)就會比較完善;反之,一些新業(yè)務或內部服務系統(tǒng)會傾向于更快、更早地上線,流程相對來說會更輕量、更敏捷。二是可編排、可擴展的流水線,效能平臺的組件中心定義了很多質量檢測組件,其中包括第三方或業(yè)務自建的組件,通過平臺的編排能力為不同的業(yè)務編排個性化的流水線模板。有些應用強制做代碼評審,有些應用需要通過CI的自動化測試或某專項測試之后才能向下推進,類似的場景都可以通過流水線編排來實現(xiàn)。


2. 多樣化分支和發(fā)布策略

關于分支模式和發(fā)布策略,螞蟻主要有四種玩法。

首先是日常發(fā)布 ,我們把它比作一輛定期發(fā)車的火車,適用于全站的核心業(yè)務系統(tǒng)、應用之間關聯(lián)性比較強的場景。

第二種是獨立發(fā)布 ,我們把它比作一輛小汽車,想什么時候發(fā)車就什么時候發(fā)車,適用于獨立業(yè)務域、應用間有一定耦合和關聯(lián)的場景。

第三種是單應用發(fā)布 ,我們把它比作是一輛摩托車,適用于業(yè)務獨立性更強、與其他業(yè)務在架構層面完全解耦的場景。前三種模式通常采用分支開發(fā)主干發(fā)布的模式。

最后一種緊急發(fā)布 ,我們把它比作救護車,適用于緊急業(yè)務需求或線上故障的解決,通常采用分支開發(fā)分支發(fā)布的模式。

通過這四種模式,螞蟻所有的業(yè)務場景基本得到覆蓋,各業(yè)務可以根據(jù)自己的需要找到匹配的玩法。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

3. 職能服務化

介紹完了敏捷交付的姿勢和路徑,接下來看看自動化提效方面。

通常在一個研發(fā)迭代中,會涉及到很多職能部門,傳統(tǒng)的做法是各職能團隊基于經驗復核進行人肉的風險管控。比如,當開發(fā)人員完成了編碼、自測,就會有安全、風控等職能團隊層層把關,基于經驗進行審核,“部門墻”會嚴重影響協(xié)作和交付的效率。在螞蟻,各職能團隊的協(xié)作方式完全不同,他們不再直接參與到項目迭代中,承擔迭代驗證和審核這種重復機械的活動,而是轉型為能力輸出和自動化工具建設,實現(xiàn)職能服務化,從而對業(yè)務的開發(fā)測試團隊進行賦能,這種模式大大提高了研發(fā)協(xié)作的效率。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對


4. 高效聯(lián)調和問題診斷

金融互聯(lián)網產品的業(yè)務場景非常復雜,搭建項目環(huán)境是是一個非常耗時耗力的事情。比如一個交易鏈路涉及20個應用,一般的做法是在研發(fā)迭代過程中給每個應用部署一遍,最后形成聯(lián)調環(huán)境。螞蟻的做法又會不同,首先我們搭建了一個共享的STABLE環(huán)境,在研發(fā)迭代中只需要針對有變更和修改的應用進行部署,然后通過sofarouter分組能力把所有20個應用關聯(lián)在一起就形成了聯(lián)調環(huán)境。這樣做不僅大大提升了效率,還最大化利用了測試資源。此外,當代碼發(fā)布上線之后,平臺會自動更新STABLE環(huán)境保證其為最新代碼。

如果在聯(lián)調過程中發(fā)現(xiàn)問題,如何在如此復雜的鏈路中定位和診斷問題也非常重要。開發(fā)同學可通過TraceID或交易號查詢鏈路圖、時序圖,直觀全面地了解應用間的調用交互信息,再結合業(yè)務日志就可以非常容易地找到錯誤應用并定位問題根源。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對


三、穩(wěn)妥創(chuàng)新——守住風險底線保障交付質量

本章節(jié)同樣分四個部分來探討,其中技術風險評估、質量內建、測試驗證是按照開發(fā)的事前、事中、事后的邏輯來展開,最后向大家分享我們是如何守住安全底線、保障信息安全的。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

1. 數(shù)據(jù)賦能技術風險評估

毫無疑問,開發(fā)事前的技術風險評估是非常重要的。螞蟻的技術風險評估主要基于兩大輸入來做:第一是需求輸入,第二是治理分析相關數(shù)據(jù)輸入和賦能,后者對我們來說更為重要。開發(fā)同學可以非常便捷地獲取應用依賴、服務調用、消息巡檢、組件管控、代碼檢索等數(shù)據(jù),全面準確地評估變更帶來的技術風險,基于這些數(shù)據(jù)和分析,就輕而易舉地確定風險應對策略,做到有效的閉環(huán)的反饋。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

2. 內建質量實時閉環(huán)

開發(fā)的事中——內建質量與實時閉環(huán)反饋,幫助開發(fā)人員在第一時間把事情做對。在螞蟻內部,我們鼓勵基于gitflow的最佳實踐,通過MergeRequest方式而不是Push方式向項目分支或主干提交代碼, 給代碼門禁、CI檢測一個機會。事實上Pipeline流水線的所有節(jié)點和組件都是可編排、可擴展的。在提交代碼之后,每執(zhí)行完一個組件,平臺都會實時反饋結果,并自動更新迭代的質量數(shù)據(jù),協(xié)助開發(fā)測試同學管控質量風險。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

3. 全環(huán)境和業(yè)務分層驗證

開發(fā)的事后,也就是測試驗證部分,我們分享兩個點:第一是全環(huán)境驗證,從開發(fā)》集成》預發(fā)》灰度一步步接近和模擬生產環(huán)境,確保生產發(fā)布沒有問題。第二是業(yè)務分層驗證,在每個環(huán)境,都有對應的測試手段。比如壓測,很多公司都在做,但多基于線下環(huán)境進行,而螞蟻會直接在生產環(huán)境里做壓力測試,真正做到系統(tǒng)的高可用。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

4. 信息安全保證

穩(wěn)妥交付的最后部分,在保障信息安全方面,螞蟻有一套完整的體系:在需求設計評審階段,架構師會評估業(yè)務風險;在開發(fā)階段,首先SOFA框架自身的安全是有保障的,其次每次代碼提交我們都有安全的自動掃描,此外還會有專項的安全測試;最后在系統(tǒng)上線之后,我們有專門針對安全的監(jiān)控和應急機制。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對


四、研發(fā)效能平臺AntLinkE支撐

前面我們不僅介紹了如何敏捷交付,還介紹了如何穩(wěn)妥創(chuàng)新,接下來分享工具平臺層面是如何支撐整個持續(xù)交付過程的。

1. 平臺簡介

螞蟻研發(fā)效能平臺所做的事情,主要歸結為三個方面:

  • DevOps—一站式開發(fā)集成持續(xù)交付

  • DevMind—實時多維的數(shù)據(jù)分析賦能研發(fā)過程

  • DevServices—為研發(fā)者提供高效技術支持和咨詢服務

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

2. 產品大圖

下面是我們的產品大圖,頂部是平臺支撐的業(yè)務和交付的價值,底部DevOps、DevMind、DevServices三方面的主要能力,今天我們重點來介紹一下中間的產品層。

首先是持續(xù)交付,從創(chuàng)建迭代開始,到發(fā)布上線結束,為整個研發(fā)生命周期提供支撐。下面是配套的子產品:研發(fā)協(xié)作管理項目、迭代和需求;代碼服務提供代碼托管、代碼搜索、CR等能力;IDE是螞蟻比較有特色的產品,可以幫助開發(fā)人員第一時間做代碼掃描,還與效能平臺的Web端做了整合和集成打通,開發(fā)人員不用頻繁切換工作臺來開展開發(fā)工作;測試服務支持測試管理、自動化測試;問題診斷依賴分布式鏈路和業(yè)務日志快速定位和解決問題。最下面是研發(fā)洞察,在研發(fā)過程中,無論是IDE端還是研發(fā)效能平臺的Web端,都會沉淀大量數(shù)據(jù),這些數(shù)據(jù)是非常寶貴有價值的資產,我們通過對這些數(shù)據(jù)進行采集、統(tǒng)計、分析來驅動整個研發(fā)體系和組織的持續(xù)優(yōu)化和升級。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對

3. 一站式持續(xù)交付解決方案

一站式持續(xù)交付解決方案如圖所示。中間部分是研發(fā)效能平臺,提供了從需求到發(fā)布的持續(xù)交付引擎,將所有相關的能力和工具串接在一起;底部是應用PAAS平臺,效能平臺通過openAPI與之交互,打通環(huán)境管理和環(huán)境部署等功能;右側是分布式中間件,研發(fā)效能平臺通過研發(fā)容器,統(tǒng)一管理多環(huán)境的中間件配置,既實現(xiàn)環(huán)境間的隔離,又實現(xiàn)了環(huán)境間的自動轉換和同步;此外研發(fā)效能平臺與技術風險防控平臺打通,把技術風險防控的措施落實在研發(fā)過程中;此外,螞蟻研發(fā)效能平臺先天具備開放集成能力,可以通過組件的方式對接企業(yè)自有的工具平臺,最大化發(fā)揮既有資產的價值。

干貨 | 金融級互聯(lián)網產品持續(xù)交付的挑戰(zhàn)與應對


五、結語

無論對內部還是外部,螞蟻研發(fā)效能平臺一直秉承并將繼續(xù)追求這樣一個初心—— 提升研發(fā)者幸福感,提高企業(yè)創(chuàng)新效率,讓我們一起重新定義研發(fā)!


向AI問一下細節(jié)

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

AI