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