螞蟻金服互聯網IT運維體系實踐

摘要: 本文來自螞蟻金服首席技術架構師,基礎技術部負責人胡喜。從2010年支撐雙十一最高交易峯值2萬筆/分鐘到2015年雙十一的8.59萬筆/秒,螞蟻金服的技術架構和運維體系一直都在不斷摸索和實踐。本文就「互聯網IT運維體系」這一主題,和朋友們分享螞蟻金服在該領域的實踐經驗。web

8月30-31日20:00-21:30,一場別開生面的技術大會—— 「螞蟻金服&阿里雲在線金融技術峯會」將在線舉辦。本次將聚焦數據庫、應用架構、移動開發、機器學習等熱門領域,幫助金融業技術開發者深刻解析互聯網應用的前沿應用與技術實踐。
螞蟻金服&阿里雲在線金融技術峯會專題: https://yq.aliyun.com/activity/109
峯會統一報名連接:http://yq.aliyun.com/webinar/join/38

本文做者及簡介:胡喜 螞蟻金服首席技術架構師,基礎技術部負責人。2007年加入支付寶,主持支付平臺基礎技術的架構設計與研發工做,而且參與螞蟻金服幾代核心支付平臺的架構設計和系統研發工做,如今主要的研究領域在分佈式高可用技術平臺和雲計算方面。數據庫


正文:安全

 

從2010年支撐雙十一最高交易峯值2萬筆/分鐘到2015年雙十一的8.59萬筆/秒,螞蟻金服在技術架構和運維體系方面不斷摸索實踐所取得的成果。在這個過程當中,以持續技術演進和創新來支撐互聯網金融業務的飛速發展,服務互聯網金融生態夥伴,助力更多中小型金融機構成功向新金融轉型發展和創新,是螞蟻金服在技術持續發展道路上所堅持的願景。 服務器

螞蟻金服長期致力於技術運維體系建設,有效保障歷年雙11的平穩運行,在大促當天業務量年年翻倍的基礎上,持續保持系統可靠安全、無資金差錯和順暢的用戶體驗。茲經過本文就「互聯網IT運維體系」這一主題,和各位致力於金融業IT信息化建設的同行朋友們分享螞蟻金服在該領域的一些實踐經驗,以拋磚引玉互通有無。網絡

1、螞蟻金服總體運維體系構成

螞蟻金服的運維體系由三個主要版塊構成:運維架構、運維平臺、組織機制 。以下圖所示:
1ce7d31f0135aa8f36e5eb5d9b378386d71dfb29

經過一系列相互支持的分層元素的有機結合,造成一個完整的運維體系,來保障互聯網金融業務的連續性。架構

(1)運維架構:奠基了架構基礎,做用於IaaS層,目的在於經過必定的架構設計,使得基礎設施可以達到高擴展性和具有快速容災的能力;目前螞蟻金服總體運維架構,採用的是自研的「異地多活架構」,與傳統的「兩地三中心」部署架構有所不一樣。運維

(2)運維平臺:是互聯網金融運維的重點設施。爲了具有高效、安全、智能的系統運維能力,提升運維效率和保障系統穩定,螞蟻金服基於運維平臺化、數據化的設計理念,集合大數據計算和雲計算的能力,造成了可控的金融級運維能力。其中包括金融安全風險控制能力、金融級業務連續性自動化保障能力等,並總體上造成了螞蟻金融雲PaaS解決方案。機器學習

(3)組織機制:做爲運維體系的重要組成,組織機制保障了在運維過程當中可以充分發揮運維架構和運維平臺的強大合成能力,達成系統持續可用的最佳狀態。異步

下面將結合雙11大促的具體應用場景從三方面進行介紹:
  1. 「異地多活」的運維架構
  2.   金融級業務連續性與自動化保障
  3.   業務連續性能力的組織機制保障    

2、「異地多活」的運維架構

螞蟻金服的運維架構定義了基礎設施和應用系統等在IDC上的部署架構。隨着螞蟻金服業務的快速發展,傳統以IDC爲基礎運維單元的「兩地三中心」運維架構已經很難知足需求。當前螞蟻金服已經演化造成「異地多活」的運維架構,以單元化機房(後面簡稱爲LDC)爲基礎運維單元,以知足快速發展的互聯網金融業務對基礎設施擴展和容災的高時效性、金融級安全性要求。分佈式

傳統運維架構的部署模式,主要面臨如下三個問題:

一、基於IDC的運維部署管理模式,在系統規模愈來愈大、複雜度愈來愈高的狀況下,不管是網絡、DB仍是應用層面,其伸縮性能力沒法持續提高,很難匹配各個層面的容量增加,將沒法知足業務快速發展的要求。

如:「在應用服務器完成擴容以後,發現DB鏈接數和事務數又成爲了瓶頸;等DB完成擴容,又發現網絡帶寬已經不夠,須要對網絡帶寬進行擴容」;「當應用擴展到必定程度,DB的鏈接數成爲突出瓶頸,對於傳統的全部應用鏈接到一個DB分庫上的架構部署模式,這個問題十分棘手」以上所面臨的挑戰,推動螞蟻金服的運維架構向可按更小單元維度擴展的更優可伸縮方案演化。

