自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

IT架構(gòu)的本質(zhì):工作12年,我的五點(diǎn)感悟

新聞
老僧三十年前未參禪時(shí),見(jiàn)山是山,見(jiàn)水是水。及至后來(lái),親見(jiàn)知識(shí),有個(gè)入出,見(jiàn)山不是山,見(jiàn)水不是水。而今得個(gè)休歇處,依前見(jiàn)山只是山,見(jiàn)水只是水。

 老僧三十年前未參禪時(shí),見(jiàn)山是山,見(jiàn)水是水。及至后來(lái),親見(jiàn)知識(shí),有個(gè)入出,見(jiàn)山不是山,見(jiàn)水不是水。而今得個(gè)休歇處,依前見(jiàn)山只是山,見(jiàn)水只是水。

—唐代青原惟信禪師

參禪的三重境界在 IT 技術(shù)圈同樣適用,初學(xué)者感嘆每個(gè)產(chǎn)品都如此精妙絕倫,追逐著更強(qiáng)的 IDE;老司機(jī)喜歡自比管樂(lè)指點(diǎn)江山,嘲諷著更好的語(yǔ)言。

當(dāng)一切回歸平淡,搞 IT 就是一份思想延伸和語(yǔ)言翻譯工作,其中技術(shù)架構(gòu)師就是一份古樸甚至無(wú)趣的工作。

我將架構(gòu)師的工作總結(jié)出五條核心道理,這五條經(jīng)驗(yàn)簡(jiǎn)單直白又深?yuàn)W通透,算是對(duì)我 12 年 IT 工作的一個(gè)總結(jié)。

[[258006]]

架構(gòu)技術(shù)像機(jī)器人哄小孩一樣簡(jiǎn)單

需求優(yōu)化最重要:少查少寫少依賴,Less is more

一個(gè) IT 系統(tǒng)是多角色多模塊分層分級(jí)的,像 OSI 模型上層應(yīng)用簡(jiǎn)單依賴下層支撐,SOA 設(shè)計(jì)中同級(jí)角色也只看對(duì)方的接口。

各角色分工明確方便快速實(shí)現(xiàn)業(yè)務(wù),但是給架構(gòu)優(yōu)化也埋下大坑,底層的盲目支撐是巨大資源浪費(fèi),平級(jí)調(diào)度協(xié)作也沒(méi)任何彈性。

前端一個(gè)小邏輯需求會(huì)導(dǎo)致后端大規(guī)模聯(lián)動(dòng),不同服務(wù)也沒(méi)權(quán)限理解對(duì)方的內(nèi)存數(shù)據(jù),各個(gè)角色的工程師都只看自己的工作范圍,這是正常又無(wú)奈的現(xiàn)狀。

我們要搞架構(gòu)設(shè)計(jì)最重要的就是砍需求,將上層應(yīng)用的需求優(yōu)化刪減,讓同級(jí)的業(yè)務(wù)能容錯(cuò)。

上層需求優(yōu)化,即前端對(duì)后端少輸入少查詢多容錯(cuò),而同級(jí)容錯(cuò)可以看做應(yīng)用間的需求優(yōu)化。

比如兩個(gè)服務(wù)可以冪等重試就是好解耦,而 A 系統(tǒng)會(huì)等 B 系統(tǒng)等到死鎖就是架構(gòu)悲劇。

某電商 ERP 系統(tǒng)的用戶點(diǎn)一次查詢按鈕,后臺(tái)系統(tǒng)就鎖庫(kù)查詢一次;實(shí)操過(guò)程中系統(tǒng)越慢用戶就重復(fù)點(diǎn)查詢按鈕,而并行查詢?cè)蕉嗪笈_(tái)速度就更慢。

這種環(huán)境要搞架構(gòu)優(yōu)化,首先要理解自然人并不要求實(shí)時(shí)數(shù)據(jù),ERP 客戶端限制每 15 秒才能點(diǎn)一次查詢按鈕,在 Web 接入層限制每個(gè) Session 每分鐘只能查詢一次,還可在數(shù)據(jù)庫(kù)鏈接類庫(kù)上做一層控制策略。

