愛奇藝移動(dòng)業(yè)務(wù)后臺(tái)系統(tǒng)架構(gòu)設(shè)計(jì)_第1頁(yè)
愛奇藝移動(dòng)業(yè)務(wù)后臺(tái)系統(tǒng)架構(gòu)設(shè)計(jì)_第2頁(yè)
愛奇藝移動(dòng)業(yè)務(wù)后臺(tái)系統(tǒng)架構(gòu)設(shè)計(jì)_第3頁(yè)
愛奇藝移動(dòng)業(yè)務(wù)后臺(tái)系統(tǒng)架構(gòu)設(shè)計(jì)_第4頁(yè)
愛奇藝移動(dòng)業(yè)務(wù)后臺(tái)系統(tǒng)架構(gòu)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、愛奇藝移動(dòng)業(yè)務(wù)后臺(tái)系統(tǒng)架構(gòu)設(shè)計(jì)后臺(tái)架構(gòu)演進(jìn)的必經(jīng)之路應(yīng)對(duì)流量洪峰的三板斧后臺(tái)架構(gòu)設(shè)計(jì)的發(fā)展思考01PART ONE 后臺(tái)架構(gòu)演進(jìn)的必經(jīng)之路一個(gè)互聯(lián)網(wǎng)產(chǎn)品的生命周期孵化期成長(zhǎng)期成熟期衰退期時(shí)間業(yè)務(wù)成熟度技術(shù)成熟度奇點(diǎn)Gap快速試錯(cuò),基礎(chǔ)產(chǎn)品功 能完善;系統(tǒng)架構(gòu)盡可 能簡(jiǎn)單,功能快速上線用戶規(guī)模爆炸式增長(zhǎng),業(yè) 務(wù)需求大量涌入;原有架 構(gòu)在性能、擴(kuò)展性、容錯(cuò) 性等方面的局限性開始暴 露,持續(xù)的架構(gòu)升級(jí)改造 成為常態(tài)用戶規(guī)模逐漸趨于穩(wěn)定, 業(yè)務(wù)開始向多元化方向拓 展;架構(gòu)設(shè)計(jì)的重點(diǎn)開始 從滿足單一業(yè)務(wù)需求轉(zhuǎn)變 為系統(tǒng)化的平臺(tái)建設(shè)產(chǎn)品新功能已經(jīng)很少,主 要以維護(hù)工作為主1億500W100W1000W20

2、131.5億+2010OS/Android App上線 用戶突破100w奇藝影視AppV3.圖文模式全新 上線用戶突破1500萬(wàn)日活躍用戶突破1000萬(wàn) 占全站流量50%大力發(fā)展VIP業(yè)務(wù) 成為首個(gè)日活躍 用戶過億的視頻App2017視頻與社交的交織愛奇藝APP成為一個(gè)門戶愛奇藝移動(dòng)APP的發(fā)展歷程月活躍用戶數(shù)6億+ 日視頻播發(fā)量10億+ 日頁(yè)面訪問量100億+20122015愛奇藝移動(dòng)后臺(tái)的架構(gòu)升級(jí)化整為零- 按業(yè)務(wù)進(jìn)行垂直拆分-技華麗轉(zhuǎn)身術(shù)平臺(tái)從PHP轉(zhuǎn)JAVA“微”服務(wù)化-基礎(chǔ)服務(wù)抽離內(nèi)部共享平臺(tái)之路-業(yè)務(wù)系統(tǒng)平臺(tái)化2014201520162017+面臨的挑戰(zhàn)APP版本快速迭代,版本碎

