《《阿里大數(shù)據(jù)架構(gòu)》PPT課件.pptx》由會員分享,可在線閱讀,更多相關(guān)《《阿里大數(shù)據(jù)架構(gòu)》PPT課件.pptx(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、系統(tǒng)架構(gòu)概述Yes, We KAO更強(qiáng),更高,更持久 了解什么是架構(gòu)了解Alibaba網(wǎng)站架構(gòu)的歷史掌握Alibaba網(wǎng)站架構(gòu)的現(xiàn)狀掌握網(wǎng)站架構(gòu)設(shè)計的理念課程目標(biāo)和內(nèi)容 架構(gòu)規(guī)定了軟件的高層劃分及各部分間的交互架構(gòu)不是軟件,但架構(gòu)決策體現(xiàn)于軟件平臺和框架之中架構(gòu)的優(yōu)劣決定了業(yè)務(wù)應(yīng)用系統(tǒng)的實施能力和發(fā)展空間技術(shù)搭臺,業(yè)務(wù)唱戲 架構(gòu)搭臺,應(yīng)用唱戲架構(gòu)永遠(yuǎn)在隨著業(yè)務(wù)的發(fā)展而變遷 擁抱變化!什么是架構(gòu)?架構(gòu)變遷更多用戶更多數(shù)據(jù)更多功能硬件成本人力成本質(zhì)量成本提高 收益節(jié)約成本業(yè)務(wù)發(fā)展 B2 B架構(gòu)演化過程 1999史前2001石器時代2002中世紀(jì)2005工業(yè)革命未來星際時代?Perl WebMacr
2、opojojdbc VelocityEjb WebXSpring SOAOPEN API云計算 Perl,CGI Mysql Apache服務(wù)器在美國,5 6 KModem,遠(yuǎn)程開發(fā)、測試、部署1 9 9 9 -史前時代 Java服務(wù)器使用線程性能比cgi技術(shù)使用進(jìn)程好 Java相比Perl,可維護(hù)性好,開發(fā)效率高 Java開始在國內(nèi)流行史前-石器時代原因 開始使用Java模板技術(shù)采用WebMacro中間層采用Servlet技術(shù),使用POJO封裝業(yè)務(wù)邏輯和數(shù)據(jù)訪問使用BizObj對象封裝基本業(yè)務(wù)邏輯和數(shù)據(jù)訪問方法其它業(yè)務(wù)對象繼承BizObj方法,實現(xiàn)自己的業(yè)務(wù)邏輯和數(shù)據(jù)訪問方法使用JDBC訪問
3、數(shù)據(jù)庫 Servlet容器使用resin,Web服務(wù)器使用Apache2 0 0 1底-石器時代-www系統(tǒng) 2 0 0 1底-石器時代(續(xù))基于POJO的biz層基于WebMacro的模板技術(shù)表現(xiàn)層業(yè)務(wù)層BizObj 業(yè)務(wù)邏輯方法數(shù)據(jù)訪問方法OfferObj業(yè)務(wù)邏輯方法數(shù)據(jù)訪問方法MemberObj業(yè)務(wù)邏輯方法數(shù)據(jù)訪問方法CompanyObj業(yè)務(wù)邏輯方法數(shù)據(jù)訪問方法基于pojo的Biz層Oracle數(shù)據(jù)庫LDAP數(shù)據(jù)存儲 表現(xiàn)層僅僅使用模板技術(shù),缺乏MVC框架,導(dǎo)致大量的servlet配置業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層耦合,可維護(hù)性和可擴(kuò)展性差受到EJB風(fēng)潮的影響石器時代-中世紀(jì)原因 表現(xiàn)層采用We
4、bX模板技術(shù)Velocity在Turbine基礎(chǔ)上開發(fā)了自己的服務(wù)框架和一系列公共服務(wù)通過一個delegate對象訪問業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層使用EJB(SLSB,CMP,DAO等)通過一個faade對象供表現(xiàn)層delegate訪問 Faade對象訪問多個SLSB實現(xiàn)的controller對象實現(xiàn)業(yè)務(wù)邏輯使用CMP實現(xiàn)單條記錄的增加和刪除考慮性能,在CMP之外封裝DAO對象通過JDBC訪問數(shù)據(jù)庫 EJB服務(wù)器使用Weblogic Web服務(wù)器使用Apache2 0 0 2底-中世紀(jì) 2 0 0 2底-中世紀(jì)(續(xù)) 搜索引擎Oracle數(shù)據(jù)庫LDAP使用SLSB實現(xiàn)的業(yè)務(wù)邏輯對象Controlers
5、 基于Webx以及Service框架的Web層框架CMP進(jìn)行單條記錄的增加刪除,DAO對象查找表現(xiàn)層商業(yè)邏輯層數(shù)據(jù)訪問層 數(shù)據(jù)存儲delegateFaade Turbine的發(fā)展緩慢 EJB配置復(fù)雜,可維護(hù)性差重量級框架,業(yè)務(wù)侵入高高度容器依賴,可測試性差 CMP性能差,導(dǎo)致DAO和CMP并存中世紀(jì)-工業(yè)革命原因 表現(xiàn)層使用WebX和Service 框架 Velocity模板技術(shù)自有服務(wù)框架及多種公共服務(wù):Form Service,Template Service,Mail Service,Rundata Service,Upload Service等通過command模式和biz層交互無狀態(tài)
6、Web應(yīng)用,基于cookie實現(xiàn)session,獲取線性擴(kuò)展性業(yè)務(wù)邏輯層使用Alibaba Service框架,并且引入spring 框架 Spring容器和Alibaba Service框架無縫集成 AO,BO使用分布式cache緩存對象數(shù)據(jù)訪問層 透明的事務(wù)處理引入Hibernate和iBatis,以iBatis為主 2 0 0 5 -工業(yè)革命 2 0 0 5 -工業(yè)革命(續(xù)) 搜索引擎Oracle數(shù)據(jù)庫LDAP基于Spring以及Service框架的biz層框架 基于Webx以及Service框架的Web層框架分布式Cache分布式Session基于Spring以及DAO設(shè)計模式的數(shù)據(jù)訪
7、問框架表現(xiàn)層商業(yè)邏輯層數(shù)據(jù)訪問層 數(shù)據(jù)存儲 數(shù)據(jù)庫成為瓶頸 - 分布式數(shù)據(jù)庫應(yīng)用耦合嚴(yán)重 - SOA Pampas平臺演化還在繼續(xù) 中文站會員數(shù)超過2 0 0 0萬中文站Offer已經(jīng)超過1 .5億中文站每天的用戶PV已經(jīng)超過1 .6億中文站每天新發(fā)Offer超過1 0 0萬中文站每天重發(fā)Offer超過1 5 0 0萬國際站略少,但是增長迅猛網(wǎng)站的現(xiàn)在 中文站/國際站應(yīng)用部署圖 網(wǎng)站鏡像部署圖(國際站)中供用戶網(wǎng)站運(yùn)營海外賣家 Load Balance(F5, Alteon) Apache Jboss DatabaseSearch EngineApache JbossApache JbossA
8、pache Static Resource CacheStorage用戶請求處理 流量隨著用戶量而增加業(yè)務(wù)的變更頻繁用戶行為的收集產(chǎn)品角色的細(xì)分及調(diào)整 7 X 2 4的高可用性互聯(lián)網(wǎng)的挑戰(zhàn) 單擊此處編輯版標(biāo)題樣式流量激增處理用戶請求Request Process ResponseRequest Process ResponseRequest Process Response應(yīng)對的挑戰(zhàn)并發(fā)(垂直)用戶數(shù)量的增加使用資源的增加響應(yīng)(水平)處理性能的維持 單擊此處編輯版標(biāo)題樣式業(yè)務(wù)變更專業(yè)化細(xì)分之前 offer list detailmember company personaltransactio
9、n no support專業(yè)化細(xì)分之后offer Clothing Retail Loanmember Trust Pass Special Markettransaction alipay paypal 數(shù)據(jù)挖掘offer repostnew offerbid 行為數(shù)據(jù)的采集追蹤埋點異步收集采集數(shù)據(jù)的分析數(shù)據(jù)倉庫分析引擎運(yùn)營團(tuán)隊決策風(fēng)險行為的控制CTU系統(tǒng)安全團(tuán)隊 單擊此處編輯版標(biāo)題樣式網(wǎng)站產(chǎn)品的生命周期產(chǎn)品需求整理架構(gòu)團(tuán)隊設(shè)計 開發(fā)團(tuán)隊實施質(zhì)量團(tuán)隊質(zhì)檢運(yùn)營團(tuán)隊運(yùn)作用戶需求分析團(tuán)隊再細(xì)分用戶需求分析商業(yè)策劃市場策劃 產(chǎn)品需求分析產(chǎn)品設(shè)計網(wǎng)站運(yùn)營架構(gòu)團(tuán)隊架構(gòu)師開發(fā)團(tuán)隊程序員項目經(jīng)理用戶體驗質(zhì)量
10、團(tuán)隊測試流程控制運(yùn)營團(tuán)隊產(chǎn)品運(yùn)營客戶服務(wù) 角色專業(yè)化細(xì)分 業(yè)務(wù)1業(yè)務(wù)2業(yè)務(wù)3避免宕機(jī)集群化服務(wù)化備份切換維護(hù)時間有限新產(chǎn)品發(fā)布在線發(fā)布疊加式發(fā)布用戶透明過渡高可用性 架構(gòu)是平衡的藝術(shù)不要把簡單問題復(fù)雜化,也不要把復(fù)雜問題簡單化系統(tǒng)架構(gòu)需要考慮哪些業(yè)務(wù)要求和質(zhì)量指標(biāo)?怎樣取得平衡?分解復(fù)雜度 自上而下,分離關(guān)注點(總體系統(tǒng)局部) 分配復(fù)雜度 用合適的技術(shù)、合適的組織來解決問題 架構(gòu)設(shè)計理念更多用戶更多數(shù)據(jù)更多功能更少硬件更少人力更少故障質(zhì)量指標(biāo)可用性安全性性能穩(wěn)定性可維護(hù)性 分解業(yè)務(wù)應(yīng)用數(shù)據(jù)合并聯(lián)動的業(yè)務(wù)高藕合的數(shù)據(jù)持續(xù)發(fā)展插件式擴(kuò)展能力弱藕合,易于剝離局部可優(yōu)化調(diào)整可測試穩(wěn)定性高可用性負(fù)載均衡
11、線性擴(kuò)展可被監(jiān)控架構(gòu)的考慮要點 業(yè)務(wù)劃分系統(tǒng)細(xì)分應(yīng)用優(yōu)化架構(gòu)考慮的方向 銷售后臺會員管理跟單管理財務(wù)管理運(yùn)營后臺Offer審批會員審批類目運(yùn)營數(shù)據(jù)采集分析網(wǎng)站前臺用戶登錄用戶前臺用戶后臺旺鋪、廣告社區(qū)、論壇合作部門搜索引擎阿里旺旺支付寶總體架構(gòu)分解:按不同的業(yè)務(wù)領(lǐng)域、用戶群來分解分配:將業(yè)務(wù)需求分配到各個系統(tǒng)/服務(wù)可獨(dú)立部署和維護(hù),它們之間多采用分布式交互業(yè)務(wù)劃分(總體架構(gòu)) 會員體系運(yùn)營體系業(yè)務(wù)體系業(yè)務(wù)劃分(總體架構(gòu)) 系統(tǒng)架構(gòu)表現(xiàn)層WebX VelocitySpring MVC業(yè)務(wù)邏輯層IOC (Spring)SOA (Pampus)EJB數(shù)據(jù)訪問層iBatisCMPJMS工具安全容錯管理
12、監(jiān)控日志Build 系統(tǒng)架構(gòu)分解:按不同的技術(shù)層次來分解分配:將技術(shù)需求分配到各個容器/框架通過特定的技術(shù)模式來透明或半透明地解決技術(shù)問題 網(wǎng)站應(yīng)用系統(tǒng)BOPS系統(tǒng)資源系統(tǒng)系統(tǒng)細(xì)分 應(yīng)用優(yōu)化存儲系統(tǒng)DAC SANNAS搜索引擎全文索引目錄索引數(shù)據(jù)庫索引數(shù)據(jù)復(fù)制水平分割垂直分割Cache內(nèi)容靜態(tài)化數(shù)據(jù)庫緩存對象緩存客戶端緩存 局部調(diào)優(yōu)(數(shù)據(jù)存?。┓纸猓喊磾?shù)據(jù)的位置、讀寫、計算特性等分解分配:將數(shù)據(jù)分配到各個不同的存儲技術(shù)適合于不同的數(shù)據(jù)存取需求 讀寫應(yīng)用優(yōu)化 總體架構(gòu)考慮面向服務(wù)體系系統(tǒng)架構(gòu)更加專業(yè)化、服務(wù)化的信息收集系統(tǒng)更加全面化、自動化的配置管理更加有效率的鏡像同步、切換局部應(yīng)用優(yōu)化分布式文件系統(tǒng)優(yōu)化數(shù)據(jù)同步系統(tǒng)讀寫分離展望未來 架構(gòu)隨著業(yè)務(wù)發(fā)展不斷演進(jìn)架構(gòu)發(fā)展要有方向有節(jié)奏總結(jié) Q & A