百度貼吧10億量級LAMP架構分享

來源:互聯網
上載者:User

  貼吧是功能性產品,唯快不破是永恒的準則,這一特點決定了快速迭代是需要解決的關鍵性問題。快速迭代,分解開來有如下部分:開發階段,快速開發;測試階段,包含了環境快速搭建、自動化測試載入器;營運階段,包含了叢集管理技術、自動化營運工具;同時,這三方面的工作需要一個整體性的解決方案銜接起來。

  早期的貼吧,作為一個高效能社區,功能相對單一,全部採用C語言開發,系統可重用程度低,開發、測試效率低,營運方面的積累也很少。為了提高效率,開始嘗試LAMP架構,經過幾年的發展,貼吧已全部遷移到了LAMP。隨著產品規模急劇膨脹,30+子系統,150+模組,500+機器,10億+流量,在LAMP架構方面積累了很多經驗,逐漸形成了快速迭代的一體化方案。如所示:

  該解決方案由開發階段、測試階段、營運階段組成。開發階段又分成接入層、商務邏輯層、儲存層。該解決方案支撐大規模的線上應用,同時保持了快速迭代的特性。基於該解決方案,開發人員能專註於商務邏輯開發,測試人員能專註於持續整合,營運成本能大大降低。

  開發

  開發方面分為接入層、商務邏輯層、儲存層。

  接入層處於瀏覽器和後端服務之間,用來解析http協議並組織成相應的協議格式,完成用戶端和伺服器之間的通訊,還包括攻擊防範、頁面緩衝、負載平衡等多種功能。Web server是其核心組成部分。接入層的目標是通過統一的方案提供簡單可依賴的接入層架構,經過全面調研nginx具有通用性強、效率高、功能全面、配置靈活等特點,是webserver未來發展的主力軍,確定採用nginx統一接入層。

  商務邏輯層包含了PHP架構、商務邏輯、LIB庫、互動層。商務邏輯層常常包含一些開發規範,這些規範就像法律一樣,我們不僅要有法可依,還要有法必依。在我們的解決方案中,PHP架構=規範+庫,規範比如目錄部署規範、URL規範、配置規範等,這些規範通過相應的庫實現,以達到有法必依的目的。 LIB庫封裝常用的功能。基於這個解決方案,開發人員開發應用,只需完成商務邏輯部分。

  中介層,如所示,包含在商務邏輯層中,對於商務邏輯層的快速迭代非常重要。中介層對下做互動抽象,支援各種協議屏蔽協議細節;通過資源定位屏蔽部署細節;通過負載平衡提高系統穩定性。中介層對上做介面抽象,支援服務整合、介面適配、公用邏輯。中介層首先建立系統–子系統–模組的體系,進行服務整合,圖中的API-LIB就是根據子系統劃分,將各模組的介面(MIDL: Module IDL)轉化為子系統介面(SIDL: Service IDL);介面適配,SERVICE的介面通過SIDL描述,讓介面描述、介面文檔、線上代碼等自動同步,可維護性大大提高,同時通過中繼資料規範保證全系統的介面一致,易用性大大提高;收斂公用邏輯,對於公用邏輯,比如許可權邏輯,收斂起來可維護性大大提高。

  儲存層,提供各種泛型服務、組件。其中的通用資料存放區架構提供通用的資料存放區和訪問解決方案,以一種統一的設計模式來支援大多數資料存放區模組的設計和實現;統一資料提供者,對外部屏蔽資料拆分和儲存的細節;做到資料存放區的良好擴充性,通過通用的資料拆分模式來應對資料增長;將具有共性的需求抽象成泛型服務或通用庫,以簡化設計和開發。

  基於該解決方案,開發一個應用只需要:在接入層配置相應的分流,在商務邏輯層開發商務邏輯,使用儲存層合適的服務或基於架構完成資料模組開發。能大大的提高開發效率,支援快速迭代。

  測試

  測試方面,為了支援快速迭代,必須提高自動化程度。而影響自動化的首要因素就是環境自動構建,常見的問題有:環境複雜,比如關聯關係複雜;環境搭建代價過大;環境功能不完整等。採用基準環境能解決這一問題,項目上線後自動從scmpf更新到基準環境;測試環境/開發環境從基準環境同步。基於基準環境,系統層級的持續整合也成為可能,同時可以集中大量測試載入器。

  營運

  營運方面面臨著很多問題:服務遷移成本高,環境不一致帶來各種復原,機器利用率不均衡,營運自動化程度低。為瞭解決這些問題,提出PHP系統營運方案。環境同步方面,主要是代碼同步的問題,採用營運規範+監控的方案;效能監控方面,基於互動層完成請求狀態、互動效能監控,基於調度中心擷取機器狀態; 機器調度方面,通過調度中心完成動態/半自動機器調度。如所示:

  展望

  通過該LAMP解決方案,在開發、測試、營運方面都能極大的提高效率。未來在LAMP架構方面,需要更多的在正常化、平台化上下功夫。規範之後才能開展這種自動化的工作提高效率;平台化可以把各種規範固化下來,提供自動化的支援。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.