多媒體服務(wù)工程師比較好的情人節(jié)禮物會(huì)是一個(gè)超棒的播放器:

  • 它可以自助容錯(cuò)選擇 CDN
  • 可以主動(dòng)預(yù)緩存下一分鐘的點(diǎn)播內(nèi)容
  • 可以完成私有解密編碼工作
  • 可以和廣告系統(tǒng)解耦獨(dú)立加載
  • 可以在卡頓時(shí)更換線路和存儲(chǔ)日志
  • 廣告日志和卡頓日志都低速適時(shí)后臺(tái)上傳

[[258007]]

抓住核心訴求,不該要的東西都不要

群集設(shè)計(jì)通用規(guī)則:前端復(fù)制后端拆,實(shí)時(shí)改異步,三組件互換

前端復(fù)制后端拆,實(shí)時(shí)改異步,IO-算力-空間可互換——要做架構(gòu)就要上群集,而群集設(shè)計(jì)調(diào)優(yōu)翻來(lái)覆去就是這三板斧。

前端是管道是邏輯,而后端是狀態(tài)是數(shù)據(jù),所以前端復(fù)制后端拆。前端服務(wù)器壓力大了就多做水平復(fù)制擴(kuò)容,在網(wǎng)站類應(yīng)用上,無(wú)狀態(tài)-會(huì)話保持-彈性伸縮等技術(shù)應(yīng)用純熟。

后端要群集化就是多做業(yè)務(wù)拆分,常見(jiàn)的就是數(shù)據(jù)庫(kù)拆庫(kù)拆表拆鍵值,服務(wù)拆的越散微操作就越爽,但全局操作開(kāi)銷更大更難控制。

實(shí)時(shí)改異步是我學(xué)的一門 IT 技術(shù),絕大部分“實(shí)時(shí)操作”都不是業(yè)務(wù)需求,而是某應(yīng)用無(wú)法看到后端和 Peer 狀態(tài),默認(rèn)就要實(shí)時(shí)處理結(jié)果了。

CS 模式的實(shí)時(shí)操作會(huì)給支撐服務(wù)帶來(lái)巨大壓力,Peer 合作的實(shí)時(shí)操作可能會(huì)讓數(shù)據(jù)申請(qǐng)方等一宿。

架構(gòu)師將一個(gè)無(wú)腦大事務(wù)拆分成多個(gè)小事務(wù),這就是異步架構(gòu),但拆分事務(wù)就跟拆分?jǐn)?shù)據(jù)表一樣,拆散的小事務(wù)需要更高業(yè)務(wù)層級(jí)上做全局事務(wù)保障。

在群集性能規(guī)劃中,網(wǎng)絡(luò)和硬盤 IO+CPU 算力+磁盤和內(nèi)存空間是可以互換的,架構(gòu)師要完成補(bǔ)不足而損有余的選型。

比如數(shù)據(jù)壓縮技術(shù)就是用算力資源來(lái)置換 IO 和空間,緩存技術(shù)是用空間和 IO 來(lái)緩解算力壓力,每個(gè)新選型都會(huì)帶來(lái)細(xì)節(jié)上的萬(wàn)千變化,但每種變化都是符合自然規(guī)律有章可循的。

一個(gè)經(jīng)典微機(jī)系統(tǒng)就是中央處理器+主存儲(chǔ)器+IO 設(shè)備,這幾個(gè)概念居然和群集性能規(guī)劃是一一對(duì)應(yīng)。

[[258008]]

架構(gòu)常見(jiàn)技巧就像空中華爾茲一樣自然優(yōu)雅

理解硬件天性:角色選型時(shí)要看硬件的天然特性

別讓硬盤扛性能,別讓內(nèi)存保持久,別讓網(wǎng)線扛穩(wěn)定。

架構(gòu)層軟件技術(shù)已經(jīng)足夠成熟,所謂技術(shù)選型不如說(shuō)是適應(yīng)場(chǎng)景;在做具體角色選型時(shí),最深度也最易忽視的原則是順應(yīng)硬件天性。

我的精神導(dǎo)師說(shuō)過(guò),如果一個(gè)服務(wù)依賴硬盤,那這個(gè)服務(wù)就不適合扛性能壓力。