二、對單元進行標準化建設的過程,便是對總體運維架構進行標準化的過程。單元標準化,須要保障每一個單元的內部設施必須徹底一致,標準化、可管理、可複製,而如何屏蔽各個IDC自身的基礎設施差別性,是其中的一大挑戰,這對總體運維管理提出了更高的要求。

三、傳統IDC架構只能實現「兩地三中心」的容災架構,該架構模式下,異地容災系統通常是「冷」的,其備份系統的功能完備性和切換時長均很難保障和控制,投入了大量建設成本,但可能會陷入「有而不敢用」的怪圈。在飛速發展的互聯網金融應用場景下,要求運維架構上突破「兩地三中心」的傳統模式,向N+1「多活」的災備方案演進,進一步提高故障恢復的體系性能力。

針對以上挑戰和需求,螞蟻金服提出了「LDC」架構,其核心思想是:把數據水平拆分的思路,向上提高到接入層、終端層,從接入層開始,把原來部署在一個IDC中的系統集羣,進一步分紅多個更細粒度的部署單元。該部署單元有如下三個特性:

1. 每一個單元對外是封閉的,在一個單元內的系統調用鏈路和各種存儲訪問是局部化在本單元內的;

2. 每一個單元的實時數據是獨立不共享的;會員或配置類信息等對延時性要求不高的數據全局共享;

3. 單元間的通訊統一管控,儘可能以異步化消息進行通訊;同步調用則經過單元間代理方案實現。

 

該架構解決了如下四個關鍵問題:

1. 因爲儘可能減小了跨單元交互和使用異步化,使得異地部署成爲可能。整個系統的水平可伸縮性大大提升,再也不依賴同城IDC;

2. 能夠實現N+1的異地災備策略,大大縮減災備成本,同時確保災備設施真實可用;

3. 整個系統已無單點存在,大大提高了總體的高可用性;同城和異地部署的多個單元可用做互備的容災設施,經過運維管控平臺進行快速切換,有機會實現100%的持續可用率;

4. 該架構下業務級別的流量入口和出口造成了統一的可管控、可路由的控制點,總體系統的可管控能力獲得很大提高。基於該架構,線上壓測、流量管控、灰度發佈等之前難以實現的運維管控模式,如今可以十分輕鬆地實現。

2013年螞蟻金服完成了同城LDC的落地,並順利經過了2013年大促的考驗。2015年在同城LDC架構的基礎上,進一步升級完成「異地多活架構」併成功支撐了2015年大促的全天平穩運行。

「異地多活架構」是指基於LDC的擴展能力,在不一樣地域的IDC中部署LDC單元,而且每一個LDC單元都是「活」的,是真正承接線上真實業務流量的,在發生故障時,能夠進行LDC單元之間的快速切換。

這比傳統的「兩地三中心」架構有更好的業務連續性保障。「異地多活架構」下,一個LDC對應的災備LDC是一個「活」的LDC,平常就在承接真實業務流量,其穩定性和業務的正確性是一直被確保的。

 

如下是螞蟻金服「異地多活架構」示意圖:

2d6ff11aa2682721427586dfccfda09583f1453b

除了具有更快速的故障應急隔離和恢復能力以外,基於LDC架構,螞蟻金服還具有了「藍綠髮布」和「灰度發佈」的可靠變動驗證能力。在單個LDC單元內部,又分紅A /B兩個邏輯組,A/ B組部署的系統鏈路是徹底相同的。平常狀況下,調用請求按照對等機率隨機路由到A組或B組 。當開啓藍綠髮布模式時,上層路由組件會調整路由計算策略,隔離A組與B組之間的調用,A組內應用訪問封閉在A組內,而不會去訪問B組。

以上粗略概況介紹了螞蟻金服的底層運維架構,對應於IaaS層次,重點闡述了從傳統IDC部署架構模式到基於LDC的「異地多活」架構的升級演進。下面將基於運維架構,介紹運維平臺的部分,即金融雲PaaS層次。

3、金融級業務連續性與自動化保障

在2015年雙十一當天,螞蟻金服的支付峯值達到8.59萬筆/秒,其中業務上關於支付工具和支付場景的規則達數百種,涉及的安全規則達上萬種。不難想象,爲了支持這些業務規模,須要管控的運維設備規模和程序代碼變動頻次的規模將是十分巨大的。(螞蟻金服的十幾個業務部門共計數百個業務,每週發一個版本,雙11大促準備期間的頻率更高)。

按照傳統的方式很難高效、高質量地管理規模如此龐大的複雜系統,解決方案即是經過運維平臺的建設,經過提供更高效、更安全、更智能的運維能力賦能於運維工做,從而支撐業務的快速穩定發展。

1. 高效 : 經過運維工做的平臺化來提升運維效率。如系統監控平臺、變動管控平臺、動態資源管控平臺、調度中心、註冊中心等。

2. 安全: 基於自動業務驗證平臺和大數據運算規則,保障系統運行的穩定性與正確性。如數據覈對中心、依賴管控平臺、容量檢測管控平臺等。