3、片化問題嚴(yán)重,導(dǎo)致后臺(tái)接 口背負(fù)的歷史包袱越來(lái)越重客戶端APP版本占比業(yè)務(wù)需求大量涌入,研發(fā)疲于 應(yīng)付,沒有精力進(jìn)行架構(gòu)設(shè)計(jì) 與代碼重構(gòu),質(zhì)量急劇下降2014 - 化整為零案例數(shù)據(jù):首頁(yè)接口2.0升級(jí)改造后,接口參數(shù)從60多 個(gè)精簡(jiǎn)到20+個(gè),返回?cái)?shù)據(jù)包大小較少了50%,接口響應(yīng)時(shí)間縮短了一半兩個(gè)原則:按照業(yè)務(wù)模塊自上而下垂直拆分引入接口版本概念進(jìn)行持續(xù)迭代業(yè)務(wù)模塊A 接口V1.0業(yè)務(wù)模塊B 接口V1.0業(yè)務(wù)模塊B 接口V2.0客戶端APP業(yè)務(wù)模塊A 接口V2.0改造成果:系統(tǒng)從1個(gè)拆分成了首頁(yè)、播放、頻道頁(yè)、會(huì) 員、搜索等6個(gè)功能獨(dú)立的子模塊代碼工程從1個(gè)拆分為6個(gè)接口個(gè)數(shù)從3個(gè)拆分為30+

4、個(gè)代碼中“超級(jí)類”消失不見Redis緩存從1個(gè)大集群拆分為5個(gè)小集群2015 - 華麗轉(zhuǎn)身挑戰(zhàn)開發(fā)人員技能轉(zhuǎn)型基礎(chǔ)框架重新積累新功能重復(fù)開發(fā)2016 - “微”服務(wù)化成本收益微服務(wù)采取的策略:有節(jié)制的進(jìn)行基礎(chǔ)服務(wù)的抽取有節(jié)制的引入新的技術(shù)與框架微服務(wù)!=RPC!=Spring boot!=容器&有成本2017+ - 平臺(tái)之路頁(yè)面樣式模板化,云控動(dòng)態(tài)更新50%功能上線無(wú)需APP發(fā)版平臺(tái)化APP配置中心頁(yè)面模 板平臺(tái)社交服 務(wù)平臺(tái)代碼基 礎(chǔ)組件 移動(dòng)APP的通用管理能力,包括:灰度、升級(jí)、熱修復(fù)、開關(guān)控制、版本管理等通用社交基礎(chǔ)服務(wù),包括:評(píng)論、點(diǎn) 贊、Feed流、圈子、榜單、表情等代碼抽取成通用

5、的SDK,提 高復(fù)用度,如:緩存組件、 熔斷組件、HTTP組件等02PART TWO 應(yīng)對(duì)流量洪峰的三板斧.一部熱劇引發(fā)的“血案”一個(gè)后臺(tái)系統(tǒng)的“馬斯洛模型”多IDC部署,多ISP部署區(qū)域容災(zāi)限流熔斷服務(wù)自動(dòng)降級(jí)服務(wù)異步化單點(diǎn)服務(wù)平臺(tái)化服務(wù)集群化集群化架構(gòu)容災(zāi)單IDC監(jiān)控彈性擴(kuò)容防刷成本多IDC好用“自我實(shí)現(xiàn)”能用“歸屬”,“尊重”可用“生理”,”安全”功能正常基本可用快 - 緩存“計(jì)算機(jī)科學(xué)只存在兩個(gè)難題:緩存失效和命名?!?Phil KarIton使用到的緩存技術(shù):視頻CDN:碼流文件靜態(tài)CDN:圖片,資源文件緩存中間件:熱數(shù)據(jù),中間計(jì)算結(jié)果,特定場(chǎng)景的持久化數(shù)據(jù)接口本地緩存:熱數(shù)據(jù),響應(yīng)

6、時(shí)間敏感,實(shí)時(shí)性要求不高APP本地緩存:偽靜態(tài)資源,減少接口訪問壓力,降低接口依賴緩存組件 qycacheqycache緩存組件業(yè)務(wù)代碼/ 邏輯過期時(shí)間/ 緩存的數(shù)據(jù)對(duì)象value數(shù)據(jù)結(jié)構(gòu): expired_t: long data_obj: string(2且過期命中?使用key查詢CB緩存請(qǐng)求外部數(shù)據(jù)源獲取 數(shù)據(jù)將數(shù)據(jù)寫入CB,并設(shè) 置物理/邏輯過期時(shí)間返回?cái)?shù)據(jù)將緩存中的數(shù) 據(jù)值優(yōu)先返回) 命中未邏輯將緩存中數(shù) 據(jù)直接返回(1) 未命中(已物理過期)(3) 命中但邏輯過期異步刷新CB 中的緩存數(shù)據(jù)Couchbase外部數(shù)據(jù)源(接口或DB)快 - 異步化使用的技術(shù)隊(duì)列:MQ,Kafka子線程

