云計算作為信息技術(shù)領(lǐng)域的一種創(chuàng)新應(yīng)用模式,自其誕生以來一直備受關(guān)注。由于其具備低成本、彈性、易用、高可靠性、按需服務(wù)等特點,近年來被看作是新一代信息技術(shù)變革和商業(yè)模式變革的核心;ヂ(lián)網(wǎng)、游戲、物聯(lián)網(wǎng)等新興行業(yè)紛紛積極擁抱云計算,對大部分企業(yè)用戶來說,受限于傳統(tǒng)IT技術(shù)架構(gòu)的束縛,往往缺乏遷移到云計算的動力和技術(shù)實現(xiàn)參考。
傳統(tǒng)IT架構(gòu)的技術(shù)特點和面臨的問題
企業(yè)中最核心的系統(tǒng)通常是數(shù)據(jù)庫管理系統(tǒng),用以滿足實時交易和分析的需求。傳統(tǒng)的單機數(shù)據(jù)庫采用“向上擴展”(Scale-Up)思路但這種方式一般只能夠支持幾個TB 數(shù)據(jù)的存儲和處理,遠不能滿足實際需求。
圖1 典型的IOE架構(gòu)
為了達到高性能和更大數(shù)據(jù)存儲容量的要求,采用集群設(shè)計的OLTP系統(tǒng)逐步成為主流。如圖1所示,常見的企業(yè)數(shù)據(jù)庫集群如Oracle RAC通常采用Share-Everything(Share-Disk)模式。數(shù)據(jù)庫服務(wù)器之間共享資源,例如磁盤、緩存等。當性能不能滿足需求時,要依靠升級數(shù)據(jù)庫服務(wù)器(一般采用小型機)的CPU、內(nèi)存和磁盤,來達到提升單節(jié)點數(shù)據(jù)庫服務(wù)性能的目的。另外,可以增加數(shù)據(jù)庫服務(wù)器的節(jié)點數(shù),依靠多節(jié)點并行和負載均衡來達到提升性能和系統(tǒng)整體可用性的效果。但當數(shù)據(jù)庫服務(wù)器節(jié)點數(shù)量增大時,節(jié)點之間的通信將成為瓶頸,而且處理各個節(jié)點對數(shù)據(jù)的訪問控制將受制于事務(wù)處理的一致性要求。從實際案例來看,4節(jié)點以上的RAC非常少見。
另外,根據(jù)摩爾定律,處理器的性能約每隔18個月便會增加一倍,而DRAM的性能大約每10年才會增加一倍,使得處理器和內(nèi)存的性能形成剪刀差。雖然處理器的性能在快速提升,但由于磁盤的機械轉(zhuǎn)速與磁臂的尋道時間的限制,磁盤存儲性能提升緩慢,硬盤的IOPS性能近10年基本沒有太大提升(HDD磁盤的轉(zhuǎn)速一直在7200-15000RPM),基于HDD的磁盤陣列存儲越來越成為集中式存儲架構(gòu)的性能瓶頸,而全閃存陣列受限于高昂的成本和擦寫壽命還遠達不到大規(guī)模商用的要求。
因此,IOE的集中存儲(Share-Everything)方式存在性能、容量與擴展性的局限,同時成本居高不下。而互聯(lián)網(wǎng)化帶來的高并發(fā),大數(shù)據(jù)的處理要求,x86和開源數(shù)據(jù)庫技術(shù)的飛速發(fā)展, NoSQL、Hadoop等分布式系統(tǒng)技術(shù)的逐漸成熟,互聯(lián)網(wǎng)化帶來的高并發(fā)、大數(shù)據(jù)的處理要求,使得系統(tǒng)架構(gòu)開始從集中式的Scale-up架構(gòu)向分布式的Scale-Out架構(gòu)發(fā)展。
IT互聯(lián)網(wǎng)化帶來的技術(shù)挑戰(zhàn)與應(yīng)對之道
Gartner的IT專家預(yù)測出了2015年的十大信息科技趨勢,這些趨勢被認為會在未來三年對行業(yè)產(chǎn)生重大影響,其中之一就是“網(wǎng)絡(luò)規(guī)模IT”,即越來越多的公司會建造類似亞馬遜、Google和Facebook的應(yīng)用和架構(gòu)。這將使網(wǎng)絡(luò)規(guī)模IT成為商用的硬件平臺,使得新模式、云優(yōu)化和軟件定義方法成為主流。開發(fā)和操作的協(xié)同是向網(wǎng)絡(luò)規(guī)模IT發(fā)展的第一步。但傳統(tǒng)的IT系統(tǒng)在向互聯(lián)網(wǎng)化方向轉(zhuǎn)型時,通常需要面對以下幾個技術(shù)挑戰(zhàn)。
性能。用戶體驗是影響轉(zhuǎn)化率的重要因素,據(jù)統(tǒng)計如果4秒鐘打不開網(wǎng)站,將有60%的顧客會流失,糟糕體驗將導(dǎo)致大量的客戶選擇放棄或從競爭對手處購買服務(wù)。如何在高并發(fā)訪問的情況下保證系統(tǒng)的低延遲響應(yīng),以提升用戶體驗。
伸縮性;ヂ(lián)網(wǎng)/移動互聯(lián)網(wǎng)用戶的訪問行為是動態(tài)的,在一些特殊的熱點引爆后,流量能夠通常達到平時的10倍甚至幾十倍以上。如何快速響應(yīng)業(yè)務(wù)爆發(fā)時的資源開銷需求,提供無差別的用戶體驗。
容錯與最大可用性;ヂ(lián)網(wǎng)應(yīng)用系統(tǒng)基于分布式計算架構(gòu)部署,基于大量的x86服務(wù)器和通用網(wǎng)絡(luò)設(shè)備。而機器一定會壞,當機器數(shù)量到一定規(guī)模時,小概率事件就成為常態(tài),當硬件出現(xiàn)故障時應(yīng)該如何自動化處理,人一定會在開發(fā)中寫出Bug,怎么進行系統(tǒng)的損害控制。如何基于單機QPS和并發(fā)數(shù)對服務(wù)端和客戶端進行限流,實現(xiàn)動態(tài)流量分配,識別服務(wù)之間的依賴鏈路風險和系統(tǒng)重要功能點依賴,評估最大可能的風險點,分布式系統(tǒng)最大可用性故障檢測,對故障模塊進行隔離,對未完成事物進行Rollback,通過犧牲非關(guān)鍵功能通過優(yōu)雅降級保證核心功能可用。
容量管理。系統(tǒng)性能一定會到達瓶頸,如何進行更科學的容量評估和擴容,自動計算前端請求與后端機器數(shù)量的對應(yīng)關(guān)系,對軟硬件容量需求進行預(yù)測。
服務(wù)化。如何將業(yè)務(wù)邏輯功能抽象成一個個原子服務(wù),對服務(wù)進行封裝和組合,并基于分布式系統(tǒng)環(huán)境部署,以實現(xiàn)更靈活的業(yè)務(wù)邏輯和流程。如何從業(yè)務(wù)視角厘清這些服務(wù)的關(guān)系,對大規(guī)模分布式系統(tǒng)中的單條服務(wù)調(diào)用鏈進行跟蹤與展現(xiàn),并能夠及時發(fā)現(xiàn)服務(wù)調(diào)用異常。
低成本。隨著系統(tǒng)的演進性能指標不斷發(fā)生變化,如何保證以最低成本滿足特定訪問量的要求。
自動化運維管理。不斷發(fā)展的大規(guī)模系統(tǒng)需要不斷維護、快速迭代和優(yōu)化。如何應(yīng)對從一臺到上千臺甚至上萬臺服務(wù)器的運維量變,通過自動化工具和流程管理大規(guī)模軟硬件集群,對系統(tǒng)進行快速部署、升級、擴容和維護。
圖2 淘寶基于Oracle的架構(gòu)
隨著業(yè)務(wù)的快速發(fā)展,淘寶技術(shù)架構(gòu)經(jīng)歷從最初的LAMP架構(gòu),到IOE架構(gòu),再到分布式架構(gòu),最后到現(xiàn)在的云計算平臺架構(gòu)這一變化過程在不斷解決上面的技術(shù)問題。
淘寶技術(shù)架構(gòu)變遷
自2003年創(chuàng)立以來的,淘寶業(yè)務(wù)發(fā)展非常迅速,幾乎是每年以100%的速度在成長。創(chuàng)立之初,為了快速上線,搶占市場,選擇了當時流行的LAMP架構(gòu),用PHP作為網(wǎng)站開發(fā)語言, Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL為數(shù)據(jù)庫,用了三個月不到的時間淘寶就上線了。當時整個網(wǎng)站應(yīng)用服務(wù)器大概10臺左右,MySQL數(shù)據(jù)庫采用了讀寫分離、一主兩備的部署方式。
2004年在淘寶業(yè)務(wù)發(fā)展的推動下,我們參考電信運營商、銀行等的一些企業(yè)解決方案,將LAMP架構(gòu)改造為Oracle+IBM小型機的數(shù)據(jù)庫架構(gòu)和EMC存儲方式(圖2)。雖然方案成本昂貴,但性能非常好。同時,隨著網(wǎng)站流量的增加,系統(tǒng)顯得有些不堪重負。當時最擔心的問題是網(wǎng)站流量如果持續(xù)增加,交易量持續(xù)增加,網(wǎng)站的系統(tǒng)架構(gòu)怎么設(shè)計?如何選擇數(shù)據(jù)庫?如何選擇緩存?如何構(gòu)建業(yè)務(wù)系統(tǒng)?……后來參考eBay的互聯(lián)網(wǎng)設(shè)計架構(gòu),設(shè)計了一個Java的技術(shù)方案,并使用了非常多的Java開源產(chǎn)品。例如,選擇當時比較流行的JBoss,作為應(yīng)用服務(wù)器;選擇一個開源的IOC容器Spring,來管理業(yè)務(wù)類;封裝了一個數(shù)據(jù)庫訪問工具IBatis,作為數(shù)據(jù)庫和Java類的Object-Reletionship映射工具。另外,對于商品搜索功能,采用自己開發(fā)的ISearch搜索引擎來取代在Oracle數(shù)據(jù)庫中進行搜索,降低數(shù)據(jù)庫服務(wù)器的壓力。做法比較簡單,每天晚上全量將Oracle小型機的數(shù)據(jù)dump出來,Build成ISearch的索引,當時商品量也不大,一臺普通配置的服務(wù)器,基本上可以將所有的索引都放進去,沒做切分,直接做了一個對等集群。
圖3 引入緩存、分布式存儲和分布式搜索引擎
圖4 淘寶的分布式架構(gòu)
從2006年開始,淘寶為了改善用戶體驗,開始建立自己的CDN站點,由于淘寶的主要流量來源于各種商品圖片、商品描述等靜態(tài)數(shù)據(jù),自建CDN可以使這些資源離用戶更近,提升用戶訪問速度,改善用戶瀏覽網(wǎng)站的體驗。
2007年,淘寶全年的交易額超過400億元,平均近1億多一天,每天有100多萬筆交易被創(chuàng)建。當時面對的幾個主要問題是:一些系統(tǒng)的流量非常大,如商品詳情等,如果直接訪問數(shù)據(jù)庫,會導(dǎo)致數(shù)據(jù)庫壓力非常大;如用戶信息,訪問一個頁面,都需要查詢買家信息、賣家信息、顯示出買家的信用、賣家的服務(wù)星級等。此時,淘寶采用分布式緩存TDBM(Tair的前身)將這些熱點靜態(tài)數(shù)據(jù)緩存在內(nèi)存中,提高訪問性能。另外,將自己研發(fā)的分布式文件系統(tǒng)TFS部署在多臺x86服務(wù)器上,取代商業(yè)的NAS存儲設(shè)備來存儲淘寶的各種文件信息,如商品圖片、商品描述信息、交易快照信息,來達到降低成本和提高整體系統(tǒng)的容量和性能的目的,同時可以實現(xiàn)更靈活的擴展性。第一期上線大概200臺TFS服務(wù)器。另外,將ISearch搜索引擎改為分布式架構(gòu),支持水平擴展,部署了48個節(jié)點。圖3展示了這一架構(gòu)思路。
2008年初,為了解決Oracle數(shù)據(jù)庫集中式架構(gòu)的瓶頸問題(連接數(shù)限制、I/O性能),將系統(tǒng)進行了拆分,按照用戶域、商品域、交易域、店鋪域等業(yè)務(wù)領(lǐng)域進行拆分,建立了20多個業(yè)務(wù)中心,如商品中心、用戶中心、交易中心等。所有有用戶訪問需求的系統(tǒng),必須使用業(yè)務(wù)中心提供的遠程接口來訪問,不能夠直接訪問底層的MySQL數(shù)據(jù)庫,通過HSF這種遠程通信方式來調(diào)用業(yè)務(wù)中心的服務(wù)接口,業(yè)務(wù)系統(tǒng)之間則通過Notify消息中間件異步方式完成調(diào)用。圖4是淘寶的分布式架構(gòu)圖。
從2010年開始,淘寶網(wǎng)重點著眼于統(tǒng)一架構(gòu)體系,從整體系統(tǒng)層面考慮開發(fā)效率、運維標準化、高性能、高可擴展性、高可用、低成本方面的要求,底層的基礎(chǔ)架構(gòu)統(tǒng)一采用了阿里云計算平臺(圖5),使用了SLB、ECS、RDS、OSS、ONS、CDN等阿里云計算服務(wù),并通過阿里云服務(wù)提供的高可用特性,實現(xiàn)雙機房容災(zāi)和異地機房單元化部署,為淘寶業(yè)務(wù)提供穩(wěn)定、高效和易于維護的基礎(chǔ)架構(gòu)支撐。
在從IOE架構(gòu)最終向云計算平臺技術(shù)架構(gòu)轉(zhuǎn)移的過程中,主要面臨以下幾個技術(shù)挑戰(zhàn)。
圖5 基于阿里云的淘寶架構(gòu)
基于阿里云計算平臺,通過采用合適的技術(shù)策略和最佳實踐,包括:應(yīng)用無狀態(tài),有效使用緩存(瀏覽器緩存、反向代理緩存、頁面緩存、局部頁面緩存、對象緩存和讀寫分離),服務(wù)原子化,數(shù)據(jù)庫分割,異步解決性能問題,最小化事物單元,適當放棄一致性。以及自動化監(jiān)控/運維手段包括監(jiān)控預(yù)警、配置統(tǒng)一管理,基礎(chǔ)服務(wù)器監(jiān)控,URL監(jiān)控,網(wǎng)絡(luò)監(jiān)控,模塊間調(diào)用監(jiān)控,智能分析監(jiān)控,綜合故障管理平臺,容量管理?梢院芎玫亟鉀Q以上問題,從而達到整體系統(tǒng)的高可擴展性、更低的成本、更高的性能和可用性的實現(xiàn)效果。
遷云架構(gòu)最佳實踐
淘寶的技術(shù)架構(gòu)是一個伴隨業(yè)務(wù)逐漸發(fā)展而逐步演進的過程,中間沉淀了很多寶貴的架構(gòu)最佳實踐。對于大部分企業(yè)級客戶來說,可以結(jié)合自己的業(yè)務(wù)場景選擇合適的技術(shù)架構(gòu)來實現(xiàn)整體IT系統(tǒng)的互聯(lián)網(wǎng)化設(shè)計。不同應(yīng)用場景下的遷云架構(gòu),包括文件存儲、應(yīng)用服務(wù)、OLTP數(shù)據(jù)庫、OLAP數(shù)據(jù)庫。
對于文件存儲方式,可以直接用OSS取代EMC存儲實現(xiàn)海量數(shù)據(jù)文件的存儲,OSS存儲最大容量可以達40PB,同時由于OSS是分布式存儲方式,可以通過多個節(jié)點的并行讀寫顯著提高數(shù)據(jù)訪問性能。對于大文件,還可以通過Multipart Upload的方式,將大文件分塊并行傳輸與存儲,實現(xiàn)高性能。
對于應(yīng)用服務(wù),可通過SLB+多臺ECS實例組合取代IBM小型機(圖6),也可以根據(jù)不同應(yīng)用類型,直接基于ACE、ONS、OpenSearch等阿里云中間件云服務(wù)部署。
圖6 應(yīng)用服務(wù)遷云架構(gòu)
圖7 使用OCS緩存的遷云架構(gòu)
圖8 帶RDS只讀實例擴展的遷云架構(gòu)
OLTP應(yīng)用的遷移相對復(fù)雜。目前阿里云的RDS實例最高是48GB內(nèi)存,14000IOPS,1TB的存儲容量(SSD存儲),支持MySQL和SQL Server。這個配置作為單數(shù)據(jù)庫服務(wù)器來使用可以滿足很多場景的數(shù)據(jù)庫應(yīng)用需求,可直接取代大部分場景下的IBM小型機+Oracle數(shù)據(jù)庫+EMC存儲。
對于性能要求更高的應(yīng)用,可考慮引入開放緩存服務(wù)OCS,將部分查詢數(shù)據(jù)加載至分布式緩存中,減少RDS的數(shù)據(jù)查詢次數(shù),提升系統(tǒng)的數(shù)據(jù)查詢并發(fā)效率和降低響應(yīng)時間,如圖7所示。
對于讀的請求遠大于寫請求的場景,可以考慮用多個RDS數(shù)據(jù)庫,采用分布式方式實現(xiàn)讀寫分離,寫交易主要發(fā)生在主庫,讀請求訪問備庫,可以根據(jù)需求對讀庫進行擴展,以實現(xiàn)整體請求性能的提升。圖8是帶只讀實例擴展的遷云架構(gòu)。
對于數(shù)據(jù)規(guī)模較大的數(shù)據(jù)庫表,可以通過水平切分的方式,將數(shù)據(jù)分布在多個RDS實例上,通過并行的分布式數(shù)據(jù)庫操作來實現(xiàn)性能和容量的提升。圖9是帶數(shù)據(jù)拆分的遷云架構(gòu)。
總的來說,通過遷移到RDS、引入數(shù)據(jù)緩存、分庫分表、讀寫分離等多種方式可以用Scale-Out方式取代原有的IOE架構(gòu),并且獲得更好的性能和擴展性。圖10中是遷云架構(gòu)演進過程。
圖9 帶數(shù)據(jù)拆分的遷云架構(gòu)
圖10 遷云架構(gòu)演進
圖11 大數(shù)據(jù)分析類遷云架構(gòu)
圖12 遷云通用架構(gòu)
對于OLAP應(yīng)用,可采用ODPS+OTS+RDS/ADS的解決方案取代小型機+Oracle DB+OLAP+RAC+EMC存儲解決方案,如圖11所示?傮w來看,遷云的通用架構(gòu)方案如圖12所示,針對具體業(yè)務(wù)系統(tǒng)的遷云方案還需要根據(jù)實際情況進行分析和合理選擇。
總結(jié)
通過采用不同的遷云架構(gòu)實現(xiàn)方案,用戶可以根據(jù)不同的實現(xiàn)場景要求,將傳統(tǒng)的IT系統(tǒng)遷移到云端。通過云產(chǎn)品架構(gòu)最佳實踐,使阿里云產(chǎn)品組合發(fā)揮最大效用,讓用戶充分享受云計算帶來的彈性、低成本、穩(wěn)定、安全和易用等價值收益。
可用性:脫離小型機和高端存儲的高冗余機制,采用基于PC服務(wù)器的分布式架構(gòu)的云計算平臺能否做到高可用。
一致性:Oracle基于RAC和共享存儲實現(xiàn)的物理級別一致性,基于RDS for MySQL能否達到同樣的效果。
高性能:高端存儲的I/O能力很強,基于PC服務(wù)器的RDS能否提供同樣甚至更高的I/O處理能力,MySQL和Oracle對SQL的處理性能是否相同。
擴展性:業(yè)務(wù)邏輯如何拆分,如何服務(wù)化,數(shù)據(jù)分多少庫分多少表,什么維度分,后期二次拆分如何更方便等。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文網(wǎng)址:http://www.ezxoed.cn/html/support/11121517563.html