關于QQ上雲
CSDN:QQ本身有二十多年曆史,它是有一定曆史技術包袱的,技術架構和雲架構的適配難度也更大。那麽,QQ上雲的過程中,遇到最大的困難是什麽?騰訊雲雲服務器副總經理李力:遇到的問題主要是,QQ對性能和成本的要求,在某些場景下對雲會有一個沖擊。QQ業務的特點,在于它是海量用戶互相訪問的過程,這個過程既不可預測,很難做一個良好規劃。CSDN:那麽是怎麽克服困難的?騰訊雲雲服務器副總經理李力:回到雲本身的基礎架構來說,如果要簡單區隔雲和物理機房,就得盡可能通過軟件定義,這樣才能讓雲具備更好的靈活性。
在具體內網的通過性上面,我們對所有的網絡流量和網絡關系,進行了軟件建模。所以我們給QQ的每一個連接和每一個包,都做了軟件層面的轉發。
這種情況下,雖然UDP(用戶數據報協議,User Datagram Protocol)沒有連接,但是在軟件定義裏面,有一個虛擬連接。並且,我們也會把建立連接的過程變成可控的,建立好之後,數據包就會不斷發送從而形成數據。
早期我們更傾向優化數據的性能,因爲大部分情況下,都是數據包建立好之後,工程師們再去進行數據傳輸。但在QQ裏面,並不完全是這樣。
由于QQ通訊裏面,會建立大量臨時的UDP訪問,而這也變成QQ上雲之後的性能瓶頸。而這個非常小的性能瓶頸,可能會導致成本急劇增加。
那麽,如何解決?在早期面對QQ場景時,我們會先把資源做補充,但是這樣就會失去成本優勢。後來,我們的研發團隊和虛擬化團隊花了很長時間,在具體細節方面做了很多工作,最後終于以一個非常合理的資源和成本,滿足了QQ群的業務要求。
以應對依賴和容災問題爲例,大家都知道,上雲需要進行灰度遷移,而遷移時不可避免地會造成自研機房和雲機房的帶寬穿越,爲此,工程師們需要提前評估自研機房到雲機房所需的帶寬。
假如使用城市方案,專線帶寬應該跟現有的三地部署方案對齊(CSDN注:QQ服務器分布在天津、上海和深圳三地)。那麽,QQ核心系統大概需要幾十G的帶寬。
假如采用IDC(Internet Data Center,互聯網數據中心)方案,QQ裏面有很多業務,使用的是有狀態的尋址方式,因此得把同城內的機房全部打散訪問(類似一致性哈希)。
爲此,工程師們評估了自研到雲機房的帶寬,評估之後發現支持QQ幾大核心系統(接入、消息、狀態、資料、關系鏈、登錄)所需要的帶寬爲N。
而所有QQ基礎功能都遷移到雲上,則至少需要2N的帶寬。考慮到容災問題,工程師們實際上拉了兩條專線互備(防止專線被挖斷形成孤島),即爲QQ上雲專門搭建了4N的帶寬專線。
采訪手記
偉人曾言:“不破不立。”
2018年騰訊“930調整”,曾在業界引起巨大反響。如今回頭來看,改革的結果非常成功。
如果說這次調整,有哪些代表作,QQ上雲一定是其中之一。
今天的你我,都在享受QQ上雲後的好處,它或許不像點擊一個App按鈕那樣直接,但是正如西方經典所講:“所見的是暫時的,所不見的是永遠的。”
芸芸衆生裏,一個工程師名字和容貌,很難被記住。
但他們的産品,能被很多人使用,也是一種記住。