如何搭建一個(gè)拖垮公司的技術(shù)架構(gòu)?
架構(gòu)師不僅拿錢多,還受到程序員的崇拜、妹子的仰慕。
他們走路帶風(fēng)、出場(chǎng)自帶BGM,吹啊吹,我的驕傲放縱。唯一的缺點(diǎn),就是費(fèi)頭發(fā)。
架構(gòu)師雖好,卻不是人人都能當(dāng)?shù)?,除了聰明絕頂,還要有扎實(shí)的技術(shù)功底,經(jīng)過多年的努力,我做到了一點(diǎn),我已經(jīng)絕頂了。
一名架構(gòu)師,必須身經(jīng)百戰(zhàn),經(jīng)歷過無數(shù)重大宕機(jī)事故。因?yàn)樯駱屖侄际亲訌椢钩鰜淼?,身上的每一塊肥肉都是你親口吃出來的,無他,唯手熟爾。
我作為技術(shù)Leader中最懂架構(gòu)的騎手,不僅送得一手好外賣,還搞宕過不少大型系統(tǒng)。下面結(jié)合自己的經(jīng)歷談一談:如何搭建一個(gè)拖垮公司的技術(shù)架構(gòu)?
一、系統(tǒng)主鏈路盡可能單點(diǎn)
單點(diǎn)系統(tǒng),就像蘇伊士運(yùn)河一樣,一旦航道出故障,整個(gè)運(yùn)輸系統(tǒng)都癱瘓,非常酸爽。
單點(diǎn)就像單身,開始的時(shí)候滋味不好受,但是不用擔(dān)心,因?yàn)楹竺婺憔土?xí)慣了。
二、程序中多用循環(huán)
無限死循環(huán),是老K最愛用的編程技巧之一,當(dāng)你看到CPU利用率百分百的時(shí)候,你就知道應(yīng)該甩鍋給運(yùn)維了。
這年頭,沒點(diǎn)特長技能還真不行。比如我,玩得一手好樂器----退堂鼓,打得特好。
三、系統(tǒng)間增加依賴
在系統(tǒng)里增加內(nèi)部依賴、外部依賴、第三方依賴。總之,能依賴的,絕不自己動(dòng)手寫。
老K有今天的成就,主要是因?yàn)槲业膭?dòng)手能力強(qiáng),我這輩子只有兩件事不會(huì):這也不會(huì),那也不會(huì)。
四、不做服務(wù)補(bǔ)償
很多東西,錯(cuò)過就是錯(cuò)過,沒法補(bǔ)償,這就是人生。
作為架構(gòu)師,要有哲學(xué)高度。
所以說小伙子,你只看到了第二層,而你把我只想成了第一層,實(shí)際上我是第五層,你知道我講的是什么意思嗎?
五、不做冪等設(shè)計(jì)
憑啥后端接口要做冪等性設(shè)計(jì)?前端提交的時(shí)候不做判斷嗎?全都丟給后端開發(fā)做?
大家都是打工人,人要臉,樹要皮,電線桿子要水泥。
六、不設(shè)置超時(shí)
連接超時(shí)、讀超時(shí),有多大設(shè)置多大,不管內(nèi)部調(diào)用還是外部調(diào)用,都設(shè)置成60分鐘。
只要努力搞,沒有時(shí)間搞不砸的事情。做不成時(shí)間的朋友,就做時(shí)間的炮友。
七、不控制流量
讓流量來得猛烈一些吧,千萬別限流,什么漏桶算法、令牌桶算法,那都不如啤酒桶算法----喝完就睡,愛誰誰。
還控制啥流量啊?你連體重都控制不了,趁早放棄吧。你看看八戒,走了十萬八千里也沒見瘦下來,而且,他還吃素。
八、不做監(jiān)控預(yù)警
大家都是職場(chǎng)成年人,做好分內(nèi)事,別多管閑事。
工作幾年以后,我明白一個(gè)道理:熟練的運(yùn)用“關(guān)我屁事”和“關(guān)你屁事”,可以省下人生80%的時(shí)間。
九、沒有重試策略
服務(wù)調(diào)用失敗,你還想重試?我可不是隨隨便便的接口。
人生不能重來,更不能亂來。
不信?你讓醫(yī)生,給你開點(diǎn)后悔藥,再來杯忘情水,醫(yī)生立馬送你去精神病院。
十、不做系統(tǒng)隔離
千萬別做系統(tǒng)隔離,要掛一起掛。
什么是真正的兄弟?就是當(dāng)兄弟需要女人的時(shí)候,挺身而出做他的女人。
面對(duì)困男,要排除萬男,迎男而上。
十一、代碼同步調(diào)用
做系統(tǒng)就要步調(diào)一致、講究和諧,盡量同步調(diào)用,多寫bug。
通常我寫bug的時(shí)候,喜歡中午寫,知道為什么嗎?因?yàn)樵缤頃?huì)有報(bào)應(yīng)。
十二、不做熱數(shù)據(jù)緩存
RPC的意義是什么?就是調(diào)用啊。瘋狂地調(diào)用,是對(duì)一個(gè)服務(wù)最起碼的尊重。
你知道為什么大項(xiàng)目上線都要選個(gè)好日子嗎?這么說吧,你認(rèn)為上線以后還會(huì)有好日子嗎?
十三、不做系統(tǒng)分級(jí)
對(duì)系統(tǒng)要一視同仁,不要區(qū)分核心系統(tǒng)、非核心系統(tǒng),你有考慮過系統(tǒng)的感受嗎?
如果你被分門別類,你會(huì)開心嗎?回想起來,小時(shí)候我們都很快樂,就是因?yàn)槟莻€(gè)時(shí)候的我們,丑和窮得都還不是那么明顯。
十四、沒有服務(wù)降級(jí)
服務(wù)降級(jí)就low了,就算宕機(jī)也要一起扛。
人生沒有白走的路,如果有,那就是微信運(yùn)動(dòng)出bug了。
十五、無灰度和回滾方案
上線全憑運(yùn)氣,沒有回滾方案!就是那么自信。
我這個(gè)人,長這么大沒學(xué)到別的本事,就掌握了一項(xiàng)特殊技能,白天不用安眠藥也能安眠,晚上不用興奮劑也能興奮。
論熬夜發(fā)布,我從來沒服過誰。
十六、程序多做遠(yuǎn)程調(diào)用
能遠(yuǎn)程調(diào)用的,絕不本地調(diào)用,都5G時(shí)代了,網(wǎng)絡(luò)延遲那點(diǎn)事不算什么。
再說了,做人要有點(diǎn)耐心,女朋友約會(huì)遲到一小時(shí),你敢發(fā)火嗎?
不敢就對(duì)了,千萬別惹女人,她們是流血一周都不會(huì)死的動(dòng)物。
十七、不做熔斷機(jī)制
炒股炒昏頭了吧,做啥熔斷機(jī)制?
你問過韭零后嗎?基金都綠成啥樣了,他喊熔斷了嗎?
作為韭菜,學(xué)費(fèi)還是要交的,趁年輕的時(shí)候多交點(diǎn),這樣到老了再交你就習(xí)慣了。
十八、不做代碼掃描
要有工匠精神,自己代碼自己review,機(jī)器哪里懂得欣賞你的代碼藝術(shù)?
我那騷氣的注釋、奇妙的函數(shù)、神乎其技的Copy/Paste。每次看代碼,都被自己的才華嚇到。
十九、不做線上壓測(cè)
上線就完事了,后面的事情交給菩薩吧。
一分耕耘,一分收獲。天下沒有免費(fèi)的午餐,所以我一般都睡到下午才起床。
結(jié)語
架構(gòu)設(shè)計(jì)的騷操作還有很多,以上任意一項(xiàng)玩到極致,都足以把公司搞垮。
架構(gòu)師是最接近圣人的職業(yè),優(yōu)秀的架構(gòu)師每天都三省吾身:早飯吃什么,午飯吃什么,晚飯吃什么。
最后,愿上帝保佑每一位吃飽飯的架構(gòu)師。
本文轉(zhuǎn)載自公眾號(hào) 技術(shù)領(lǐng)導(dǎo)力,原文作者 Mr.K
作者簡介:Mr.K,知名電商公司技術(shù)老K級(jí)人物。文出過暢銷書,武做過CTO,若非生活所迫,誰愿一身才華。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!