技術(shù)管理技術(shù)篇

這是我技術(shù)管理十講的第三篇——技術(shù)篇首有,主要講技術(shù)部分的衡量指標(biāo)和提升方法等,通過我的工作實踐讓大家對技術(shù)部分從方法到執(zhí)行都有一個深入的認識:

1. 技術(shù)二維表鼠哥,技術(shù)部分的范圍和生命周期爬舰。

2. 技術(shù)的衡量指標(biāo)以及詳細拆解:穩(wěn)定性和性能杂腰。

3. 如何分層提升穩(wěn)定性和性能垃你?技術(shù)和管理兩方面惜颇。

技術(shù)是我最熟悉的锨亏,或許正因為如此忙干,對待技術(shù)時我潛意識里容易大意屯伞,我想應(yīng)該有很多同學(xué)和我有相似的經(jīng)歷。好就好在豪直,經(jīng)過了簡單的技術(shù)錯誤上栽的跟頭之后劣摇,我學(xué)乖了,我不允許自己在同一個地方跌倒兩次弓乙,我傾情總結(jié)了技術(shù)部分的二維表如圖1末融,其中行是范圍:技術(shù)基礎(chǔ)、技術(shù)平臺暇韧、技術(shù)創(chuàng)新勾习;列是生命周期:現(xiàn)狀、目標(biāo)和過程懈玻。一張圖高度概括了技術(shù)的范圍和生命周期巧婶,它時刻警醒我技術(shù)該做什么才能十全十美,所以說有時候血與淚的教訓(xùn)未必是壞事,正可謂心存敬畏艺栈,方能行有所止英岭,才可為有所成。

圖1 技術(shù)二維表

好湿右,那下面詳細講解下技術(shù)的指標(biāo)诅妹,最基礎(chǔ)的就是系統(tǒng)穩(wěn)定性了,即系統(tǒng)可用性毅人,只有系統(tǒng)是可用的才能談好用吭狡、愛用≌奢海可以說穩(wěn)定性就是技術(shù)的基本面划煮,必須要不遺余力的去提升。那具體是在哪些方面進行提升呢缔俄?我來詳細拆解一下般此,穩(wěn)定性劃分為三個層次:基礎(chǔ)層、平臺層牵现、服務(wù)層铐懊。

1. 基礎(chǔ)層是指服務(wù)器、網(wǎng)絡(luò)瞎疼、存儲科乎、操作系統(tǒng)等,這一層大部分公司都使用公有云贼急,由公有云的服務(wù)商去保障茅茂,不在本篇講述范圍內(nèi)。

2. 本篇聚焦在平臺層和服務(wù)層的穩(wěn)定性太抓,其中平臺層是指:存儲空闲、消息、配置走敌、調(diào)度等技術(shù)平臺碴倾;服務(wù)層是指:web服務(wù)、移動服務(wù)等技術(shù)服務(wù)掉丽。

好跌榔,穩(wěn)定性的范圍清楚了,那么穩(wěn)定性怎么量化呢捶障?一般是SLA僧须,用幾個9的可用性或故障的個數(shù)來衡量。本篇中用故障個數(shù)來衡量项炼,其實故障個數(shù)能夠和幾個9的可用性進行一個簡單換算担平,后面我會講到示绊。當(dāng)然單純的講故障個數(shù)是不科學(xué)的,比如1個影響全部用戶的故障和10個影響1%用戶的故障暂论,孰輕孰重面褐?有鑒于此,本篇所指的故障個數(shù)空另,是分等級的故障的個數(shù)盆耽,即不同級別的故障個數(shù)不超過幾個蹋砚。那么既然要給故障分等級扼菠,就需要有故障等級標(biāo)準(zhǔn)(此處每家公司有所不同),我展示的示例是一個B輪科技公司70人技術(shù)團隊的示例供大家參考坝咐,如圖2循榆,其中最核心的就是故障等級和判斷標(biāo)準(zhǔn),本示例判斷標(biāo)準(zhǔn)中的影響用戶和影響業(yè)務(wù)是OR的關(guān)系墨坚,影響時間是AND的關(guān)系秧饮。

圖2 故障等級標(biāo)準(zhǔn)

