技術中臺建設方法和關鍵設計

轉載本文需註明出處:微信公衆號EAWorld,違者必究。

做爲企業數字化中臺建設支撐的技術中臺,其前臺是企業應用,後臺是企業基礎設施(網絡、存儲、計算等資源),可爲企業數字化中臺建設提供標準化、端到端、柔性(可變化)的軟件生產能力,從而提高企業IT系統建設的效率與可用性。本文節選《金融企業數字化中臺》部份內容,重點介紹如何建設技術中臺。
前端


技術中臺建設的範疇數據庫



汽車製造的全生命週期對應到軟件系統:小程序


  • 部件包括幾種類型:業務組件、集成組件、技術組件和基礎設施組件,這些是軟件系統運行的基本部分,其中業務組件主要由業務中臺、數據中臺提供,基礎設施一旦肯定變化不大,屬於技術中臺的後臺,技術中臺主要關注集成組件、技術組件。
  • 汽車的結構對應到軟件系統就是軟件的技術架構,即軟件系統經過何種方式將部件組合起來運行,相同的部件能夠經過不一樣方式的組合,產生不一樣的運行方式,技術架構能夠分爲企業集成架構和應用技術架構兩種類型,前者是企業中各應用間互聯互通的模式,後者是各獨立應用的運行模式,不一樣業務特徵的應用能夠有不一樣的運行模式;
  • 流程對應軟件的全生命週期過程,一樣能夠分爲產品設計、軟件開發、軟件維護幾個階段,造成幾個軟件工程的「流水線」;
  • 最後,軟件生產也須要不少工具,例如開發工具、監控工具、需求工具等等。


01 應用集成架構:整合企業應用能力後端



 
應用集成架構:整合企業應用能力


所謂集成就是要作整合,從業務使用視角和實施運維的視角看,相關集成組件通常有頁面集成、流程集成、服務集成、數據集成和一些其餘公共的集成所需組件,例如統一身份認證、統一應用門戶框架、統一任務中心、統一組織機構用戶、統一流程集成、服務集成、批量文件傳輸、做業調度等等。

統一身份認證


身份認證或身份驗證(Authentication)就是對應用程序的「訪問者」身份進行驗證識別。訪問者分兩類,一類是須要「用戶」登陸的客戶端;另一類是「API客戶端」,即設備或者應用程序。 

認證過程當中,最多見的身份標識就是帳號和密碼。實際狀況中不一樣渠道的用戶登陸方式不一樣,須要支持各類不一樣帳號登陸。企業內部系統常以員工帳號、密碼登陸爲主,比較統一;而對客類業務帳號類型就五花八門了,如:客戶帳號、手機號、郵箱、身份證號、銀行卡號、法人機構號等等。所以對於不一樣登陸方式的支持,用戶與帳號的關係應爲1:N,即從概念模型上支持一個用戶從不一樣渠道使用不一樣的帳號登陸。 

統一組織機構


組織機構用戶數據是企業運營的基礎數據,IT系統中的業務運行離不開組織機構數據。金融企業的IT建設規模大,動輒數以百計的業務系統,若是組織機構數據聽任由業務系統各自管理維護,會形成數據標準不統一,系統集成統計等工做沒法進行,大量數據的映射轉換工做將讓人望而卻步,長此以往就出現了一個個孤島應用。 

對於組織數據標準化,首先須要定義組織機構、崗位、角色、用戶等組織機構實體的惟一編碼和名稱,編碼格式要有章可循,並制定好編碼規範和管理規則,進而能夠精確到數據庫字段的名稱、類型和長度一致,實現數據標準統一。
 
有了標準化的組織機構數據,並不意味着一成不變。隨着企業發展壯大、業務運營的變化,組織機構也會進行調整以適應新的企業運營模式。結合大型金融企業的一些特色,組織機構數據要具有柔性(可變性)的特色。常見的組織機構的柔性以下:

  • 兼容組織機構數據的多樣性,如:支持「多法人」模式。
  • 在主體框架範圍內,支持不一樣業務維度下組織數據的可變性,如:「多維度」模式。
  • 組織機構數據集成方式的多樣性,如:支持遠程接口調用、數據同步共享等集成方式。

統一應用門戶


