實戰丨分佈式架構以及DevOps助力人保壽險微服務平臺建設

實戰丨分佈式架構以及DevOps助力人保壽險微服務平臺建設


實戰丨分佈式架構以及DevOps助力人保壽險微服務平臺建設



歡迎金融科技工作者積極投稿!

各抒己見!

投稿郵箱:

[email protected]

——金融電子化


本文節選自《金融電子化》2019年04月刊

作者:中國人民人壽保險股份有限公司信息技術部 王昭


編者按:本文對人保壽險的微服務平臺建設過程進行了介紹說明。

根據保險行業發展趨勢,目前保險交易已經呈現高頻化、碎片化、場景化等特點,對系統的處理能力、容量、業務連續性、需求和運維響應速度提出了更高的要求。傳統的開發模式效率低、耗時長,同時隨著業務規模地一步步擴大,不合理的架構帶來的維護成本也水漲船高。為提高項目建設的效率、質量、安全性和技術水平,縮短項目建設週期,降低項目建設成本,進而更好地支持業務與技術的發展與創新,人保壽險急需建設應用和服務的技術標準和分佈式應用平臺。

對比傳統部署架構做減法

分佈式應用架構解決了服務器性能的問題。單臺服務器的性能畢竟有限,綜合利用多個節點的處理能力,才能提高整體的服務能力。將不同的業務模塊部署在不同的服務器上,或者同一個業務模塊分拆多個子業務,再部署在不同的服務器上,以此來解決高併發的問題。這樣一來,模塊的內聚性更高,模塊與模塊間耦合度更低,減少了業務複雜度。同時,各模塊對於服務器高可用的需求不同,分佈式的架構部署能夠更充分地利用服務器資源,有效節約項目成本。分佈式應用平臺對於分佈式應用有結構化的管理,相比傳統的管理模式,大大減輕了運維人員的負擔,應用配置的管理可以通過友好的可視化頁面輕鬆完成,同時支持應用配置的實時修改發佈,做到了真正的自動化運維。同時,分佈式應用平臺解決了分佈式應用的監控告警問題,分佈式平臺能夠對每一個應用服務進行實時的日誌監控,出現問題能夠立刻告警通知、相關人員能夠第一時間做出響應,以此保證業務正常運行。

結合實際情況確定微服務分佈式架構

經過項目初期的調研與考察,在人保壽險確定的平臺架構技術如下:分佈式平臺主要以SpringCloud組件為技術支撐,主要用到Eureka作為註冊中心、Feign用來做服務調用客戶端、Ribbon來進行客戶端的負載均衡,Hystrix用來作熔斷、限流和降級。搭配配置中心Apollo、斷路器監控中心Hystrix-dashboard和Turbine,形成一套完整的分佈式微服務架構。分佈式應用邏輯架構總共由以下7部分組成:

服務網關APIGateway:在微服務架構中,所有的服務都變成了一個個細小的API,APIGateway作為整體架構的重要組件,它負責對應用的API進行統一的管理。

微服務平臺:微服務平臺負責應用服務的註冊發現、負載均衡、應用配置的管理、服務調用鏈的監控和告警。PaaS平臺:PaaS作為業務基礎平臺,負責提供公共的各類中間件服務。

管理門戶:提供友好的可視化界面對應用服務進行登記、配置管理、授權以及日誌監控。

DevOps:高效自動化地完成微服務應用的持續構建和持續部署。

SDK:為了在應用系統技術架構上形成統一的技術標準規範和統一的規劃,彌補應用開發和運行缺乏的技術平臺短板,我們向人保提供了SDK腳手架以及開發手冊,降低了開發分佈式應用的門檻,有效縮短了項目進度。

流程和規範的制訂:讓項目的全生命週期得到管控,項目在持續構建的過程中不斷精益提升,在持續發佈的過程中始終可以提供可用、穩定的介質版本。


實戰丨分佈式架構以及DevOps助力人保壽險微服務平臺建設

圖1 微服務分佈式架構


利用SDK開發有效降低開發成本