好,故障等級標(biāo)準(zhǔn)有了泽篮,那么故障個數(shù)標(biāo)準(zhǔn)——穩(wěn)定性標(biāo)準(zhǔn)也可以定出來了盗尸,我繼續(xù)展示我的示例,如圖3帽撑,以S1的為例解釋下:S1的故障一年不超過3個泼各,換算一下就是說:S1的業(yè)務(wù)一年內(nèi)盡量控制在9小時以內(nèi)不可用,相當(dāng)于S1的業(yè)務(wù)承諾4個9的可用性(4個9的可用性是指一年內(nèi)8.76個小時不可用)亏拉。

圖3 故障個數(shù)標(biāo)準(zhǔn)

細心的同學(xué)會發(fā)現(xiàn)扣蜻,S1的故障和S1的業(yè)務(wù)是什么關(guān)系?圖2故障等級標(biāo)準(zhǔn)中影響業(yè)務(wù)一欄及塘,即是不同級別的業(yè)務(wù)莽使,那么為什么“注冊”是S1級業(yè)務(wù)呢?這些業(yè)務(wù)是怎么分級的呢笙僚?兩種方式:

1. 根據(jù)經(jīng)驗芳肌,公司業(yè)務(wù)、產(chǎn)品性質(zhì)等肋层,梳理用戶路徑庇勃,基于此來進行業(yè)務(wù)分級。

2. 根據(jù)數(shù)據(jù)來進行業(yè)務(wù)分級槽驶。

業(yè)務(wù)分級是本篇的核心责嚷,因為任何一家公司技術(shù)資源永遠是寶貴的有限的,一定要分優(yōu)先級進行穩(wěn)定性和性能的提升掂铐,核心業(yè)務(wù)的穩(wěn)定性和性能指標(biāo)毫無疑問要優(yōu)先保證罕拂。那么對于技術(shù)人員來說揍异,業(yè)務(wù)分級還需轉(zhuǎn)換成技術(shù)的系統(tǒng)分級和服務(wù)分級,才能清楚對哪些系統(tǒng)哪些服務(wù)進行什么樣的穩(wěn)定性承諾爆班,舉例來說:“注冊”這個業(yè)務(wù)功能依賴哪些系統(tǒng)和哪些服務(wù)衷掷?這些所依賴的系統(tǒng)和服務(wù)就要承諾一年內(nèi)不超過3個S1級的故障。

由此可見業(yè)務(wù)分級轉(zhuǎn)換成系統(tǒng)分級和服務(wù)分級也是至關(guān)重要柿菩,可以讓技術(shù)承諾更加有的放矢戚嗅,那么轉(zhuǎn)換方法是什么呢?繼續(xù)聽我慢慢道來吧枢舶。是時候讓最不被老板理解的架構(gòu)師們登場了懦胞,架構(gòu)師的一個核心職責(zé)就是要清晰的根據(jù)業(yè)務(wù)梳理出技術(shù)依賴,并通過業(yè)務(wù)架構(gòu)圖和技術(shù)架構(gòu)圖表達出來凉泄,讓一個完全不懂的人也能夠懂個七七八八(畫外音:老板握著架構(gòu)的手熱淚盈眶的說:架構(gòu)師們躏尉,有你們真好)。此處附上我的業(yè)務(wù)架構(gòu)圖示例如圖4后众,每家公司有所不同胀糜,但相同的是:一個合格的業(yè)務(wù)架構(gòu)圖需要完整的表達出業(yè)務(wù)流程,邏輯上分多少層蒂誉,每層多少模塊等教藻,如圖中分成4層:前臺產(chǎn)品、業(yè)務(wù)中臺右锨、技術(shù)平臺括堤、基礎(chǔ)設(shè)施,每一層中又有相對應(yīng)的模塊陡蝇。

圖4 業(yè)務(wù)架構(gòu)圖

通過業(yè)務(wù)架構(gòu)圖痊臭,“注冊”這個業(yè)務(wù)依賴哪些模塊就很清晰了,直接依賴:

1. 業(yè)務(wù)中臺層的權(quán)限中心登夫、會員中心广匙;

2. 技術(shù)平臺層的存儲;

3. 基礎(chǔ)設(shè)施層的虛擬機恼策、存儲鸦致、負載均衡等。