我經(jīng)常將讀寫引到 /dev/shm,SSD 盤讓很多細(xì)節(jié)調(diào)優(yōu)聊勝于無(wú),還讓 Fat32 枯木逢春,個(gè)別隊(duì)列和分布式存儲(chǔ)在意硬盤的性能力,但都是應(yīng)用了順序讀寫內(nèi)容,且不介意磁盤空間浪費(fèi)。

別讓內(nèi)存扛持久和別讓網(wǎng)線扛穩(wěn)定,聽(tīng)起來(lái)很簡(jiǎn)單,但新手程序員總會(huì)犯低級(jí)錯(cuò)誤,而犯錯(cuò)早晚要還技術(shù)債。

常規(guī)例子就是看新手程序是否有捕獲各種異常的習(xí)慣,舉個(gè)爭(zhēng)議性例子,某些云服務(wù)設(shè)計(jì)者嘗試給一個(gè)進(jìn)程映射和綁定持久文件系統(tǒng),請(qǐng)問(wèn)一段內(nèi)存如何綁定一塊硬盤?

[[258009]]

談到天性,我總是想起流暢奔跑的小波妞

數(shù)據(jù)的產(chǎn)生和消失:數(shù)據(jù)不會(huì)憑空產(chǎn)生,但會(huì)憑空消失

數(shù)據(jù)不會(huì)憑空產(chǎn)生,計(jì)算機(jī)或者自輸入設(shè)備獲取數(shù)據(jù),或者自其他數(shù)據(jù)源導(dǎo)入數(shù)據(jù),而且原始數(shù)據(jù)的轉(zhuǎn)化規(guī)則也要人類來(lái)定義。

我們要便捷輕巧安全可靠的獲取數(shù)據(jù),就要選好數(shù)據(jù)源,保障好傳輸路徑,定義好數(shù)據(jù)變換規(guī)則。

在一個(gè)數(shù)據(jù)生命周期內(nèi),為了防止數(shù)據(jù)全部或部分憑空消失,數(shù)據(jù)的容錯(cuò)校驗(yàn)、關(guān)聯(lián)復(fù)原、冷熱備份和安全刪除都要考慮到位。

在生僻業(yè)務(wù)的規(guī)劃實(shí)施過(guò)程中,沒(méi)人告訴我們?cè)撚心男┓?wù),我們只能靠摸透一個(gè)又一個(gè)訪問(wèn)邏輯圖和數(shù)據(jù)生命周期,來(lái)摸索群集內(nèi)有哪些角色和依賴關(guān)系。

架構(gòu)師的核心技能包括畫好訪問(wèn)邏輯和數(shù)據(jù)流量圖,因?yàn)閱?wèn)題現(xiàn)狀描述清楚了,問(wèn)題就解決了一多半了。

一個(gè)好的業(yè)務(wù)訪問(wèn)邏輯圖,不僅僅是幾個(gè)圈圈幾條線連起來(lái),其信息量大到包羅訪問(wèn)過(guò)程的所有元素,也要詳略得當(dāng)高亮關(guān)鍵點(diǎn)。

[[258010]]

咦?數(shù)據(jù)被拿走了。是啊,拿走了。好巧。我們還要做點(diǎn)什么嗎?

各環(huán)節(jié)都不可盲信:容災(zāi)設(shè)計(jì)中都盡人事和聽(tīng)天命

整個(gè) IT 系統(tǒng)中就沒(méi)有可靠的組件,架構(gòu)師既不能盲目信任撞大運(yùn),又不能冗余嚇唬自己,而是在盡人事和聽(tīng)天命之間做好權(quán)衡。

比如 TCP 就是要建立可靠鏈接,而現(xiàn)在做性能優(yōu)化的時(shí)候,大家又嫌 TCP 太過(guò)笨重了。

業(yè)務(wù)應(yīng)用不可靠,如果該應(yīng)用能快速重建也不阻塞其他應(yīng)用,月級(jí)偶發(fā)的內(nèi)存泄漏和意外崩潰都是可以接受的。

支撐性的服務(wù)不可靠,對(duì)于大部分業(yè)務(wù),預(yù)估一年都不丟一次數(shù)據(jù),SLA 能到 99.95% 就可以了。

操作系統(tǒng)故障崩潰,現(xiàn)在商用系統(tǒng)內(nèi)核都很穩(wěn)定,一般故障都出在硬件驅(qū)動(dòng)兼容性上,或者有些照本宣科的傻瓜亂改默認(rèn)參數(shù)。

