溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料

發布時間:2020-08-04 19:03:31 來源:ITPUB博客 閱讀:275 作者:Java知音 欄目:軟件技術

阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料


淘寶技術架構變遷

自2003年創立以來的,淘寶業務發展非常迅速,幾乎是每年以100%的速度在成長。創立之初,為了快速上線,搶占市場,選擇了當時流行的LAMP架構,用PHP作為網站開發語言, Linux作為操作系統,Apache作為Web服務器,MySQL為數據庫,用了三個月不到的時間淘寶就上線了。當時整個網站應用服務器大概10臺左右,MySQL數據庫采用了讀寫分離、一主兩備的部署方式。

2004年在淘寶業務發展的推動下,我們參考電信運營商、銀行等的一些企業解決方案,將LAMP架構改造為Oracle+IBM小型機的數據庫架構和EMC存儲方式(圖2)。雖然方案成本昂貴,但性能非常好。同時,隨著網站流量的增加,系統顯得有些不堪重負。當時最擔心的問題是網站流量如果持續增加,交易量持續增加,網站的系統架構怎么設計?如何選擇數據庫?如何選擇緩存?如何構建業務系統?……后來參考eBay的互聯網設計架構,設計了一個Java的技術方案,并使用了非常多的Java開源產品。例如,選擇當時比較流行的JBoss,作為應用服務器;選擇一個開源的IOC容器Spring,來管理業務類;封裝了一個數據庫訪問工具IBatis,作為數據庫和Java類的Object-Reletionship映射工具。另外,對于商品搜索功能,采用自己開發的ISearch搜索引擎來取代在Oracle數據庫中進行搜索,降低數據庫服務器的壓力。做法比較簡單,每天晚上全量將Oracle小型機的數據dump出來,Build成ISearch的索引,當時商品量也不大,一臺普通配置的服務器,基本上可以將所有的索引都放進去,沒做切分,直接做了一個對等集群。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



從2006年開始,淘寶為了改善用戶體驗,開始建立自己的CDN站點,由于淘寶的主要流量來源于各種商品圖片、商品描述等靜態數據,自建CDN可以使這些資源離用戶更近,提升用戶訪問速度,改善用戶瀏覽網站的體驗。

2007年,淘寶全年的交易額超過400億元,平均近1億多一天,每天有100多萬筆交易被創建。當時面對的幾個主要問題是:一些系統的流量非常大,如商品詳情等,如果直接訪問數據庫,會導致數據庫壓力非常大;如用戶信息,訪問一個頁面,都需要查詢買家信息、賣家信息、顯示出買家的信用、賣家的服務星級等。此時,淘寶采用分布式緩存TDBM(Tair的前身)將這些熱點靜態數據緩存在內存中,提高訪問性能。另外,將自己研發的分布式文件系統TFS部署在多臺x86服務器上,取代商業的NAS存儲設備來存儲淘寶的各種文件信息,如商品圖片、商品描述信息、交易快照信息,來達到降低成本和提高整體系統的容量和性能的目的,同時可以實現更靈活的擴展性。第一期上線大概200臺TFS服務器。另外,將ISearch搜索引擎改為分布式架構,支持水平擴展,部署了48個節點。圖3展示了這一架構思路。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



2008年初,為了解決Oracle數據庫集中式架構的瓶頸問題(連接數限制、I/O性能),將系統進行了拆分,按照用戶域、商品域、交易域、店鋪域等業務領域進行拆分,建立了20多個業務中心,如商品中心、用戶中心、交易中心等。所有有用戶訪問需求的系統,必須使用業務中心提供的遠程接口來訪問,不能夠直接訪問底層的MySQL數據庫,通過HSF這種遠程通信方式來調用業務中心的服務接口,業務系統之間則通過Notify消息中間件異步方式完成調用。圖4是淘寶的分布式架構圖。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



從2010年開始,淘寶網重點著眼于統一架構體系,從整體系統層面考慮開發效率、運維標準化、高性能、高可擴展性、高可用、低成本方面的要求,底層的基礎架構統一采用了阿里云計算平臺(圖5),使用了SLB、ECS、RDS、OSS、ONS、CDN等阿里云計算服務,并通過阿里云服務提供的高可用特性,實現雙機房容災和異地機房單元化部署,為淘寶業務提供穩定、高效和易于維護的基礎架構支撐。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



