摘要:作者丨魏旸騰訊高級工程師,具有年運維經驗的專家。月日,首期沙龍海量運維實踐大曝光在騰訊大廈圓滿舉行。您也可以在騰訊織云公眾號下載本次演講。相關文章騰訊云運維干貨沙龍海量運維實踐大曝光一騰訊云運維干貨沙龍海量運維實踐大曝光三沙龍下載地址
作者丨魏旸:騰訊高級工程師,具有15年運維經驗的專家。負責QQ空間、微云、QQ空間相冊等的運維工作。
12月16日,首期沙龍“海量運維實踐大曝光”在騰訊大廈圓滿舉行。沙龍出品人騰訊運維技術總監、復旦大學客座講師、DevOps專家梁定安,講師騰訊手機QQ運維負責人郭智文,騰訊高級工程師魏旸,騰訊SNG資深運維專家周小軍出席沙龍,并帶來精彩的技術分享。為了便于大家學習,特將本次沙龍講師的演講內容進行了整理。您也可以在騰訊織云公眾號下載本次演講PPT。
背景騰訊社交業務包括QQ、QQ空間、QQ相冊等核心業務。核心業務按深圳、天津和上海三地分布,各支撐華南、華中、華東、華北、西北、西南等大區的用戶訪問。
大家都知道核心業務多地部署物理容災,名字服務、負載均衡等手段架構容災。但是當機房、網絡等大范圍故障真正發生時,我們要怎么做才能保證業務持續可用?拿前一段時間騰訊深圳某個機房光纖被挖斷的案例來講,業務碰到的問題:
機房爆炸了,會影響多少用戶?
是否需要調度?
怎么調度?
天津機房覆蓋范圍的用戶調度到哪里?調多少?
怎么調度?
帶著這些問題,我簡單介紹一下空間SET化分布異地多活方案。
為什么要做SET?提升質量,提升速度,提升效率,節約成本。
業務通過SET化部署在多個物理機房,當某個機房故障時,我們可以快速切換服務到其他機房,可以做到物理容災。同時,多地部署也提供了用戶就近接入的能力,提升用戶體驗。再者,業務關聯的服務部署在同一個城市或者機房,能夠極大減少業務之間的機房穿越帶寬,降低成本。最后,SET的復制結合織云的快速部署能力,我們能夠快速復制并在不同地域部署多個業務SET。
SET的屬性簡單來說,SET是一個包含了多個標準化模塊的集合,同時包含了更多的業務屬性,比如業務形態,核心指標,柔性策略,地域,調度策略等等。
怎么分SET?橫向分布與條帶化的思維 ? 海量用戶按不同比例被分流到不同的專區訪問。比如用戶接入維度,我們劃分了PC、移動端SET,同時在移動端我們又可以細分為安卓和蘋果用戶。比如運營商,比如地域分布。每一個SET都需要有可度量的指標,空間業務主要根據SET內模塊負載、可支撐的用戶量、和實時交易量等維度來評估一個SET。
SET模型在有了可度量的SET標準后,我們就可以基于自己的業務形態來創建SET模型了。以空間為例,用戶登錄進空間首先會看到自己發表的歷史說說,相冊,好友動態等等信息,我們把這一類的業務場景劃分為讀數據SET。用戶會在空間上發說說,上傳照片或視頻,我們把這一類的業務場景劃分為寫數據SET。同時深圳的PC或者移動端用戶更新了空間,數據需要同步到其他地域的后端存儲上,空間有一套專用的同步中心架構來保證數據同步。
我們基于空間的業務場景制定的一個大致的模型就是這樣:根據接入層區分用戶,單點寫,多點讀,數據同步模塊保證多點讀的數據一致性。
命名規范:初步模型制定好以后,我們需要針對不同的架構和業務場景來劃分不同的SET。比如空間首屏,主要由空間的信息中心模塊來負責數據拉取展現,我們把信息中心相關聯的業務模塊都統一劃分為I類SET。再根據不同的
我們還根據不同數字代表不同的地域信息和SET順序。
1) 名稱分為2段,用“_”分割;第1段固定為SET,表示專區;
2) 第二段分為4節,每節占一位,前3位與目前規則一致:
3) SET類型,簡寫為A、D 、B、I,分別代表接入、數據SET、基礎數據,信息中心等;
4) 地域信息,分別有深圳,上海、西安等,用0、1、2分別按序增加,最多到16進制等
5) SET數序號,從1、2、3開始,最多到16進制的F;
6) 業務產品信息,即Qzone為各業務搭建的SET,用一個字母代替,如P、G、U分別代表如PENGYOU、3G、UGC等
同步中心同步中心是空間業務SET化能力的一個重要組件,業務數據的同步都依賴同步中心。簡單介紹一下同步中心的架構:單寫多度的業務講數據接入同步中心后,同步中心通過多種技術手段保證數據同步到多地的讀SET。同步中心架構較復雜,這里主要介紹一下同步中心的有序轉發:
許多業務對用戶請求處理的先后順序有很嚴格的要求,為了實現用戶請求的有序轉發,同步中心做了三個功能:
接入機轉發請求到存儲機使用有狀態l5,確保同一個號碼的請求流水落到同一臺機器上。
固定進程讀取固定號段,平均分配每個進程處理的號段,并且確保同一個號碼的請求由同一個進程處理。
使用半異步方式進行轉發,批量讀取流水,對不同號碼的請求流水并發轉發,對相同號碼的流水進行串行轉發。
空間實際的SET展示 SET鏈路SET內部和不同SET的業務模塊都是通過名字服務來相互訪問的
用戶層GSLB->STGW=TGW+Nginx,Nginx自動獲取vip
接入->邏輯:L5,vip->l5名字服務。負載均衡的時候有過載保護
邏輯->存儲:L5。Stgw和L5都是騰訊自研的路由、名字服務組件。調度都是基于名字
服務來實施。L5有SET化的標簽,可以讓SET的服務配置文件保持一致的情況下,服務只在SET內調度。可以極大提升SET的部署效率。
SET容量管理:指定好的SET,需要通過壓測來找出SET內業務模塊資源的最優配比。我們會通過調度現網用戶來對SET做壓測,通過壓測找出SET內某個模塊的短板并及時調整資源配比。同時,隨著SET內模塊服務的升級,服務性能也在變化,我們會定期做調度演習來壓測SET的完整鏈路,及時更新SET內模塊的資源配比,可支撐用戶數等SET核心指標。
SET的部署和擴容在制定好SET模型,明確了每個SET可以支撐多少用戶量,對應的業務場景,包含了多少個模塊,可以支撐多少用戶后,就可以開始著手SET部署了。每個SET建立一個模板,錄入SET內包含的模塊,模塊內服務、權限、文件等信息保持一致,不同SET的配置不同
SET的復制根據SET模板快速部署。這些信息最后會同步到織云,由織云來快速部署服務。一個SET內幾十個模塊,幾百臺服務器可在10分鐘內完成自動化部署上線 。
SET的監控針對SET內不同的業務架構,業務形態,我們也開發了配套的監控工具。
SET的調度前面主要說了為什么要做SET,怎么做,以及怎么維護和監控,回到深圳機房光纖被挖斷的問題上來,我們是怎么做的?
每個SET都有可衡量的指標,模塊設備的平均負載都在40%左右。
如果網絡故障影響到了用戶接入W01 SET,我們會調整stgw將用戶轉移到部署在另一個機房的W02 SET。如果W01 訪問I01故障,我們可以把W01的訪問切換到W02。如果整個深圳機房都不可訪問,我們則會把請求切換到上海、天津的SET中。
柔性策略:重大活動期間,用戶量可能會突增幾倍甚至十幾倍,靠堆設備不現實。我們針對這類場景制定了柔性策略,當SET容量達到一定的標準時,比如CPU負載達到70%,我們就會開啟業務的柔性策略,犧牲用戶部分非核心功能體驗來保證業務整體可持續可用。柔性策略有分級,SET容量沒達到一個標準就會自動啟用不同的柔性策略。
相關文章騰訊云運維干貨沙龍-海量運維實踐大曝光 (一)
騰訊云運維干貨沙龍-海量運維實踐大曝光 (三)
沙龍PPT下載地址:https://share.weiyun.com/5c406a57164ed4cf7e248160aebf74c3
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8024.html
摘要:月日,首期沙龍海量運維實踐大曝光在騰訊大廈圓滿舉行。六總結相關文章騰訊云運維干貨沙龍海量運維實踐大曝光二騰訊云運維干貨沙龍海量運維實踐大曝光三沙龍下載地址 作者丨郭智文:騰訊高級工程師,手機QQ運維負責人。多年來,對移動互聯網應用的接入質量度量、優化有豐富的實踐經驗,專注于業務架構優化、彈性伸縮、運營服務管理、幫助產品打造極致的技術基礎和質量口碑。 12月16日,首期沙龍海量運維實踐大...
摘要:月日,首期沙龍海量運維實踐大曝光在騰訊大廈圓滿舉行。織云高效的實踐是,它是以運維標準化為基石,以為核心的自動化運維平臺。 作者丨周小軍,騰訊SNG資深運維工程師,負責社交產品分布式存儲的運維及團隊管理工作。對互聯網網站架構、數據中心、云計算及自動化運維等領域有深入研究和理解。 12月16日,首期沙龍海量運維實踐大曝光在騰訊大廈圓滿舉行。沙龍出品人騰訊運維技術總監、復旦大學客座講師、De...
閱讀 3699·2021-11-11 16:55
閱讀 1645·2021-10-08 10:04
閱讀 3580·2021-09-27 13:36
閱讀 2760·2019-08-30 15:53
閱讀 1854·2019-08-30 11:17
閱讀 1259·2019-08-29 16:55
閱讀 2098·2019-08-29 13:57
閱讀 2513·2019-08-29 13:13