那么細心的同學(xué)會發(fā)現(xiàn)涣楷,這只是把業(yè)務(wù)所依賴的系統(tǒng)模塊梳理出來了分唾,那么系統(tǒng)模塊是哪些技術(shù)人員哪些機器哪些代碼哪些平臺提供的服務(wù)呢?這個就得把技術(shù)架構(gòu)圖請出來了狮斗,此處附上我的技術(shù)架構(gòu)圖示例如圖5绽乔,每家公司有所不同,但相同的是:一個合格的技術(shù)架構(gòu)圖需要根據(jù)業(yè)務(wù)架構(gòu)圖轉(zhuǎn)換成技術(shù)的各個層次碳褒,以及每一層中的各個平臺和組件折砸。

圖5 技術(shù)架構(gòu)圖

通過技術(shù)架構(gòu)圖看疗,“注冊”這個業(yè)務(wù)是由誰編寫的哪個系統(tǒng)提供的服務(wù)就一目了然了:

1. Nginx,運維A負責(zé)睦授;

2. Zuul两芳,架構(gòu)師B負責(zé);

3. 權(quán)限中心去枷、會員中心怖辆,研發(fā)leader C負責(zé),Team 1編碼實現(xiàn)的删顶;

4. Redis竖螃,架構(gòu)師D負責(zé);

5. Mysql翼闹,DBA負責(zé)斑鼻;

6. Docker蒋纬,運維A負責(zé)猎荠。

經(jīng)過業(yè)務(wù)架構(gòu)圖和技術(shù)架構(gòu)圖的梳理(此處必須再次為架構(gòu)師正名:你們真的太重要啦),“注冊”這個業(yè)務(wù)的系統(tǒng)依賴蜀备、服務(wù)依賴就很清晰了关摇,隨之系統(tǒng)和服務(wù)的分級也清晰了,其他業(yè)務(wù)同理碾阁,此處不再贅述输虱。

整個業(yè)務(wù)依賴梳理出來之后,每個系統(tǒng)每個服務(wù)的穩(wěn)定性目標(biāo)就定出來了脂凶,那么接下來就講解下怎么去保證這個目標(biāo)宪睹,怎么去提升穩(wěn)定性,我又又又梳理了一張二維表如圖6蚕钦。

圖6 提升穩(wěn)定性

其中穩(wěn)定性分為兩個層次:

1. 盡量避免故障發(fā)生亭病;

2. 故障發(fā)生了盡量降低故障影響。

每一個層次又有兩種手段去進行保障:

1. 技術(shù)手段:1)集群嘶居、分布式罪帖、異地多活、災(zāi)備等邮屁,避免單點整袁,保證系統(tǒng)的水平和垂直擴展等;2)安全性考慮佑吝,防攻擊等坐昙;3)持續(xù)集成、自動化測試芋忿、代碼/架構(gòu)優(yōu)化等炸客,保證質(zhì)量襟士;4)監(jiān)控告警,及時發(fā)現(xiàn)問題處理問題嚷量;5)限流熔斷降級陋桂,降低影響;6)各層資源隔離蝶溶,避免互相影響嗜历。

2. 管理手段:1)做好容量規(guī)劃,嚴格管控生產(chǎn)環(huán)境發(fā)布和壓測抖所;2)定期巡檢梨州、演練,提前發(fā)現(xiàn)問題田轧;3)制定應(yīng)急預(yù)案暴匠,積累故障處理流程;4)7??24小時值班傻粘;5)大促期間進行充分故障等每窖。

至此穩(wěn)定性的事已經(jīng)講述完成了,下面還有性能部分弦悉,性能的邏輯與穩(wěn)定性相同窒典,我就簡明扼要的直接上干貨了,性能是指系統(tǒng)的同時服務(wù)能力和單次服務(wù)效率稽莉,本篇中聚焦在后端性能和前端性能這兩部分:

1. 后端性能的衡量指標(biāo):吞吐量和平均響應(yīng)時間瀑志,吞吐量由QPS和并發(fā)數(shù)來表征,這兩者有一個換算關(guān)系如圖7污秆。

圖7 后端性能

2. 前端性能的衡量指標(biāo):首屏?xí)r間和用戶可交互時間為主劈猪,白屏?xí)r間和頁面總下載時間為輔,其中每個指標(biāo)的通用標(biāo)準(zhǔn)和計算方式如圖8良拼。

圖8 前端性能