企業門戶是企業現有應用與新應用的集成節點,使用戶可以與人員、內容、應用和流程進行個性化的、安全的、單點式的互動交流。它也是一個集成的、可配置的、個性化定製的工做環境,能夠隨時隨地提供給員工、客戶和合做夥伴使用,是企業實現高效管理的重要工具和手段。 

不管是對客或是對內或是面向不一樣終端技術類型的門戶,一般都具有以下特色:

  • 統一應用入口:

(1)與受權服務器集成,支持SSO單點登陸 
(2)建設應用商店,支撐規範化的應用管理 

  • 統一信息出口:

(1)建設內容管理服務,支撐企業信息、知識的通用管理髮布 
2)「內容管理系統」與「業務應用系統」的鏈接與集成 

  • 統一流程協做。  

統一任務中心


任務中心簡單來說就是整個企業業務人員的待辦任務數據池。任務中心能夠接收來自流程平臺或其餘應用系統推送過來的任務、通知、流程等任務數據。業務人員訪問業務門戶的任務中心應用後,對本身當前的任務能夠一目瞭然,這樣既避免了業務人員處理不一樣業務的時候在不一樣的業務系統之間的菜單切換,也方便了業務人員對不一樣業務系統數據之間的比對和分析,使得業務人員將更多的精力專一於業務,進而提高工做效率,節約業務成本。 

建設統一的集中式任務中心,須要從任務數據的生命週期角度全面考慮,即:任務收集、任務查詢、任務結束等幾個階段對任務數據和狀態的管理,同時還須要對於任務中心的集中管理、權限進行考量:

  1. 創建標準化數據模型,集成企業任務數據,被動接收外部收集的數據(推薦)。安全

  2. 對於流程、任務、通知數據的管理,都應該根據其生命週期進行合理的規劃。服務器


ESB和網關之爭


在已有業務系統之間打通服務還是ESB的核心任務。面對新一代數字化轉型中的業務的需求,須要可以圍繞一個簡單、靈活的標準協議對全部新應用進行鏈接,相對而言Web Service協議略顯沉重,ESB因爲其集中式樞紐的地位,快速響應變動對於它來講也不是很合適。 

在數字化轉型時代,在金融企業中 ESB 與API Gateway是共存的,都是IT系統之間的服務集成平臺。ESB做爲系統之間的服務集成的樞紐,網關則在微服務架構體系的業務領域內部進行系統之間集成通訊。不管是ESB仍是網關,做爲服務集成平臺的建設來講,重點應該關注的內容包含:身份驗證、權限管控、服務路由能力加強等方面。複雜的服務組裝、數據、協議轉換工做一般須要編碼開發,靈活度低,容易產生故障,不建議在服務集成平臺中實施,這類工做建議交給負責交易流應用實施的平臺負責。 

企業級公共文件傳輸平臺


統一的文件傳輸解決方案具備集中管理、自動化、實時觸發、無人值守等特性,更適合金融企業的實際需求,能夠助力企業下降成本,加速業務流轉效率。文件傳輸平臺定位爲能夠面向分佈式應用的文件傳輸平臺,應該具有良好的可擴展性、處理性能,且易於管理和維護。要可以抽象各類傳輸場景和模式,提供多樣化的策略配置手段,以達成實現不一樣節點間的文件可靠、安全、高效傳輸的目標。
 
做爲企業級的統一文件傳輸平臺,須要支持多種傳輸的場景,在高效性、高可靠性、安全性、可管控性、平臺自身運維能力等方面着重考慮:

1)支持傳輸場景的多樣性與高效率 
2)支持傳輸過程的可靠性 
3)保障傳輸過程和平臺自身的安全性 
4)提供集中的管控和審計能力 
5)平臺自身易運維 

做業調度


做業調度平臺可以爲系統的集成和運維提供如下價值:

  • 解放人力,提升工做效率
  • 及時告警,減小損失。
  • 多應用分權管理,保護核心功能和資源。
  • 集中式的全面的做業運行情況分析、預警和系統狀態監控。

做業調度平臺建設的關鍵要素

1) 架構層面採用集中管控和分佈運行模式 
2) 做業調度平臺的柔性 
3) 高可靠性 
4) 管理監控運維能力 


02 DevOps:創建數字化的軟件生產線微信



 
軟件生產過程當中的十四大浪費