在從IOE架構最終向云計算平臺技術架構轉移的過程中,主要面臨以下幾個技術挑戰。

■ 可用性:脫離小型機和高端存儲的高冗余機制,采用基于PC服務器的分布式架構的云計算平臺能否做到高可用。

■ 一致性:Oracle基于RAC和共享存儲實現的物理級別一致性,基于RDS for MySQL能否達到同樣的效果。

■ 高性能:高端存儲的I/O能力很強,基于PC服務器的RDS能否提供同樣甚至更高的I/O處理能力,MySQL和Oracle對SQL的處理性能是否相同。

■ 擴展性:業務邏輯如何拆分,如何服務化,數據分多少庫分多少表,什么維度分,后期二次拆分如何更方便等。

基于阿里云計算平臺,通過采用合適的技術策略和最佳實踐,包括:應用無狀態,有效使用緩存(瀏覽器緩存、反向代理緩存、頁面緩存、局部頁面緩存、對象緩存和讀寫分離),服務原子化,數據庫分割,異步解決性能問題,最小化事物單元,適當放棄一致性。以及自動化監控/運維手段包括監控預警、配置統一管理,基礎服務器監控,URL監控,網絡監控,模塊間調用監控,智能分析監控,綜合故障管理平臺,容量管理??梢院芎玫亟鉀Q以上問題,從而達到整體系統的高可擴展性、更低的成本、更高的性能和可用性的實現效果。

遷云架構最佳實踐

淘寶的技術架構是一個伴隨業務逐漸發展而逐步演進的過程,中間沉淀了很多寶貴的架構最佳實踐。對于大部分企業級客戶來說,可以結合自己的業務場景選擇合適的技術架構來實現整體IT系統的互聯網化設計。不同應用場景下的遷云架構,包括文件存儲、應用服務、OLTP數據庫、OLAP數據庫。

對于文件存儲方式,可以直接用OSS取代EMC存儲實現海量數據文件的存儲,OSS存儲最大容量可以達40PB,同時由于OSS是分布式存儲方式,可以通過多個節點的并行讀寫顯著提高數據訪問性能。對于大文件,還可以通過Multipart Upload的方式,將大文件分塊并行傳輸與存儲,實現高性能。

對于應用服務,可通過SLB+多臺ECS實例組合取代IBM小型機(圖6),也可以根據不同應用類型,直接基于ACE、ONS、OpenSearch等阿里云中間件云服務部署。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



OLTP應用的遷移相對復雜。目前阿里云的RDS實例最高是48GB內存,14000IOPS,1TB的存儲容量(SSD存儲),支持MySQL和SQL Server。這個配置作為單數據庫服務器來使用可以滿足很多場景的數據庫應用需求,可直接取代大部分場景下的IBM小型機+Oracle數據庫+EMC存儲。

對于性能要求更高的應用,可考慮引入開放緩存服務OCS,將部分查詢數據加載至分布式緩存中,減少RDS的數據查詢次數,提升系統的數據查詢并發效率和降低響應時間,如圖7所示。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



對于讀的請求遠大于寫請求的場景,可以考慮用多個RDS數據庫,采用分布式方式實現讀寫分離,寫交易主要發生在主庫,讀請求訪問備庫,可以根據需求對讀庫進行擴展,以實現整體請求性能的提升。

阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



對于數據規模較大的數據庫表,可以通過水平切分的方式,將數據分布在多個RDS實例上,通過并行的分布式數據庫操作來實現性能和容量的提升。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



總的來說,通過遷移到RDS、引入數據緩存、分庫分表、讀寫分離等多種方式可以用Scale-Out方式取代原有的IOE架構,并且獲得更好的性能和擴展性。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



對于OLAP應用,可采用ODPS+OTS+RDS/ADS的解決方案取代小型機+Oracle DB+OLAP+RAC+EMC存儲解決方案,如圖11所示??傮w來看,遷云的通用架構方案如圖12所示,針對具體業務系統的遷云方案還需要根據實際情況進行分析和合理選擇。


阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料



阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料


以上就是淘寶的技術架構變遷詳解,以下是 最新阿里P8架構師談架構設計系列詳解 。

阿里P8架構師談:淘寶技術架構從1.0到4.0的架構變遷!附架構資料


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女