3. 智能:基於大數據的分析和規則計算,進行智能化的運維管控。如自動故障分析處理系統、容量自動探測擴容系統等。

下面經過大促中的2個場景,也是平常運維過程當中常見的兩個場景(集羣容量管理和故障應急處理),來總體介紹運維平臺這三個特性的具體體現。

 

場景一(自動化容量管理):經過自動化的全鏈路壓測、自動化的容量模型計算、自動化鏈路收集、自動化的擴容來實現平常的系統容量管理。

大體的步驟以下:

(1) 首先,經過「全業務路徑壓測」的方式,探測系統的容量瓶頸點。基於 LDC架構,在全鏈路壓測以前,爲每一個LDC單元建立「影子LDC」,其數據與提供線上服務的LDC單元自然隔離,但充分利用了真實服務器集羣的容量能力,能夠有效的對線上實際容量進行探測驗證。

(2) 經過基於大數據分析的監控系統,動態收集系統的運行時性能指標。

(3) 根據業務鏈路和容量模型,進行容量的瓶頸點分析。

(4) 彈性伸縮,進行擴容/縮容:對於內部系統,會計算出最後實際須要擴容的容量,經過PaaS平臺,一鍵進入擴容流程,通過審覈後,自動進行系統彈性擴容。若是是合做夥伴的瓶頸,會進行流量控制,而且通知合做夥伴擴容。

在本場景中,經過應用大數據和智能決策技術,可以高效、安全完成彈性容量管理工做,實現精益化運維。

 

場景二(自動故障處理):當故障發生時,監控系統經過對系統指標的監控,斷定出受影響的業務和相關係統鏈路;經過大數據計算找到故障根因;結合變動和應急預案,直接提示應急方案,直至最後聯動到應急平臺,自動執行應急預案。

大體步驟以下:

(1)經過業務指標監控,快速發現有錯誤的業務;

(2)根據各個維度指標的計算,斷定業務SLA的損失量是否達到須要啓動應急預案的級別;

(3)根據業務管控策略配置,自動通知(旺旺、短信、電話等方式)相關人員上線進行應急處理;

(4)運維平臺根據業務鏈路上系統依賴狀況的梳理,繪製系統依賴圖;根據系統鏈路圖、錯誤數據、系統響應時間等數據,智能判斷出錯誤源頭,並根據變動管控信息,判斷是否因爲變動操做(線上發佈、數據變動、網絡變動、動態開關推送等)引發;

(5)根據變動信息和故障設備的應急策略,智能決策應急方案,發起人工介入審覈應急處理流程,或者自動啓動應急預案處理故障。

經過運維平臺的建設,可以高效、高質量地完成複雜的應急工做,併爲知識積累提供載體,使運維質量和效率再也不依賴於我的的經驗和智慧,使全部運維人員均可以勝任高效的平常運維。

4、業務連續性能力的組織機制保障

在組織機制保障,螞蟻金服構建了三道信息科技風險管理防線。

48fe4af797655bf3360812e056ddc4c1f1e4cb59

除此以外,螞蟻金服還根據互聯網金融的人員、組織特徵,構建了多層次的組織機制保障體系,以保障總體架構規劃實施、制度規範可以很好地在一線團隊落地,保障從規劃到執行的高質量落地;而且一線團隊的實際問題能夠反饋到上層架構組織和管理層,副作用於運維架構和運維平臺的持續優化發展,進一步推動系統架構和運維水平向更高級別演進發展。

5、將來是雲的時代

隨着業務和運維架構平臺的不斷髮展,除了自己平臺能力朝着更高效、更安全、更智能方向提高以外,還嘗試把運維平臺和人員組織進行「雲」化,可以快速支持螞蟻金服集團內部業務發展,爲業務團隊快速具有DevOps運維能力賦能。

螞蟻金服在精粹提煉多年技術沉澱的過程當中,研發了「螞蟻金融雲」技術平臺。該平臺深度濃縮了螞蟻金服對將來金融系統IT運維發展方向的沉澱總結。整個平臺體系從應用運行時、彈性服務、基礎服務、交付管理等幾個方面,對總體從研發到運維的技術平臺進行整合。   

該平臺不只爲研發人員提供了一套標準研發模型,也爲運維人員提供了一套標準運維模型,這套基於金融雲技術的體系,使得架構更替對研發人員更透明,也屏蔽了不少技術複雜性,讓總體架構更容易管控和進行可靠運維,大大提升了對創新業務的快速支撐能力。

這一技術平臺的強大支撐,在螞蟻的理財業務、保險業務、芝麻信用、網商銀行等多個創新區域獲得了驗證。經過基於「螞蟻金融雲」的運維體系,幫助咱們在快速創新的過程當中不斷下降成本。隨着螞蟻金服「互聯網推動器」計劃的推出和實施,螞蟻金服但願在5年內助力1000家中小型金融機構向新金融轉型升級。

互聯網金融IT系統的運維建設之路,後續期待和各位同行更多的交流和一塊兒大力推動發展。
相關文章
相關標籤/搜索