7、并行處理,避免串行等待收益縮短接口處理時(shí)間,提高系統(tǒng)吞吐率非阻塞式調(diào)用,減少資源占用教訓(xùn)過渡的異步化會(huì)降低系統(tǒng)的可維護(hù)性接口響應(yīng)時(shí)間(單位:毫秒) 改造前改造后案例:頻道頁(yè)接口異步化改造后,響應(yīng)時(shí)間縮短40%穩(wěn) - 服務(wù)降級(jí)服務(wù)降級(jí)策略熔斷安全數(shù)據(jù)限流使用到的技術(shù)Hystrix熔斷器Meerkat(自研組件)Nginx+lua移動(dòng)后臺(tái) 業(yè)務(wù)系統(tǒng)公司內(nèi)部 業(yè)務(wù)系統(tǒng)公司外部 業(yè)務(wù)系統(tǒng)在復(fù)雜交錯(cuò)的網(wǎng)絡(luò)調(diào)用鏈路中,一個(gè)局部的故障 會(huì)產(chǎn)生“連鎖反應(yīng)”,可能導(dǎo)致整體系統(tǒng)的雪崩。熔斷組件 - Meerkat熔斷故障隔離自動(dòng)恢復(fù)配置動(dòng)態(tài)加載監(jiān)控接口調(diào)用監(jiān)控熔斷歷史記錄自定義擴(kuò)展業(yè) 務(wù) 代 碼外部接口服務(wù)Ame

8、tricmetricmetric外部接口服務(wù)B外部接口服務(wù)C阻斷請(qǐng)求隔離故障Meerkat監(jiān)控上報(bào)穩(wěn) - 多機(jī)房HA區(qū)域性災(zāi)備多機(jī)房雙活運(yùn)營(yíng)商A運(yùn)營(yíng)商B運(yùn)營(yíng)商A運(yùn)營(yíng)商C運(yùn)營(yíng)商B運(yùn)營(yíng)商CIDC機(jī)房地域1地域2地域3準(zhǔn) 監(jiān)控關(guān)注的元素系統(tǒng)層面:CPU,內(nèi)存,網(wǎng)絡(luò)應(yīng)用層面:QPS,時(shí)間,成功率業(yè)務(wù)層面:邏輯正確性使用的技術(shù)PythonZabbix + Grafana + 時(shí)序DB郵件、短信、IM“缺少監(jiān)控的線上系統(tǒng)就像是閉眼飛行”03PART THREE 后臺(tái)架構(gòu)設(shè)計(jì)的發(fā)展思考如何設(shè)計(jì)一個(gè)好的后臺(tái)架構(gòu)?面向?qū)ο螅?分層,模 塊化,SOA, 微服務(wù),容器,云計(jì)算,Devops,人工智能, VR,深度學(xué)習(xí),BI,大 數(shù)據(jù),虛擬現(xiàn)實(shí),人機(jī)交互,區(qū)塊鏈C+,Java,Go, Spring,Tomcat, Jetty, Apache, HDFS, Storm,Hadoop, ES, Thrift,Nginx,MQ, Docker,Swarm, Kubernetes,Kafka影響技術(shù)架構(gòu)的關(guān)鍵因素技術(shù)架構(gòu)業(yè)務(wù)架構(gòu)組織架構(gòu)產(chǎn)品架構(gòu)充分考慮業(yè)務(wù)的差異性要拿著錘子找釘子.不要選擇最合適的技術(shù)棧要盲目追求技術(shù)的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論