段 莉,劉俊杉,鄭培偉
(中國移動通信集團設計院有限公司黑龍江分公司 哈爾濱150080)
隨著移動E 聯網時代到來,客戶接觸渠道多樣化,客戶接觸數據、客戶描述信息等數據大量增多,CRM(Customer Relationship Management,客戶關系管理) 處理業務量和數據量的增長速率遠大于用量的增長速率,相應突發大規模訪問的需求增多,瞬時高流量并發處理是即將面臨的問題,如淘寶“雙十一”瞬時交易量增長10 多倍,對系統響應的實時性要求不斷提高,對系統性能提出新的挑戰。
為助力公司構建移動E 聯網時代的競爭優勢,推進兩級支撐系統的云化、E 聯網化和共享化的同時,針對突出的痛點問題,集團公司啟動2014年CRM 系統云化架構改造試點工作,提升服務標準化,實現分布式數據部署和加強安全管控。
CRM的轉型要求從傳統的CS/BS 計算模式(Server-Centric)逐步向SMAC 計算模式轉型,實現全云化CRM(Service-Centric),具備大數據實時驅動、動態高彈性架構、能力集成與外延等特征。CRM架構轉型示意如圖1 所示。
遵循支撐系統持續演進規律,充分考慮現有系統的痛點訴求,采用“先緊急后普通、先易后難、從外圍到核心”的方式,逐步實現運營支撐系統的x86 化。以關鍵應用分布式/小型化改造為基礎,搭建開放化、標準化的軟硬件架構,支撐動態能力擴展,控制運維成本。CRM 體系架構概念圖如圖2 所示。
省級CRM 系統技術架構應逐步支持x86 平臺,并向低成本的x86 云化基礎設施部署或遷移。通過應用接入分通道,對資源進行集群化,全面均衡各通道的系統壓力,提高系統資源的整體利用率。當硬件資源實施池化后,即可支撐CRM 應用的彈性伸縮,實現硬件的按需分配,充分提高資源利用率。
(1)接入層
接入層主要承載負載均衡軟件,如F5、Radware,直接負責用戶Web 請求接入層,可以實現在x86 上的部署。
建議方案:接入層全部實現刀片化,實現x86化遷移和處理。
(2)應用層
應用層基本由Tuxedo 中間件及Web 中間件承載,應逐步向x86 體系轉移。
建議方案:應用層為非Java 中間件的,支持系統向x86 主機遷移;應用層為Java 中間件的,支持將應用層遷移至x86 刀片機。
數據層目前主要承載在Oralce 數據庫上,逐步向MySQL/NoSQL 數據庫做嘗試性遷移。
建議方案:數據層應逐步在某些非核心業務模塊試用MySQL 等開源數據庫,逐步探索和嘗試;逐步引入分布式數據庫,管理非核心數據及查詢類數據。
構建業務支撐系統IT 資源池,包括Power 資源池和x86 資源池,云平臺通過Wincenter 實現對Power 刀片服務器和x86 架構服務器的管理。WCE是Wincenter的重要功能模塊,底層硬件支持x86架構服務器,支持Xen 虛擬化技術,實現對x86 架構服務器的管理。IBM PowerVM 和IBM System Director 是Power 資源池的管理組件,Wincenter 通過SCE 組件,實現對Power 刀片服務器的管理。具體如圖3 所示。
除CRM 核心數據庫外,CRM 云化架構中的服務器均部署在IT 資源池上。其中,內部服務總線服務器部署在Power 資源池上,采用Power Linux 系統;接入展現層服務器和后臺應用服務器均部署在x86 資源池上,采用Redhat Linux Enterprise 系統。
通過資源池,實現對虛擬化資源的集中管理;通過人性化的操作界面、集中化的管理,屏蔽Xen/PowerVM 這些不同的虛擬化平臺操作模式。
在云架構中,管理軟件通過在虛擬化管理層部署資源生命周期管理組件、資源配置部署組件、資源調度組件、資源模板管理組件等,對資源池中的各種資源對象進行調度和控制。
資源部署通過預定的自助服務申請流程實現快速業務上線,主要過程如圖4 所示。
在業務上線后的運行期,承載關鍵應用的物理資源的單點故障需要在云化架構中進行有效防范,云化架構的資源控制在物理機意外宕機時,通過HA 故障遷移,根據策略機制或手動遷移將虛擬機切換到集群中的正常物理機上,過程如圖5所示。
CRM 應用的負載隨不同業務期、不同時段而變化,云化架構平臺通過支持動態彈性集群實現彈性計算,應對突并發流量和負載的增長,實現對資源的動態調度和控制,過程如圖6 所示。
J2EE 架構引入的關鍵技術方案主要有兩種。
①J2EE 技術架構:包含了前端界面展現框架、端到端流程打通、上下文管理、交互協議、日志管理、異常管理、緩存管理、加解密等通用的技術組件等。
②分布式服務框架(DSF):DSF 在參考互聯網框架Dubbo、Facebook的基礎上,做了大量的優化,使其更加輕量和靈活。
6.1 J2EE 技術架構
前臺J2EE 架構使用USL(User Interface Specific Language,用戶界面語言) 實現界面開發,USL特性通過一套成體系的Web UI(UserInterface,用戶界面)組件來承載,設計為面向聲明式的開發,支持元數據的描述;封裝了AJAX 技術,從而支持聲明式的頁面區域數據提交、后臺服務執行、頁面區域刷新(頁面元素的增減、數據的變化)。整個系統采用J2EE 架構,分為Web 層、服務層、數據層,如圖7 所示。
(1)Web 層
界面開發基于USL,其核心是抽象一組特定的UI 組件,并基于UI 組件約束一套開發語法。
(2)服務層
服務層通過高速的分布式服務框架,實現業務的快速開發和組裝,主要功能有以下幾種。
①內部高速通信:DSF 用于系統內各模塊之間的服務調用,使用基于Socket的內部二進制通信協議(參考淘寶Dubbo 和C++中的BSBUS),服務提供者和使用者使用基于契約的調用方式,之間不需要像eBUS 那樣進行數據和接口轉換。
②遠程和本地智能路由:內部進行智能路由,支持服務提供者和使用者部署在一起時,智能轉換為內部API 調用;分離部署時,自動發送到遠端服務提供者的服務器上。
③動態服務接口:除了提供基于Interface的服務調用方式,同時提供動態服務的接口調用能力,基于這種方式,服務提供者不需要提供Interface Class 文件給使用者,使用者根據約定拼裝服務參數,運行時會自動根據服務規格進行校驗。
④多種實現方式:服務支持Micro Flow、POJO、Groovy 腳本等多種實現方式。
⑤服務流控:提供服務靜態過負荷和動態過負荷能力。
(3)數據層
在數據層重點提供了分布式數據訪問組件,實現異構數據庫的透明訪問以及數據庫連接數的收斂。
6.2 分布式服務框架
分布式服務框架作為整個下一代CRM 系統的分布式服務框架,承載著平臺和業務向互聯網轉型的重任,架構上除了滿足典型的CT 場景外,也具備典型的互聯網架構特性。
①提供面向互聯網/分布式環境下應用后臺服務開發和運行框架;
②支持云化服務彈性伸縮;
③提供服務統一開發框架,服務實現支持多種開發方式;
④一切皆服務的理念,支持服務的無狀態路由和調度,支持服務的自發現、自管理;
⑤支持服務的異步調用和傳統的RPC 阻塞式調用兩種方式。
相比于傳統客戶機服務器架構,分布式云化架構因其服務化、高彈性等技術特征,更適應E 網時代的要求。2014年集團公司啟動CRM 云化架構改造試點工作,并且嘗試特定功能域的服務中心化,為向云化架構的全面演進打下基礎。