大型網(wǎng)站到底該上云主機(jī)還是物理服務(wù)器
大型網(wǎng)站到底該上云主機(jī)還是物理服務(wù)器
流量峰值先決定架構(gòu)
一個(gè)大型網(wǎng)站真正難受的時(shí)刻,往往不是平時(shí),而是活動(dòng)頁(yè)上線、熱點(diǎn)內(nèi)容擴(kuò)散、支付回調(diào)集中到達(dá)的時(shí)候。很多團(tuán)隊(duì)一開始會(huì)把問題簡(jiǎn)化成“云主機(jī)便宜,物理服務(wù)器更穩(wěn)”,但站在業(yè)務(wù)角度看,先要判斷的是流量形態(tài)、峰值幅度和資源波動(dòng)是否足夠大。云主機(jī)和物理服務(wù)器適用大型網(wǎng)站嗎,答案從來(lái)不是簡(jiǎn)單的是或否,而是看網(wǎng)站的壓力是持續(xù)性的,還是明顯階段性的。
云主機(jī)的優(yōu)勢(shì)在彈性
云主機(jī)最適合應(yīng)對(duì)“平時(shí)不滿、關(guān)鍵時(shí)刻爆”的網(wǎng)站場(chǎng)景。對(duì)于內(nèi)容型門戶、活動(dòng)促銷頁(yè)、預(yù)約系統(tǒng)、短周期熱點(diǎn)專題等業(yè)務(wù),訪問量常常呈現(xiàn)波峰波谷明顯的特征,這時(shí)云主機(jī)的彈性伸縮、按需擴(kuò)容、快速切換會(huì)非常有價(jià)值。它不只是“開機(jī)快”這么簡(jiǎn)單,更重要的是配合負(fù)載均衡、緩存、對(duì)象存儲(chǔ)和自動(dòng)擴(kuò)縮容后,可以把一部分原本需要人工盯守的容量管理,變成系統(tǒng)自動(dòng)調(diào)度。大型網(wǎng)站如果前端頁(yè)面、靜態(tài)資源、接口層分離得比較清晰,云主機(jī)能先把大部分通用算力壓力接住。
物理服務(wù)器強(qiáng)在穩(wěn)定邊界
物理服務(wù)器并不是“老派方案”,它更像是一種把性能邊界做實(shí)的選擇。對(duì)于數(shù)據(jù)庫(kù)主庫(kù)、核心交易鏈路、搜索索引服務(wù)、實(shí)時(shí)計(jì)算節(jié)點(diǎn)、視頻轉(zhuǎn)碼集群這類對(duì)CPU、內(nèi)存、磁盤IO和網(wǎng)絡(luò)延遲都很敏感的業(yè)務(wù),物理服務(wù)器的資源獨(dú)占性更強(qiáng),性能抖動(dòng)更少,調(diào)優(yōu)空間也更清晰。大型網(wǎng)站在經(jīng)歷業(yè)務(wù)增長(zhǎng)后,常會(huì)發(fā)現(xiàn)真正卡住系統(tǒng)的不是前端并發(fā),而是后端某個(gè)核心組件的穩(wěn)定性。這個(gè)時(shí)候,物理服務(wù)器在持續(xù)高負(fù)載、強(qiáng)一致、低抖動(dòng)場(chǎng)景里,往往比通用云主機(jī)更容易把性能壓穩(wěn)。
混合部署更符合現(xiàn)實(shí)
現(xiàn)實(shí)里的大型網(wǎng)站,很少把所有系統(tǒng)都放在同一種服務(wù)器形態(tài)上。更常見的做法,是把彈性強(qiáng)、橫向擴(kuò)展快的業(yè)務(wù)放在云主機(jī)上,把對(duì)穩(wěn)定性和硬件掌控要求高的核心系統(tǒng)放在物理服務(wù)器上,再通過專線、VPC、內(nèi)網(wǎng)網(wǎng)關(guān)、統(tǒng)一監(jiān)控把兩邊打通。比如靜態(tài)內(nèi)容、活動(dòng)頁(yè)面、邊緣緩存適合云主機(jī)快速鋪開,而訂單庫(kù)、會(huì)員主檔、日志歸檔和部分中間件則可能更適合物理機(jī)承載。這種混合方式并不復(fù)雜,關(guān)鍵是把“哪些部分要彈性,哪些部分要確定性”先劃清楚。
判斷適用性的關(guān)鍵點(diǎn)
判斷云主機(jī)和物理服務(wù)器適用大型網(wǎng)站嗎,不能只看訪問量數(shù)字,還要看資源特征。第一看峰值是否短促,如果峰值來(lái)得快、走得也快,云主機(jī)更容易應(yīng)對(duì);如果高負(fù)載幾乎常態(tài)化,物理服務(wù)器更容易攤平成本。第二看業(yè)務(wù)是否有強(qiáng)狀態(tài),強(qiáng)狀態(tài)系統(tǒng)對(duì)磁盤、內(nèi)存和網(wǎng)絡(luò)時(shí)延更敏感,物理機(jī)優(yōu)勢(shì)更明顯。第三看運(yùn)維團(tuán)隊(duì)是否具備自動(dòng)化能力,沒有完善的監(jiān)控、發(fā)布、伸縮和容災(zāi)機(jī)制時(shí),盲目上云不一定比物理機(jī)省心。第四看合規(guī)和數(shù)據(jù)邊界,某些業(yè)務(wù)對(duì)數(shù)據(jù)隔離、審計(jì)鏈路、設(shè)備可控性要求更高,部署方式就不能只按“成本最低”來(lái)定。
別把采購(gòu)當(dāng)架構(gòu)
很多大型網(wǎng)站在早期升級(jí)時(shí),容易把“買更貴的機(jī)器”當(dāng)成“解決擴(kuò)容問題”。真正的瓶頸通常在架構(gòu),不在機(jī)型。數(shù)據(jù)庫(kù)沒有拆分讀寫、緩存命中率過低、圖片和靜態(tài)資源還擠在應(yīng)用層、接口沒有限流熔斷,這些問題即使用上高配物理服務(wù)器,壓力也只會(huì)換個(gè)地方堆積。云主機(jī)和物理服務(wù)器各有優(yōu)勢(shì),但大型網(wǎng)站更需要的是清晰的分層:入口層看彈性,中間層看擴(kuò)展,數(shù)據(jù)層看穩(wěn)定,關(guān)鍵鏈路看可控。把服務(wù)器形態(tài)和業(yè)務(wù)層級(jí)一一對(duì)應(yīng),才不會(huì)在高峰來(lái)臨時(shí)臨時(shí)補(bǔ)洞。