技術中臺設計原則中提到了精益運營理論TOC,落地以DevOps爲核心的數字化的軟件生產線時也是利用TOC方法論來審視軟件生產的全流程,查找其中的瓶頸、制約因素和浪費,而後考慮和踐行解決方式,經過度量來考察成果。先來看一下廣泛存在的浪費現象。 

金融企業科技部門的主要流程分類


大中型項目全生命週期建設和投產流程,一般用於大型項目羣的管理過程,以及新增系統的建設管理過程。 

小型項目全生命週期建設和投產流程,一般用於已有系統的優化、依據業務或技術迭代進行變動管理的過程。
 
緊急上線流程,一般用於基於SLA保障的緊急處置過程管理。 

數字化的軟件生產全流程融合


基於DevOps的數字化要與軟件生產線全流程相融合,不僅是須要軟件生產的全流程第一級的流程環節,還須要第二級,甚至第三級的子流程(或流程活動環節)。 

咱們建議進行以下梳理工做:

  • 每一個流程活動對應的輸入,明確其必選項和可選項,明確其必選項的檢查標準(是否可將其結構化,是否可經過程序自動檢查其完成程度)。
  • 每一個流程活動對應的輸出,明確其必選項和可選項,明確其必選項的檢查標準(是否可將其結構化,是否可經過程序自動檢查其完成程度)。
  • 每一個流程活動對應的角色,經過RACI(R:流程由誰發起,A:由誰負責審批,C:若有問題諮詢誰,I:流程完成後通知誰)的模型進行表述,從而明確此流程活動的分工操做界面。
  • 要完成此活動須要使用的工具,而且結合其輸入、輸出,可否將其加工生產的過程自動化。

咱們在分析完每一個2、三級子流程(活動)以後,可明確各串聯流程活動之間的交付物(此輸出爲彼輸入),以及交付物的質量標準(必選項是哪些,必選項要完成到什麼程度才能流入到下一流程活動環節),每一個活動的分工梳理清晰以後,才能打通各活動對應的工具造成自動化的工具鏈,使工件自動化流轉。 

打造數字生產線須要作到的五個統一


經過以上的講述,但願你們可以理解,軟件生產過程當中的精益運營沒有那麼的「陽春白雪」,更多作的是「下里巴人」的事情。在工業生產中,精益改進體如今流水線工人是經過按鈕、仍是經過掃描槍、或是經過拉繩通知下游工序環節。若是用了按鈕,按鈕是放在流水線上(會不會引發誤操做),仍是放在旁邊的柱子上(要不要工人起身)。在軟件生產中,其實也是同樣的道理,開發人員的代碼是每日提交仍是單個功能開發完後提交,後續觸發的代碼評審是天天都審覈代碼,仍是按功能點審覈。以上種種都是要在實踐中摸索和實踐才能找到最適合的點,而且每一個組織又由於自身的狀況,解決方式又不盡相同。 

度量與引領性指標必不可少

 
基於金融行業的特色,提供一些度量視圖的建議,從而使咱們經過度量,在瞭解如何建設數字化的軟件生產線基礎上,可以持續優化咱們的生產線。 

  1. 項目羣視角: 項目羣是金融科技管理過程當中一個很具特點的項目協同管理方式。在金融企業中,一般單一業務需求或合併後的業務需求會觸發多個系統的配合改造來知足,這就出現了一個主項目、多個配合項目協同開發、協同投產的狀況。
  2. 部門視角: 部門視角則是由科技管理團隊/部門劃分來決定,併爲部門管理來提供決策支撐。在金融企業中,一般按核心類、渠道類、管理類、信貸類進行部門團隊的劃分。建議將一些引領性指標引入到部門管理之中,並按日/周提供報表、排名、風險等,幫助部門管理者提供決策依據。
  3. 單一系統視角: 對於單一系統,依據系統的重要程度和團隊大小的差別,開發模式一般分爲多月度版本(多特性)並行(如:核心和信貸等系統)和單月度版本串行的模式,也可能根據建設週期的不一樣在二者之間進行切換。

以DevOps爲基礎的數字化生產線

