天天看點

朗新科技林海潮:企業應用的雲上架構演變

<b>2016雲栖大會上海峰會于2016.1.20日在上海科技館順利舉辦。本文是根據朗新科技首席架構師林海潮在2016雲栖大會上海峰會《網際網路+架構及實踐專場》的演講中分享内容整理而成,林海潮分享了傳統行業在使用雲架構時采用的技術和一些心得收獲。</b>

下面是演講内容整理。

<b>業務場景及挑戰</b>

<b> </b>

從13年的費控到雙向電表,傳統的電力行業正向網際網路轉型,目前采用的方式是以一個小時為基準,對整體資料處理,整體流程為:根據測算規則從采集主站擷取抄表資料進行電費測算和與使用者實時繳費資訊進行比較計算剩餘電費,通過剩餘電費和基準比較,應用費控政策,開展預警、停電或複電控制等業務。

其計算流程圖如下:

朗新科技林海潮:企業應用的雲上架構演變

<b>圖1 </b><b>資料計算流程</b>

在資料貯備到電費測算再到資料回寫的整個過程的關鍵名額有兩個:一是千萬級别資料量計算與性能需求呈線性增長;二是數以百萬計的高并發實時查詢以及其他異構平台的接入。

傳統的企業系統多采用ioe架構,核心邏輯在資料庫中實作,資料庫是系統最為關鍵的部分。其處理方式基本是從用戶端到應用中間件叢集再到資料庫疊加的sql+存儲過程;架構的存儲橫向擴充能力和實時快速處理能力不足;并且資料庫多采用oracle rac,導緻其擴充性有限,采用的國外的小型機伺服器進一步增加成本。傳統企業架構進行優化面臨以下四個挑戰:

(1)<b>去中心化</b>,将集中系統拆分成不同的節點,每個節點獨有的開放性、完整法、獨立性;

(2)<b>實時處理</b>,接收到資料後實時響應計算,一個小時完成三千萬計算;

(3)<b>高并發</b>,數以百萬計的實時查詢;

(4)<b>高可用</b>,在高并發的情況下保持每個計算問題完整且平穩。

<b>應對機制</b>

<b></b>

針對上文中的不同挑戰,提出不同的解決方案。

<b>

</b>

<b>微應用</b>,以阿裡雲平台為基礎,依托雲平台的擴充能力和服務體系,針對整體業務特點進行細小化的功能部署,保證微應用針對獨立的業務。與偏向小顆粒度和較少代碼的微服務相比,微應用偏向于業務應用邏輯以及對内部互相依賴或者關聯度較高的業務繼承,是元件化與服務化結合。

朗新科技林海潮:企業應用的雲上架構演變

<b>圖2 </b><b>微應用開發簡圖</b>

如上圖所示,微應用開發過程首先把系統中業務功能元件化和服務化,然後将微應用整合到雲平台形成統一的服務管理。在整體的服務化過程中,業務拆分時需要對業務進行梳理。整體業務流程繁多,從代碼服務的角度考慮把耦合度降低,無須細分顆粒度互相之間的耦合度。微應用是将原業務應有場景切分成許多不同的小的服務,每個服務具有自身的特性,單個服務可以直接部署在系統中,單點故障不會影響整體系統的能力,提高系統的可用性。與傳統的大型管理系統相比,微應用的形态呈現出<b>功能少</b>、<b>體積輕</b>,能夠<b>快速</b>傳遞和<b>靈活</b>響應需求變化。

朗新科技林海潮:企業應用的雲上架構演變

<b>圖3 </b><b>多元度分表分庫方式</b>

<b>分表分庫</b>,微應用送出資料互動内容時,正常的次元是以hash和時間做分表分庫,也可以從業務特色和業務特點進行拆分。原則上遵循兩種方式:第一種,基于較大的表拆分到不同的小表,根據不同業務屬性和業務關聯程度分到不同的庫;第二種,小表拆分的方式,現實中會産生大量小表如配置表、基礎資訊表,雖然這類表量不大,但是許多操作需要頻繁的查詢調用。此類情況應将小表以廣播的方式同步複制到各個庫當中,解決配置表、微量表通路比較頻繁的問題。

朗新科技林海潮:企業應用的雲上架構演變

<b>圖4 </b><b>消息事件驅動過程</b>

