版權聲明:本文由龔皓原創文章,轉載請注明出處:
文章原文鏈接:https://www.qcloud.com/community/article/202
來源:騰雲閣 https://www.qcloud.com/community
2015年延續2014年的架構和成本優化思路,運營管理部在15年組織各大BG開展了大量的架構評審和成本優化工作。作為規划組的一員,在全年21個規划產品的評審中我主要參與了其中11個。在前期和業務產品,開發及運維的交流和准備材料過程中,發現雖然已經經過了一年的評審,溝通和交流,但大家對為什么要做架構評審,怎樣做架構評審,其中的思路和流程都還存在一定的不了解的地方,所以這里自己先拋磚引玉,跟大家聊聊討該如何做架構評審。
先來說說設備
設備是支撐公司業務運營的最基本實體,隨着公司業務的不斷發展壯大,公司的設備總數也於去年突破了50w台大關。評審一個業務的架構,首先得從其設備使用的合理性上來看。
總的設備架構評審思路可以簡單歸納如下4步:
- 設備需求驅動形態 -- 確認設備需求動因和相關指標;
- 關鍵路徑的技術架構 -- 確認架構是否合理;
- 需求資源推算模型 -- 資源預算和指標關聯是否合理,架構分布是否合理。
- 資源優化計划 -- 后續是否可以釋放部分資源,降低成本。
第一點比較好理解,設備的需求動因,我們需要描述清楚涉及設備的關鍵業務指標以及業務指標的變化情況,通常這些指標在做年度預算的時候能夠定義清楚。如果當時沒有清晰的定義,我們這里可以根據業務的實際資源需求情況來定義清楚關鍵指標。后面3點是一個架構評審的關鍵所在,我們這里重點展開來講。
我們談一個產品的架構,最開始當然先要從一張總架構圖開始講起。比如下面這個手Q的消息交互架構圖。
一個清晰的架構圖至少需要具備如下要素:
- 描述總體架構關鍵模塊構成和各模塊對應的設備數目;
- 業務請求交互圖,描述業務關鍵路徑上的模塊交互流程,需包含請求量/包量及對應的設備數;
- 描述設備需求中關鍵路徑的構成情況和模塊之間的交互邏輯。
定義出關鍵路徑和關鍵業務模塊后,這些模塊需求和架構是否合理,我們需要把這里面的內容給評委展開來重點解釋。
針對每一個關鍵模塊,我們首先需要:
- 描述在總體系統架構中該一級模塊的主要核心功能;
- 描述該核心模塊的處理業務邏輯分布,如重要業務邏輯的資源占比情況。
比如下面手Q SSO模塊的描述
定義出核心關鍵模塊之后,我們需要進一步解釋其資源使用的合理性。這里我們主要針對最常見的處理類和存儲類兩類模塊來說明,其他比如吞吐量類,緩存類的模塊可以依此類推。
針對處理類模塊,我們通常需要說明:
- 給出核心模塊的資源模型,如單機每秒建立連接數,每秒包處理能力;
- 描述核心模塊的當前瓶頸所在;
- 描述核心模塊的設備類型;
- 描述核心模塊的最大支撐能力,如單機峰值Qps;
- 根據預估的業務指標結合模塊單機處理能力來評估所需的設備數。
而對於存儲類的模塊,我們通常需要說明:
- 給出核心存儲單元的資源模型,如每個存儲單元所占用的字節數,每個存儲單元包括哪些字段信息,主要字段的訪問頻次,每份數據存儲份數等,並根據單份的模型結合業務后續預估的指標來估算總體的存儲量;
- 描述核心存儲單元的當前瓶頸所在。
同時,針對架構分布上,由於公司IDC資源的地理分布不平衡性,某些特定的地理區域由於歷史和儲備的原因,IDC資源會較為緊缺,所以我們在架構評審的過程中也要對業務模塊的物理分布情況來評估其合理性,比如如下兩點:
- 描述總體現有架構模塊的物理分布情況和容量模型,包括架構是否有Set化,其Set分布,數據的異地存儲份數說明,以及容災方式;
- 描述新增預算資源的分布模型以及是否可以異地化部署的評估。
在Review過架構和模塊的現狀后,業務自己通常也會發現一些自己架構上的問題,這些可能是歷史原因的遺留問題,也可能是技術進步發展了有一些更優的解決方案,所以我們在架構評審的最后可以針對這些問題來提出進一步的 優化,給自己定一個更優的目標,追求技術上更進一步。主要邏輯可以分為下面幾步:
- 描述可能的柔性策略、優化手段和方法(包括技術上和運營上的);
- 描述優化后的系統架構圖和模型;
- 描述優化后的目標和成果
而在優化手段上,我們也可以結合公司其他業務常用的優化手段,梳理總結出一套可能的優化方法,供大家參考。
- 資源的最大化整合和復用:比如運用虛擬化,docker等技術,來講設備的利用率發揮到最大優勢,充分壓榨單機的處理負載,提高單機的處理能力。
- 新技術和新處理框架:比如采用新的處理框架,從http協議改為直接tcp處理,從原來的同步qzhttp改為異步rpc處理,以及充分利用GPU並行能力和FPGA可編程硬件相比軟件處理的高效性來提高編碼和壓縮的效率等等,來提升單機的效率。
- 新協議和新格式的利用:這塊在存儲類服務中最場景,比如用壓縮效率更高的webp來替代傳統的JPEG,然后又采用更高的H.265編碼格式的BGP圖片來替代webp,這些新格式的出現對於日益增長的海量數據又是一個重要的優化手段。
- 存量和長尾業務的規整:騰訊公司到現在也經歷了18年的春夏秋冬,各種業務浮浮沉沉保守估計也有上千了,對於這種存量和長尾型的業務,我們如何對其進行適當縮容和最小化運營,甚至是推動其退隱下線,也是一個必要的優化手段。
- 提升資源管理和流轉效率:比如資源直供模式,閑置設備,閑置時段的離線計算使用,比如如何有效的利用存儲類設備的CPU資源來進行計算,這些也都是架構評審優化中值得考慮的問題。
好了,前面關於設備上的架構評審流程和方式講了這么多,相信如果大家都按這么思路來理解架構評審,再加上自己對業務和技術的充分理解,跟boss過的架構評審將不再是個問題,更多的是對大家技術的展現了。
設備先講到這里,有機會我們繼續來解析如何做帶寬的架構評審。See you again!