微信一億使用者背後架構秘密

2021-06-09 17:30:34 字數 1349 閱讀 9621

敏捷是一種態度 敏捷就是試錯

海量系統上的敏捷 無異於懸崖邊的跳舞

如何做到這一切?周顥認為,首先,必須建立起一種狂熱的技術信念,就是一定是可以做到的。然後,需要用一些穩固的技術(理念)來支撐,例如大系統小做、讓一切可擴充套件、必須有基礎元件、輕鬆上線(灰度、灰度、再灰度;精細監控;迅速響應)...等等來支撐。

四**器大系統小做、讓一切可擴充套件、要有基礎元件、輕鬆上線

大系統小做:當設計龐大系統的時候,應該盡量分割成更小的顆粒,使得專案之間的影響是最小的。一切可擴充套件:在高穩定度、高效能的系統中間,為了穩定性能把它設計成不變化的系統,但為了支援敏捷需要讓一切的東西都要變得可以擴充套件。必須建立基礎元件:要解決複雜問題的時候,需要將已有的經驗固化下來,固化下來的東西會成為系統中的一部分。輕鬆上線:當做了變化並把它從開發環境中部署到現有的運營環境中去,在這個過程中,「灰度」這個詞非常關鍵,就是在黑和白之間的選擇,必須要變成一種小規模嘗試,再逐步擴充套件到海量過程中的乙個問題。

大系統小做——僅僅把模組變得更為清晰,這在海量系統設計開發中是不夠的,還需要在物理環境上進行分離部署,出現問題的時候可以快速發現,並且在最快的情況下解決掉。

大系統小做 混搭模式

一切可擴充套件——網路協議可擴充套件、資料儲存可擴充套件

svrkit——client/server自動**生成框架:10分鐘搭建內部伺服器logicserver——邏輯容器:隨時新增新邏輯ossagent——監控/統計框架:所見即所得的監控報表儲存元件——遮蔽容災/擴容等複雜問題。

灰度、灰度、再灰度

孫子兵法:古之所謂善戰者,勝於易勝者也

協議。手機終端跟後台伺服器之間的互動協議,這個協議的設計是整個系統的骨架,在這一點做好設計可以使得系統的複雜度大大降低。容災。當系統出現了若干伺服器或若干支架(宕機的時候),仍然需要讓系統盡可能的提供正常的服務。輕重。如何在系統架構中分布功能,在哪乙個點實現哪乙個功能,代表系統中間的功能配置。監控。為系統提供乙個智慧型儀表盤。

對此,業界標準的解決方案:messaging and presence protocol:1)xmpp;2)sip/******。它的優點是簡單,大量開源實現。而缺點同樣明顯:1)流量大:狀態初始化;2)訊息不可靠。

追求完美設計的團隊不能勝任海量服務

set模型+雙寫

前輕後重 功能點後移

接入優化:從gslb到ip重定向

分而治之 把監控嵌入基礎框架

把監控嵌入基礎框架

微信架構秘密

敏捷是一種態度 敏捷就是試錯 海量系統上的敏捷 無異於懸崖邊的跳舞 如何做到這一切?周顥認為,首先,必須建立起一種狂熱的技術信念,就是一定是可以做到的。然後,需要用一些穩固的技術 理念 來支撐,例如大系統小做 讓一切可擴充套件 必須有基礎元件 輕鬆上線 灰度 灰度 再灰度 精細監控 迅速響應 等等來...

騰訊微信技術總監周顥 一億使用者增長背後的架構秘密

敏捷是一種態度 敏捷就是試錯 海量系統上的敏捷 無異於懸崖邊的跳舞 如何做到這一切?周顥認為,首先,必須建立起一種狂熱的技術信念,就是一定是可以做到的。然後,需要用一些穩固的技術 理念 來支撐,例如大系統小做 讓一切可擴充套件 必須有基礎元件 輕鬆上線 灰度 灰度 再灰度 精細監控 迅速響應 等等來...

騰訊微信技術總監周顥 一億使用者增長背後的架構秘密

敏捷是一種態度 敏捷就是試錯 海量系統上的敏捷 無異於懸崖邊的跳舞 如何做到這一切?周顥認為,首先,必須建立起一種狂熱的技術信念,就是一定是可以做到的。然後,需要用一些穩固的技術 理念 來支撐,例如大系統小做 讓一切可擴充套件 必須有基礎元件 輕鬆上線 灰度 灰度 再灰度 精細監控 迅速響應 等等來...