網(wǎng)絡(luò)不穩(wěn)定,內(nèi)網(wǎng)通用的技術(shù)方案很成熟,少提復(fù)雜需求內(nèi)網(wǎng)就能很穩(wěn)定,我們最煩的是單條網(wǎng)線處于半死不活狀態(tài);IDC 的外網(wǎng) SLA 默認(rèn)就是 3 個(gè) 9,所以我說(shuō)支撐性的服務(wù)能到 99.95% 就已經(jīng)很可靠了。

硬件不穩(wěn)定,大部分架構(gòu)師根本不懂硬件,只要不出硬件批次故障,架構(gòu)師就可以將單點(diǎn)硬件和系統(tǒng)、服務(wù)綁在一起做可靠性設(shè)計(jì)。

人力誤操作,我們招不到不出故障的人,我自己達(dá)不到不出錯(cuò)的標(biāo)準(zhǔn)。只要員工沒(méi)有惡意破壞,出了大范圍故障就是群集健壯性設(shè)計(jì)不到位,別讓操作工給技術(shù)總監(jiān)和架構(gòu)師頂包。

監(jiān)控和備份是運(yùn)維的職責(zé),但架構(gòu)師需要幫忙確認(rèn)目的正確性,別備份了半天廢數(shù)據(jù),監(jiān)控只看 telnet80。

[[258011]]

干活的角色和搗亂的角色一樣多,甚至更多

結(jié)束語(yǔ):架構(gòu)之術(shù)繁瑣,架構(gòu)之道淺顯

本文講的是架構(gòu)工作的“道”,對(duì)于架構(gòu)之“術(shù)”并不提及。不同的業(yè)務(wù)系統(tǒng)的架構(gòu)之術(shù)完全不同,能拿來(lái)匯總借鑒的只有這幾條簡(jiǎn)單的道理。

[[258012]]

心里不慌就飛起來(lái)吧

如果一個(gè)架構(gòu)師只是炫耀具體優(yōu)化架構(gòu)的手法,卻閉口不談選型的道理,他們其實(shí)是在簡(jiǎn)單用公司業(yè)務(wù)嘗試孤注一擲。

如果我們有架構(gòu)之道做思想支撐,即使接手全新業(yè)務(wù)類型,庖丁可以解牛也可以殺豬,我們一樣能游刃有余心里不慌。

我曾經(jīng)接手三種生僻晦澀的業(yè)務(wù),按照本文的原理去拆解和規(guī)劃,就沒(méi)有什么特別難的。

 

責(zé)任編輯:武曉燕 來(lái)源: 云算計(jì)
相關(guān)推薦

2021-06-17 09:20:51

華為工作三十而立

2011-03-21 16:00:25

LAMP架構(gòu)

2015-10-26 13:14:43

七牛許式偉創(chuàng)業(yè)

2019-02-18 08:24:09

技術(shù)應(yīng)用架構(gòu)

2020-10-09 08:26:16

架構(gòu)

2023-12-27 17:20:09

2022-12-27 07:57:43

2019-07-22 09:02:49

工作公司開(kāi)發(fā)

2009-11-04 11:41:01

程序員職業(yè)感悟軟件開(kāi)發(fā)

2021-11-01 16:01:35

CISO內(nèi)部威脅網(wǎng)絡(luò)安全

2009-03-04 09:59:04

職場(chǎng)心情痛苦

2013-11-07 17:35:00

阿里COO雙十一阿里巴巴

2020-12-10 16:20:30

Vue前端架構(gòu)

2020-12-25 09:38:07

Vue前端代碼

2020-08-04 13:41:56

互聯(lián)網(wǎng)交互設(shè)計(jì)師人機(jī)交互

2017-10-15 14:36:10

互聯(lián)網(wǎng)分層架構(gòu)服務(wù)化

2020-08-11 09:43:28

分層架構(gòu)互聯(lián)網(wǎng)架構(gòu)

2019-07-10 09:19:26

技術(shù)開(kāi)發(fā)編程

2020-11-16 07:26:25

賠償碼農(nóng)

2021-03-15 07:43:17

騰訊工作事業(yè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)