打造敏捷轉型的五橫四縱體系,支撐最大化的業務產出和軟件價值的快速交付:

  • 橫向端到端的工具鏈打通、五大環境標準化與資源流轉、數字化軟件生產線與科技管理各級流程融合、產物及質量門禁標準造成、引領指標造成及精益持續改進,部門間的組織融合
  • 縱向需求、開發、測試、運營的敏捷化轉型,規則、標準、規範的設定,系統間複雜集成架構的構建與支撐


DevOps的本質,是在軟件生產過程當中是落實精益運營思想,杜絕浪費,創建數字化生產線。 

金融行業在引入DevOps以前,須要先考慮如下五點建議:

  1. 小步快跑好過一蹴而就
  2. 沒有「銀彈」
  3. 數字化生產線的建設不能只依賴於工具層面
  4. 精益運營思想
  5. 逐步造成精細化管理


03 微服務平臺:支撐企業應用系統建設網絡




當前應用技術架構微服務化出現的問題與解決原則
 

從管理角度看包括:

1) 過去的架構和微服務架構的關係。
2) 基於開源的技術衆多,選型複雜、困難,而且隨着開源版本的升級,企業自行維護存在困難。
3) 研發團隊如何組織?

從技術角度看包括:

1) 數據一致性問題。
2) 服務調用鏈較長,性能降低。
3) 系統複雜度大幅度提升,由於微服務將系統內的複雜度轉移爲系統間的複雜度了。
4) 微服務應用測試很複雜。
5) 沒有配套工具之配套,沒法快速交付。

須要咱們掌握分佈與聚合的原則,將面向的問題域分門別類創建起來,爲各類技術實現找到明確的定位。分佈與聚合這個矛盾的對立統一,咱們但願達到:

  • 服務分佈、流程統一,即服務是分佈式部署的,可是在業務邏輯上可以統一塊兒來;
  • 數據是分佈,可是對外呈現的信息是聚合的,事務是完整的;
  • 各分佈式模塊的感受(末梢神經)是分佈的,但系統的知覺(大腦)是統一的 

服務分佈,流程聚合:服務調用模式
 

服務調用分爲「服務提供者」和「服務消費者」兩個角色,「服務提供者」將本身的服務地址等信息登記到「服務註冊中心」中,調用者(「服務消費者」)從「服務註冊中心」查詢到提供者的信息,根據這些信息調用服務。 

服務調用有兩種模式,客戶端模式和代理模式:

  • 在客戶端模式下,「服務消費者」在向「服務註冊中心」查詢到本身須要調用的「服務提供者」地址以後,「服務消費者」就會本身根據地址去直接訪問微服務,此時須要客戶端本身實現負載均衡邏輯。
  • 在代理模式下,「服務消費者」經過 API Gateway 組件與微服務、「服務註冊中心」鏈接。「服務消費者」只管去找 API Gateway 訪問便可。至於去註冊中心查詢服務地址,以及訪問服務地址的動做都由 API Gateway 代勞了,最後 API Gateway 在把結果返回給「服務消費者」便可。 

服務分佈,流程聚合:集中式的服務配置管理

 
服務運行一般要設定一些參數,這些參數以往以配置文件的形式存在。此外,咱們在進行業務開發的時候,通常會有多個環境,例如開發環境、測試環境、生產環境,這是傳統的配置文件沒法解決的。 

集中式的服務配置管理,讓咱們告別投產或運維手工修改配置的方式,統一管理全部微服務節點的配置,提高運維的效率。 

配置文件主要有運行前的靜態配置和運行期的動態配置兩種。靜態配置一般是在編譯部署包以前設置好。動態配置則是系統運行過程當中須要調整系統變量或者業務參數。要想作到集中的配置管理,須要注意如下幾點:

1) 配置與介質分離,這個就須要經過制定規範的方式來控制。千萬別把配置放在Jar包裏。
2) 配置的方式要統一,格式、讀寫方式、變動熱更新的模式儘可能統一,要採用統一的配置框。
3) 運行時須要有個配置中心來統一管理業務系統中的配置信息,這個就須要平臺來提供配置中心服務和配置管理門戶。 

數據分佈與信息聚合
 