使用SDK進行微服務開發能夠大大減少項目建設成本。為了在應用系統技術架構上形成統一的技術標準規範和統一的規劃,彌補應用開發和運行缺乏的技術平臺短板,人保壽險根據各個項目組的實際情況制定了開發規範,並且統一使用SDK腳手架進行分佈式應用開發,幫助開發人員理解和使用分佈式應用。SDK提供了包括服務降級、熔斷限流、日誌監控等一站式解決方案,大大降低了開發分佈式應用的門檻,分佈式應用架構的基本功能都做好了封裝,能夠很好地做到開箱即用。開發人員無需在項目前期的開發框架搭建上花費過多精力,能夠更專注業務,這樣一來,開發效率得到了有效提升,項目進度也大大縮短,項目成本也能夠得到有效控制。同時,各個分佈式項目使用統一的框架進行開發,能夠方便項目後期的維護、升級和管理。分佈式管理控制平臺可以無縫地與各應用系統對接,在應用地運行期為應用提供應用註冊發現、配置動態修改發佈、日誌查看等各種能力,真正做到“零成本運維”。


通過DevOps進行持續構建和持續發佈

項目中有用maven編譯的、有用ant編譯的,如移動應用,有android系統的、ios系統的,還有一些前端應用的編譯,如nodejs,這麼多不同的構建環境我們怎麼支持?另外,構建過程中還需要考慮和代碼質量分析,單元測試、介質上傳等能力的結合,這樣的構建過程其實也是一個工作流程。為保證項目質量、始終以交付為核心,DevOps通過編排jenkinspipeline,同時利用BPS流程引擎可以自動化地進行項目構建、發佈流水線的配置,每一次上線都可以做到全自動的流程化發佈,同時支持定時發佈、審批等功能,為項目穩定交付保駕護航。通過一次次自動化構建,人保壽險項目質量的不斷提升,並且始終可以獲取功能穩定的交付物。

解放生產力以交付為核心的自動化

通過這種自動化的方式,DevOps充分解放了開發運維人員的生產力,減少了手工的重複勞動,避免了因操作不當帶來的損失,同時代碼質量檢測可以幫助開發人員發現代碼質量上存在的問題,並給出建議,有效保證了生產的效率和質量。對於人保壽險微服務應用進行持續集成和發佈,我們很好地利用了DevOps的特點,對微服務類應用進行自動構建、自動發佈、自動部署,大大減輕了開發人員運維人員的負擔。利用DevOps的發佈流水線,我們成功打破了傳統項目實施的“黑箱”狀況,讓整個CICD流程完全透明,我們可以對所有階段的情況進行細粒度的管理和清查,讓流程得到有效管控、透明化,在保證項目質量的前提下按時交付。

定製化的構建定義做到了降成本縮週期保質量

針對人保壽險的微服務應用,DevOps定製化了一套持續集成的構建定義,打通了從配置管理代碼庫到部署環境的鏈路,自動化無干擾的進行代碼編譯、質量檢查、資產管理、部署發佈及相關操作,真正做到了通過自動化的方式保證項目質量,縮短項目週期,降低項目成本的同時提高生產效率。

截至目前,人保壽險的一體化項目、微信項目、大數據項目都已經使用DevOps進行項目的持續集成、持續部署了,創建了50+構建定義,每天構建次數100+。同時,我們在DevOps實施過程中走訪了多個項目組,瞭解當前人保壽險項目組的開發模式。根據訪談結果,先後制定了多種開發規範,管理建議,並將持續地進行優化,通過項目不斷地精益項目管理,代碼開發的方式方法,持續改進。我相信,隨著DevOps的推廣,將來會有更多的項目使用DevOps進行項目部署。人保壽險通過分佈式平臺的建設以及DevOps的使用,成功地降低了開發成本,提升了工作效率,最終實現了按時交付的項目目標。怎麼才能更好地編排構建流水線?怎麼才能讓DevOps更貼近我們的業務,更好地與分佈式平臺整合?自動化運維之路還很長,做好DevOps,就是向自動化運維邁進的第一步。



訂閱《金融電子化》《金融安防》《金融客服》

可登陸官方淘寶店鋪:http://jrdzh.taobao.com

有疑問可拔打電話:010-88232440-858進行諮詢

《金融電子化》新媒體部:主任 / 鄺源 編輯 / 潘婧

實戰丨分佈式架構以及DevOps助力人保壽險微服務平臺建設


相關推薦

推薦中...