性能指標(biāo)需要通過壓測得到战得,那怎么去提升性能指標(biāo)呢?同樣要根據(jù)業(yè)務(wù)等級将饺、系統(tǒng)等級贡避、服務(wù)等級去提升。

1. 后端性能:1)代碼/算法/架構(gòu)優(yōu)化予弧;2)集群刮吧、分布式;3)緩存掖蛤;4)異步化杀捻。等。

2. 前端性能:1)懶加載蚓庭;2)圖片等壓縮致讥;3)前端仅仆、瀏覽器緩存;4)CDN垢袱;5)接口合并墓拜。等。

好请契,至此技術(shù)篇該告一段落了咳榜,細心的同學(xué)會發(fā)現(xiàn):咦,怎么“個數(shù)”這個衡量指標(biāo)沒有講述爽锥?(不得不說涌韩,細心的同學(xué)今天有點兒忙),“個數(shù)”的確沒講氯夷,“個數(shù)”其實也無需多言臣樱,就是多多積累技術(shù)資產(chǎn):代碼、文檔腮考、技術(shù)組件雇毫、技術(shù)平臺、軟著秸仙、專利等嘴拢,退一萬步講桩盲,積累這些東東至少能夠讓從事軟件開發(fā)的你心理上踏實寂纪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市赌结,隨后出現(xiàn)的幾起案子捞蛋,更是在濱河造成了極大的恐慌,老刑警劉巖柬姚,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拟杉,死亡現(xiàn)場離奇詭異,居然都是意外死亡量承,警方通過查閱死者的電腦和手機搬设,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撕捍,“玉大人拿穴,你說我怎么就攤上這事∮欠纾” “怎么了默色?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狮腿。 經(jīng)常有香客問我腿宰,道長呕诉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任吃度,我火速辦了婚禮甩挫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘椿每。我一直安慰自己捶闸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布拖刃。 她就那樣靜靜地躺著删壮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兑牡。 梳的紋絲不亂的頭發(fā)上央碟,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音均函,去河邊找鬼亿虽。 笑死,一個胖子當(dāng)著我的面吹牛苞也,可吹牛的內(nèi)容都是我干的洛勉。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼如迟,長吁一口氣:“原來是場噩夢啊……” “哼收毫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起殷勘,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤此再,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后玲销,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體输拇,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年贤斜,在試婚紗的時候發(fā)現(xiàn)自己被綠了策吠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡瘩绒,死狀恐怖猴抹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情草讶,我是刑警寧澤洽糟,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響坤溃,放射性物質(zhì)發(fā)生泄漏拍霜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一薪介、第九天 我趴在偏房一處隱蔽的房頂上張望祠饺。 院中可真熱鬧,春花似錦汁政、人聲如沸道偷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽勺鸦。三九已至,卻和暖如春目木,著一層夾襖步出監(jiān)牢的瞬間换途,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工刽射, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留军拟,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓誓禁,卻偏偏與公主長得像懈息,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子摹恰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 目錄 ·大型網(wǎng)站軟件系統(tǒng)的特點 ·大型網(wǎng)站架構(gòu)演化發(fā)展歷程 ·初始階段的網(wǎng)站架構(gòu) ·需求/解決問題 ·架構(gòu) ·應(yīng)用...
    zhyang0918閱讀 2,646評論 0 16
  • 第一章 1.簡述通信系統(tǒng)模型中各個組成成分的含義辫继,并舉例說明。 答:課本P4-5 2.如何理解現(xiàn)代通信網(wǎng)絡(luò)的分層結(jié)...
    小閆同學(xué)ys閱讀 23,348評論 0 12
  • 走過去了戒祠,又回來…這兒怎么放著一個“鼎”---黑色骇两、圓肚、凹沿兒姜盈,帶著兩只“耳”,就在迎賓大道十字路口配阵? 一下勾起...
    m末子m閱讀 538評論 0 0
  • 媽晚上和我說馏颂,“前幾天阿寶在學(xué)校里和人打架了,是班里的同學(xué)起哄棋傍,要班里最胖的兩個小朋友打一架救拉。”結(jié)果可想而...
    Echo_June閱讀 603評論 3 0
  • 視頻課:給eclipse下了spring tool插件瘫拣,help-Install new soft-add 用框架...
    駿龍ll閱讀 131評論 0 0