阿里技术专家:日活5亿的淘宝技术发展历程和架构经验分享!18页ppt详解
點(diǎn)擊“技術(shù)領(lǐng)導(dǎo)力”關(guān)注???每天早上8:30推送
作者|?Mr.K ??編輯| Emma
來源|?技術(shù)領(lǐng)導(dǎo)力(ID:jishulingdaoli)
本文整理自,阿里高級(jí)技術(shù)專家 王晶昱,在技術(shù)大會(huì)上的分享的《淘寶技術(shù)發(fā)展歷程和架構(gòu)經(jīng)驗(yàn)》。
淘寶的整個(gè)發(fā)展過程,技術(shù)架構(gòu)演進(jìn)歷程,以及演進(jìn)過程中的思考,對(duì)我們是有借鑒意義的,尤其是正處在快速發(fā)展期的系統(tǒng)。架構(gòu)如何演進(jìn)、如何更好的對(duì)業(yè)務(wù)支撐、如何設(shè)計(jì)數(shù)據(jù)存儲(chǔ)方案等等。以下是正文:
01
淘寶前期的技術(shù)架構(gòu)
淘寶早期,上百人維護(hù)一個(gè)核心工程,會(huì)造成代碼沖突問題特別嚴(yán)重,項(xiàng)目團(tuán)隊(duì)之間協(xié)同代價(jià)高。人員更新速度比較快,代碼交接比較困難,源代碼膨脹很快。
這個(gè)階段在使用JBoss服務(wù)器、Spring框架、OR-Mapping框架等,也開始用到一些cache、分布式文件系統(tǒng)。
(本文圖片來源@阿里中間件團(tuán)隊(duì))
02
淘寶前期技術(shù)發(fā)展的問題
主要有三個(gè)問題:
1.業(yè)務(wù)支持緩慢,所有東西交叉盤繞在一起。
2.數(shù)據(jù)孤島。數(shù)據(jù)庫(kù)總是被不明來源的SQL查掛,同類數(shù)據(jù)格式不統(tǒng)一,無法形成合力。
3.數(shù)據(jù)庫(kù)能力達(dá)到上限。無法支撐海量數(shù)據(jù),及巨量讀寫請(qǐng)求。
數(shù)據(jù)庫(kù)CPU90%以上,每年down機(jī)最少一次,連接數(shù)不夠用。
維護(hù)人員多,團(tuán)隊(duì)職責(zé)不清,數(shù)據(jù)無法共享,團(tuán)隊(duì)各自為戰(zhàn)。
小型機(jī)數(shù)據(jù)庫(kù)壓力過大連接數(shù),單點(diǎn)系統(tǒng)風(fēng)險(xiǎn)很高。
03
淘寶3.0架構(gòu)應(yīng)運(yùn)而生
淘寶3.0架構(gòu)的特性:
服務(wù)化(SOA)?。系統(tǒng)專業(yè)化分工,減少學(xué)習(xí)成本。拆分出了第一個(gè)業(yè)務(wù)服務(wù)中心:用戶中心 (UIC),在2008年初上線,標(biāo)志著淘寶分布式架構(gòu)的一個(gè)里程碑。接著,千島湖項(xiàng)目上線,包括交易中心(TC) ,類目屬性中心(Forest)。以及五彩石項(xiàng)目,包含:店鋪中心(SC) ,商品中心(IC) ,評(píng)價(jià)中心 (RC)。
組織結(jié)構(gòu)支持。在組織架構(gòu)上也隨之改變,按職能拆分成:服務(wù)中心團(tuán)隊(duì)、中間件團(tuán)隊(duì)、垂直產(chǎn)品團(tuán)隊(duì),分式上更加精細(xì)化。
數(shù)據(jù)庫(kù)拆分。可按需擴(kuò)容、盡可能對(duì)業(yè)務(wù)透明、用代理模型減少連接數(shù),選擇恰當(dāng)?shù)那蟹志S度。按業(yè)務(wù)場(chǎng)景的需要進(jìn)行拆分,比如:訂單表按用戶維度、時(shí)間維度進(jìn)行表拆分,數(shù)據(jù)異構(gòu)等等,都是在這個(gè)時(shí)期開始做的。
04
淘寶3.0技術(shù)架構(gòu)全景圖
淘寶3.0技術(shù)架構(gòu),從用戶場(chǎng)景來看,用戶發(fā)起一個(gè)請(qǐng)求,透過CDN層,到達(dá)Web應(yīng)用層,在IDC內(nèi)部這些請(qǐng)求,通過EDAS分發(fā)到各個(gè)業(yè)務(wù)服務(wù)中心,如商品中心、用戶中心等等。這些應(yīng)用會(huì)訪問OCS緩存服務(wù)、OSS文件存儲(chǔ)服務(wù)。
通過數(shù)據(jù)庫(kù)訪問層,SQL查詢被路由到各分庫(kù)、分表當(dāng)中,部分查詢調(diào)用搜索引擎opensearch。
這個(gè)技術(shù)架構(gòu),支撐著天貓、淘寶、國(guó)際、聚劃算等事業(yè)群,以及他們下面的具體業(yè)務(wù)線,如高德、阿里健康、釘釘?shù)取?/p>
05
淘寶服務(wù)化系統(tǒng)的演進(jìn)
淘寶服務(wù)化系統(tǒng)的演進(jìn),包括:
服務(wù)化架構(gòu)。把應(yīng)用打散拆分,能力和業(yè)務(wù)內(nèi)聚形成統(tǒng)一服務(wù)能力單元。
自動(dòng)化、高可靠。任何節(jié)點(diǎn)、鏈路夾在昂,能夠自動(dòng)檢測(cè),優(yōu)化確保高可用。
去中心化,線性擴(kuò)展。服務(wù)能力,隨著資源增加微服務(wù)級(jí)線性性能和擴(kuò)容。
數(shù)據(jù)化運(yùn)營(yíng)。服務(wù)運(yùn)行實(shí)時(shí)監(jiān)控,數(shù)據(jù)積累可視化,提供系統(tǒng)優(yōu)化基礎(chǔ)。
異步化,最終一致性。高性能消息服務(wù)框架、系統(tǒng)應(yīng)用盡量無狀態(tài)化,確保最終一致性。
使用成熟組件。使用在生產(chǎn)環(huán)境中證明過的可靠成熟組件,用戶量翻倍,系統(tǒng)復(fù)雜度也會(huì)翻倍。
06
淘寶服務(wù)化架構(gòu)
服務(wù)化特征。系統(tǒng)由服務(wù)單元組成,服務(wù)能力開放,數(shù)據(jù)共享,團(tuán)隊(duì)垂直化。
?優(yōu)勢(shì)。業(yè)務(wù)支撐更敏捷,利于數(shù)據(jù)分析與挖掘,無數(shù)據(jù)孤島,技術(shù)引領(lǐng)無限可能
07
系統(tǒng)架構(gòu)去中心化,線性擴(kuò)展
特征:整個(gè)系統(tǒng)無單點(diǎn),系統(tǒng)中所有角色可單獨(dú)擴(kuò)縮,故障影響小。
優(yōu)勢(shì):應(yīng)用更穩(wěn)定、擴(kuò)展性好。
08
異步化,最終一致
流程異步化,去鎖,并行,最終一致。
降低延遲,提升用戶體驗(yàn);系統(tǒng)解耦合,提升開發(fā)效率;部分替代分布式事務(wù)功能。
09
使用成熟基礎(chǔ)組件
選擇用戶廣泛的產(chǎn)品,選擇經(jīng)過4~6年左右的穩(wěn)定期的軟件,規(guī)避銷售主導(dǎo)的軟件產(chǎn)品。
保證項(xiàng)目按期支付,保證項(xiàng)目上線后的系統(tǒng)穩(wěn)定,出現(xiàn)問題以后有充分的掌控力
10
運(yùn)維工作自動(dòng)化
運(yùn)維自動(dòng)化,水平擴(kuò)展自動(dòng)化,部署自動(dòng)化,故障處理自動(dòng)化。云計(jì)算的基本屬性,人不能隨著機(jī)器增加而增加。
11
數(shù)據(jù)化技術(shù)運(yùn)營(yíng)
具有億級(jí)數(shù)據(jù)的分鐘級(jí)計(jì)算能力、 成熟的數(shù)據(jù)化運(yùn)維/運(yùn)營(yíng)工具 、 技術(shù)、管理、運(yùn)營(yíng)有數(shù)據(jù)化運(yùn) 營(yíng)的方法論和意識(shí)的特征。具有 改善可量化,更科學(xué)、1分鐘內(nèi)故障確切定位位置、 “不能比我們的客戶更晚知道 我們不可服務(wù)“的優(yōu)勢(shì)。
12
阿里關(guān)鍵技術(shù)組件介紹
主要包括:企業(yè)級(jí)分布式應(yīng)用服務(wù)(EDAS),阿里分布式數(shù)據(jù)庫(kù)服務(wù)(DRDS),阿里分布消息服務(wù)(ONS)。
企業(yè)級(jí)分布式應(yīng)用服務(wù)(EDAS),包括對(duì)各個(gè)服務(wù)化組件,進(jìn)行鏈路監(jiān)控治理,服務(wù)調(diào)用是否健康,故障自恢復(fù)等。
分布式數(shù)據(jù)庫(kù)(DRDS),可無限線性擴(kuò)容的分布式數(shù)據(jù)庫(kù),最大節(jié)點(diǎn)數(shù)超過500臺(tái)機(jī)器,容量、吞吐 線性增長(zhǎng)。
可運(yùn)維的分布式數(shù)據(jù)庫(kù),分布式DDL語句支持,平滑流暢的控制臺(tái)體驗(yàn),各類MySQL 圖形工具兼容。
兼容復(fù)雜MySQL語法的分布式數(shù)據(jù)庫(kù),分布式跨機(jī)Join,跨機(jī)分頁(yè)聚合,多機(jī)嵌套查詢,MySQL函數(shù)兼容性支持 ,在多個(gè)政務(wù)類場(chǎng)景中應(yīng)用廣泛。
分布式消息通知系統(tǒng)(ONS),通過消息將業(yè)務(wù)系統(tǒng)解耦,持久化消息,100%可靠;支持集群訂閱;支持事務(wù)消息。
12
本文小結(jié)
一、淘寶前期技術(shù)發(fā)展的三個(gè)問題:
業(yè)務(wù)支持緩慢,所有東西交叉盤繞在一起。
數(shù)據(jù)孤島。數(shù)據(jù)庫(kù)總是被不明來源的SQL查掛,同類數(shù)據(jù)格式不統(tǒng)一,無法形成合力。
數(shù)據(jù)庫(kù)能力達(dá)到上限。無法支撐海量數(shù)據(jù),及巨量讀寫請(qǐng)求。
二、淘寶3.0架構(gòu)的特性:服務(wù)化(SOA) 、組織結(jié)構(gòu)支持、數(shù)據(jù)庫(kù)拆分。
三、淘寶服務(wù)化系統(tǒng)的演進(jìn),包括:
服務(wù)化架構(gòu)。把應(yīng)用打散拆分,能力和業(yè)務(wù)內(nèi)聚形成統(tǒng)一服務(wù)能力單元。
自動(dòng)化、高可靠。任何節(jié)點(diǎn)、鏈路夾在昂,能夠自動(dòng)檢測(cè),優(yōu)化確保高可用。
去中心化,線性擴(kuò)展。服務(wù)能力,隨著資源增加微服務(wù)級(jí)線性性能和擴(kuò)容。
數(shù)據(jù)化運(yùn)營(yíng)。服務(wù)運(yùn)行實(shí)時(shí)監(jiān)控,數(shù)據(jù)積累可視化,提供系統(tǒng)優(yōu)化基礎(chǔ)。
異步化,最終一致性。高性能消息服務(wù)框架、系統(tǒng)應(yīng)用盡量無狀態(tài)化,確保最終一致性。
使用成熟組件。使用在生產(chǎn)環(huán)境中證明過的可靠成熟組件,用戶量翻倍,系統(tǒng)復(fù)雜度也會(huì)翻倍。
如果覺得本文對(duì)您有幫助,請(qǐng)點(diǎn)在看、分享朋友圈,感謝您的支持!
?-END-?
關(guān)注“技術(shù)領(lǐng)導(dǎo)力”公眾號(hào)
用故事講技術(shù),有趣,有料!
想加入社區(qū),跟100位互聯(lián)網(wǎng)大咖學(xué)習(xí)?
請(qǐng)?jiān)诠娞?hào)中回復(fù):“加群”
大家在看:
1.迷信中臺(tái)是一種病,得治
2.微信架構(gòu)總監(jiān):10億日活場(chǎng)景下的微服務(wù)架構(gòu)
3.雷軍、張小龍:為何高手的努力深入而輕松
4.阿里VP李飛飛:下一代云原生數(shù)據(jù)庫(kù)技術(shù)
5.馬化騰和張一鳴的灰度思維是什么?
6.我是如何在獨(dú)角獸公司做業(yè)務(wù)中臺(tái)、數(shù)據(jù)中臺(tái)?
喜歡就點(diǎn)在看!
總結(jié)
以上是生活随笔為你收集整理的阿里技术专家:日活5亿的淘宝技术发展历程和架构经验分享!18页ppt详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 22年低分上岸成都电子科技大学计算机经验
- 下一篇: 程序员发展职业规划_梁胜博士:写给程序员