來啦,請坐。
我是老楊,這是我的《數(shù)字化研發(fā)管理》書籍的前奏,我?guī)闵晕⒁娮R下其魅力。
如果你有強化管理能力,量化技術(shù)產(chǎn)出,提升技術(shù)效能,打造技術(shù)團隊等需求,那么這套課程會為你揭開技術(shù)管理的神秘面紗,可以讓“媽媽再也不用擔心你的工作了”。
這是《數(shù)字化技術(shù)管理的方法和實踐》第七講,技術(shù)治理的前提:框定技術(shù)范圍、確定業(yè)務分級和技術(shù)分級。
一句話解釋下:要想把技術(shù)做好做全,先框定技術(shù)到底包含哪些范圍,然后分層次進行治理,重要的優(yōu)先治理,不重要的其次治理。
開始之前請允許老楊占用你一分鐘時間講個事兒:對于程序員來說,技術(shù)是最熟悉的了,或許正因為如此,看待技術(shù)時,我潛意識里容易大意,也出現(xiàn)過很蠢的問題(如索引沒加導致DB掛了,JVM參數(shù)設置導致服務掛了等),好就好在,經(jīng)過這些嚴重的錯誤之后,我學乖了,我不允許自己在同一個地方跌倒兩次,我傾情總結(jié)了技術(shù)部分的二維表,其中行是范圍:技術(shù)基礎、技術(shù)平臺、業(yè)務服務、技術(shù)創(chuàng)新;列是生命周期:現(xiàn)狀、目標和過程;衡量指標是穩(wěn)定性、性能和個數(shù)。一張圖高度概括了技術(shù)的范圍和生命周期,它時刻警醒我技術(shù)該做什么才能十全十美,所以說有時候血與淚的教訓未必是壞事,正所謂心存敬畏,方能行有所止,才可為有所成。
技術(shù)二維表
好,那么不難看出,對技術(shù)的治理就要集中在技術(shù)基礎、技術(shù)平臺和業(yè)務服務層這三個層次:
1.技術(shù)基礎層是指服務器、網(wǎng)絡、存儲、操作系統(tǒng)等,這一層大部分公司都使用公有云,由公有云的服務商去保障,不在本篇講述范圍內(nèi)。
2.本篇聚焦在技術(shù)平臺層、業(yè)務平臺層和服務層的技術(shù)治理,其中技術(shù)平臺層是指:存儲、消息、配置、調(diào)度等平臺;業(yè)務平臺層是指交易、訂單、商品、價格、庫存、營銷等平臺;服務層是指:web服務、移動服務等服務。
細心的同學會問:“這三層都包含了很多模塊,當然全部治理好是最理想的了,但是呢,任何一家公司技術(shù)資源永遠是寶貴的有限的,沒有辦法做到面面俱到?!?/p>
的確如此,所以才要進行分級,分優(yōu)先級去進行不同的保障,而分級的源頭就是業(yè)務分級,你一定要不遺余力的把業(yè)務分級確定下來,那怎么確定呢?無外乎兩種方式:
1.根據(jù)經(jīng)驗,公司業(yè)務、產(chǎn)品性質(zhì)等,梳理用戶路徑,基于此來進行業(yè)務分級。
2.根據(jù)數(shù)據(jù)來進行業(yè)務分級。
那么對于技術(shù)人員來說,業(yè)務分級還遠遠不夠,還需轉(zhuǎn)換成技術(shù)的系統(tǒng)分級和服務分級,才能清楚對哪些系統(tǒng)哪些服務進行什么樣的穩(wěn)定性承諾。這也是某種程度上對技術(shù)提出的更高要求,你除了懂業(yè)務之外,還要把業(yè)務拆解成技術(shù)。舉例來說:“注冊”這個業(yè)務功能依賴哪些系統(tǒng)和哪些服務?這些所依賴的系統(tǒng)和服務就要承諾一年內(nèi)不超過幾個S1級的故障,每個服務每個接口的并發(fā)、QPS、響應時間就要達到多少。
由此可見,業(yè)務分級轉(zhuǎn)換成系統(tǒng)分級和服務分級也是至關(guān)重要,可以讓技術(shù)承諾更加有的放矢,那么轉(zhuǎn)換方法是什么呢?好吧,是時候讓最不被老板理解的架構(gòu)師們登場了,架構(gòu)師的一個核心職責就是要清晰的根據(jù)業(yè)務梳理出技術(shù)依賴,并通過業(yè)務架構(gòu)圖和技術(shù)架構(gòu)圖表達出來,讓一個完全不懂的人也能夠懂個七七八八(畫外音:老板握著架構(gòu)的手熱淚盈眶的說:架構(gòu)師們,有你們真好)。此處附上我的業(yè)務架構(gòu)圖示例如圖2,每家公司有所不同,但相同的是:一個合格的業(yè)務架構(gòu)圖需要完整的表達出業(yè)務流程,邏輯上分多少層,每層多少模塊等,如圖中分成4層:前臺產(chǎn)品、業(yè)務中臺、技術(shù)平臺、基礎設施,每一層中又有相對應的模塊。
圖2 業(yè)務架構(gòu)圖
通過業(yè)務架構(gòu)圖,“注冊”這個業(yè)務依賴哪些模塊就很清晰了,直接依賴:
1.業(yè)務中臺層的權(quán)限中心、會員中心;
2.技術(shù)平臺層的存儲;
3.基礎設施層的虛擬機、存儲、負載均衡等。
那么細心的同學會問:“這只是把業(yè)務所依賴的系統(tǒng)模塊梳理出來了,那么系統(tǒng)模塊是哪些技術(shù)人員哪些機器哪些代碼哪些平臺提供的服務呢?”
這個的確是個好問題,這就需要把技術(shù)架構(gòu)圖請出來了,此處附上我的技術(shù)架構(gòu)圖示例如圖3,每家公司有所不同,但相同的是:一個合格的技術(shù)架構(gòu)圖需要根據(jù)業(yè)務架構(gòu)圖轉(zhuǎn)換成技術(shù)的各個層次,以及每一層中的各個平臺和組件。
圖3 技術(shù)架構(gòu)圖
通過技術(shù)架構(gòu)圖,“注冊”這個業(yè)務是由誰編寫的哪個系統(tǒng)提供的服務就一目了然了:
1. Nginx,運維A負責;
2.Zuul,架構(gòu)師B負責;
3.權(quán)限中心、會員中心,研發(fā)leader C負責,Team 1編碼實現(xiàn)的;
4.Redis,架構(gòu)師D負責;
5.Mysql,DBA負責;
6.Docker,運維A負責。
經(jīng)過業(yè)務架構(gòu)圖和技術(shù)架構(gòu)圖的梳理(此處必須再次為架構(gòu)師正名:你們真的太重要啦),“注冊”這個業(yè)務的系統(tǒng)依賴、服務依賴就很清晰了,隨之系統(tǒng)和服務的分級也清晰了(你們都是S1級的,非常重要)。此時,假如非常不幸的事情發(fā)生了,“注冊”功能出問題了,你不必盲人摸象了,可以一步定位框定出來是哪幾個業(yè)務服務,哪幾個中間件,哪幾臺機器,哪幾個工程師的問題,那么解決問題自然也是效率倍兒高。
好啦,本篇也告一段落了,接下來我會詳細講解技術(shù)的各個指標(穩(wěn)定性、性能和個數(shù))的事情了,歡迎持續(xù)關(guān)注。
謝啦,下次見。