數據是企業應用的核心,企業應用也是圍繞着數據展開,當系統數據愈來愈龐大的時候,咱們就須要考慮將數據拆分,分而治之。表面上使用微服務架構後,必然出現數據的分佈,實際上正是因爲數據須要分佈,才產生了微服務架構。一方面,隨着目前移動互聯網、物聯網的發展致使數據量愈來愈大,另外一方面「下主機」「自主可控」等架構要求致使單機處理能力有所下降,所以須要進行數據分佈。 

根據 CAP 原理,一致性、可用性、分區容忍性三者沒法同時知足,咱們不奢望找到全能的方案,但能夠應該根據不一樣場景歸集到幾種模式,制定相應的處理策略。 

1.數據分佈的模式

數據分佈主要有兩種模式,垂直拆分與水平拆分。

2. 保證數據一致性的模式 

(一)可靠事件模式
(二)業務補償模式
(三)TCC模式(Try-Confirm-Cancel)

上述幾種模式,常常有人提到下面的問題:

1) 都要求服務提供者在正常的交易以外,提供額外的功能,貌似帶來了代碼的複雜度,加大了工做量。實際上都是業務需求中必備的,例如:TCC 模式在交易系統中都有預扣款這樣的接口,並不會增長實現的工做量。而對於服務的調用者來講,相關服務的調用由微服務框架實現,例如自動的事件投放、自動補償調用、TCC中 CC 服務的調用,也不須要額外的工做量;
2) 如何從當前上下文向補償接口、confirm接口、cancel 接口傳遞參數?實際上只要將正向交易的數據傳遞過去便可,不須要額外的數據;
3) 若是補償仍是失敗,該怎麼辦?仍是須要對帳的。
 
分佈式感受能力的相關技術

 
創建感受能力能夠歸納爲如下四種方式:

1) 心跳監測:提供模擬交易,由系統主動提供運行狀態信息。
2) 日誌記錄:系統將運行狀況記錄下來,用於感受後端服務的運行狀況。
3) 字節碼注入:注入到服務端代碼中,用於感受後端服務的運行狀況。
4) 客戶端埋點:注入到客戶端代碼中,用於感受前端的運行狀況。

聚合式知覺能力的相關技術


「感受」探查到的信息彙總造成完整的「知覺」,例如:

1)健康檢查:知曉微服務健康狀態,瞭解服務的可用性,避免調用到失效服務上。
2)性能分析:知曉微服務運行的性能,瞭解整個系統的瓶頸,在實時分析的基礎上進行預警,在問題萌芽的階段發覺並告警,下降問題影響的範圍和時間。
3)業務監控:知曉業務交易狀況,監測業務訪問量、慢交易數量、業務時延及發生錯誤的次數等各項業務指標。
4)故障定位:知曉微服務的拓撲結構、調用關係和調用順序,實時蒐集信息並進行聚合分析,瞭解系統和應用中發生的事件,儘可能避免故障,而且在發生故障後快速定位故障,減小處理時間。

創建微服務架構下系統的知覺能力,須要多個層面配合完成,是一個系統性的工程,而不是孤立的考慮。咱們把系統的「知覺」能力縱向分爲四個層次,客戶端(Web、H五、APP、小程序等)、服務端(微服務進程)、技術組件(虛機、容器、中間件、數據庫等)、基礎設施(網絡、服務器、存儲等)。「知覺」體現的最終行動,分爲鏈路拓撲、監控、預警、故障定位、趨勢分析等幾個主題;配置中心(CMDB)實現全部涉及到的應用軟件、系統軟件、服務器和網絡設備的配置管理、監控參數設置、業務規則配置,監控中心負責監控展現與告警;分析中心根據「感受」採集的數據進行深度挖掘,積累知識。 

推薦閱讀

數據中臺建設從數據中臺的認知開始
業務中臺建設從結構化需求開始
數字化中臺建設的過程與方法

關於做者黃榮,數字化金融研究院研究員,擅長系統分析和架構設計、金融三級密鑰安全體系及信息安全保障、虛擬化和雲計算技術、JavaEE技術;參與研發的神州商橋電子商務平臺得到「全國電子商務示範單位」稱號;帶領團隊研發的國電通雲終端系統在國網多個省公司推廣應用。架構


關於EAWorld:微服務,DevOps,數據治理,移動架構原創技術分享。長按二維碼關注!負載均衡

本文分享自微信公衆號 - EAWorld(eaworld)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索