<b>事件驅動</b>,每個微應用即是消息的生産者也是消費者。在整體微應用的排程中,通過ons來驅動整體業務的串聯。整體的資料是經過一小時左右的時延的資料,微應用叢集和分布式消息叢集在配置中心和協同元件的控制下進行資料互動。微應用間的互動通過消息時間驅動,在應用解耦的同時,滿足應用擴充以及實時性的要求。

朗新科技林海潮:企業應用的雲上架構演變

<b>圖5</b><b>基于大資料平台的資料分析流程</b>

<b>大資料</b>,相對網際網路企業而言,實際上用到的大資料并不是很多。系統跟外部關聯特别多,單獨專注于某一特定子產品具有較大的局限性。是以系統要與短信系統、産業系統相連接配接,僅專注于中間層是不行的。上圖是基于大資料技術對檔案及電費資料分析處理的過程:資料庫中,對動态資料進行全量同步和增量同步,生成與之對應的全量庫和增量庫,再通過elt整合成統一庫進行業務排程,然後計算引擎完成整體資料離線清洗、計算,再将同步庫資料傳回到整體業務資料庫。在這裡,統一庫和同步庫沒有太大的差異,隻是邏輯定義不同。通過整體思想,定義業務通路數量标準和規則,統一化資料的存儲和使用方式。

朗新科技林海潮:企業應用的雲上架構演變

<b>圖6 </b><b>彈性擴充架構</b>

<b>彈性擴充</b>,整體依托阿裡雲的基礎上,全面提升資料庫層面和應用層面的的彈性擴充能力。資料庫層面彈性擴充,采用資料路由方式,不同資料節點調用方式各異。整體應用層的彈性擴充,采用的阿裡雲對服務治理來解決服務調用的過程,微應用通過長連接配接到注冊中心進行注冊,在微應用調用方訂閱注冊中心的前提下,注冊中心同樣以長連接配接的方式通知不同的微應用調用方,微應用調用方直接調用提供方所提供的微應用,同時監控中心以短連接配接的方式對微應用進行監控,微應用提供方也可進行彈性擴充增加新的微應用。

<b>基于阿裡雲的架構優化</b>

朗新科技林海潮:企業應用的雲上架構演變

<b>圖7 </b><b>基于阿裡雲的架構優化</b>

上圖是基于阿裡雲的架構優化,正中間是叢集,将傳統服務拆成很多微服務。從營銷系統将使用者檔案、電價參數等資料同步到費控資料庫叢集中,dts負責資料傳輸,監聽drds叢集中資料變更的内容,并将變更的内容放到整體的叢集裡。在ons叢集中為了保證整體應用的協同,應定義出相應的消息包括測算通知消息、檔案變動消息等。接下來把資料準備和資料分析傳到odps叢集中,odps叢集把相應資料整體推送給采集系統,然後采集系統将消息推送到資料采集終端,發送到不同使用者的電表上進行停電或者複電操作。

<b>面向企業應用</b>

任何技術的進步無外乎兩種驅動力:第一是社會進步發展的驅動;第二更多是個人使用者對應用差異性體驗驅動。

朗新科技林海潮:企業應用的雲上架構演變

<b>圖8 </b><b>基于阿裡雲平台的企業雲應用開發平台</b>

企業應用本身的具有相當多的特點,如統一資源、資料打通、統一打包、快速開發、降低成本、節能環保等等。是以整個應用開發過程中不免存在相當多的問題,如case随着時間的推移不斷的簡化;原業務積累整體的可複用性等等問題。對于公共行業的業務,在整體服務化、元件化的過程中,企業可依托阿裡雲平台的技術,結合本行業的流程建構整體快速開發的平台。同時在快速開發平台中也可以引申到平台設計、服務組建複用以及整體資料分析上再構,通過定制化軟體,降低成本。

傳統的行業在面向企業應用時同樣做出了很多努力,包括整體資源統一、資料打通、以及面向定制化産品快速的開發。對使用者層,随着海量資料處理的實作,成本逐漸降低。通過阿裡雲平台,企業可以實作從整體服務到整體業務應用服務再到整體的組建化、服務化的過程。

<b>所遇到的困難</b>

做整體的過程中,遇到相當多的問題。

首先,從習慣的roe的方式轉移到整體層面,整個技術轉型存在很大的挑戰。以前将目光聚焦在資料層、資料庫,每日awr出來分析性能優化,方向不太正确。現在對系統的整體架構進行優化後,僅從現場運維服務角度來看,現有系統相比原系統體驗提升很多。

<b>2016雲栖大會上海峰會回顧專題(含演講視訊):http://yunqi.aliyun.com/2015/shanghai/review.html </b>