非等出 Bug 了才想到架構升級?

非等出 Bug 了才想到架構升級?

非等出 Bug 了才想到架構升級?

作者 | 王曄倞

每個季度末,我都會抽出一週的時間與團隊核心人員逐一談心,一來幫助他們舒緩下疲勞的情緒,二來給大夥創造一個吐槽的環境。

在以往的談話中,我會有意識地避免總結與回憶,多聊一些與暢想未來相關的話題,為什麼呢?因為時間是無法逆轉的,過去就是過去了,與其強忍尷尬回憶過去,不如試著暢想未來,讓氣氛變得更輕鬆——至少這種方式使得整個談話過程笑聲變多了,苦瓜臉變少了。

今天在與某架構師談話中,他的某些觀點卻讓我感到有些意外。為什麼呢?我們都聊了些什麼?

非等出 Bug 了才想到架構升級?

非要系統出故障了才想著架構升級?

我整理了他的內容,大致是覺得系統架構升級的驅動力多半來自於故障,比如2012年11月11日,各大電商風雲大戰,淘寶網和京東網雖做足準備,但還是由於流量太大導致服務器癱瘓。回望自己,雖說會做一些高可用測試,也確實能在測試階段發現大量性能、高可用的潛在問題,但基本都浮於表面,“我說的不對嗎?還記得半年前的機房遷移嗎?做足準備了吧,那為什麼結果還是被衝了個七零八落呢?”

他接著說,說完技術,再來說說人,由於 “客觀原因”,“我們的架構師在高可用,在分佈式,甚至在自動化方面都缺乏經驗”,除非高薪聘請大咖加入,想要通過自身規劃得到穩定、高效的技術架構,幾乎沒有可能。

這番話很實在,也很直接,讓我當場有些措手不及。

仔細想想,有這樣想法的架構師或程序員不在少數。他們堅信自己系統升級的必要性來源於是否出現故障,只要認真且較真的抓住這次機會、修復它、搞定它、讓它下次不再發生,我就是棒棒噠。至於那些還未發生的,就是不存在的,既然不存在,我怎麼能知道?靠瞎猜嗎?

不僅如此,他們始終相信,我沒經驗,就沒法開展,至於什麼未來規劃,更是無稽之談。也許這是遮掩自己的不足,找準時機展露自己是救世主的一種另類方式,但事實證明他們把自己定義為一名消防隊員,而不願意成為一名規劃者。

有人說了,架構的發展多半來自於業務的需要,現在業務放緩,現有架構也滿足當前需求,那我還需要主動規劃嗎?我覺得,不僅需要,而且要加大投入,為什麼呢?

我覺得,將產線發生故障作為架構升級驅動力的想法純屬鴕鳥思維,有些故障會導致業務一擊斃命,還有然後嗎?再說了,一般考驗系統架構的最好方式是大流量,而有意思的是,流量這東西不僅不好預估,而且不確定性極強。為了應對這樣的場景,所以我們常會聽到架構師說,“我這東東是帶自動擴展的,可大可小,可根據流量快速的自動調整。” 聽上去真棒,但當真的 “狼來了",需要你在產線施展神通之時,咋啞火了呢?仔細一查,原來同時擴展小於十個節點沒問題,大於十個節點就觸發了某BUG,其他都測了呀,就差這個場景沒想到呀,你能怪他沒好好測試嗎?

所以,請收起那些可笑的想法,將明確的目標與實施路徑寫入規劃,耗費上千次討論,廢棄數套環境,奉獻半生精力,去執行,去折騰。

在宏觀經濟與金融監管風雲突變的客觀環境下,我們如何進行技術架構規劃呢?

非等出 Bug 了才想到架構升級?

尋找目標企業,不恥下問,關注細節

常聽見某某人自誇,說自己認識這個,有哪個人的微信,這能證明啥?最多能證明你的社交能力強,人脈廣泛,所交流的技術話題也多半偏向頂層設計,或概念構思,對實質性規劃沒什麼太大幫助。

我所採取的是,將目標分拆為不同技術類型,比如分佈式中間件、持續集成與交付、DevOPS等,利用這些人脈關係,尋找行業內不同的目標企業進行學習。比如阿里的中間件團隊,攜程的持續集成與交付,帶領小夥伴們登門拜訪,不恥下問,關注他們的發展歷程、技術選型及用人標準等細節。

每次都有收穫,每次都會得到啟發,今年許多版本的迭代均得益於這項方式。

非等出 Bug 了才想到架構升級?

構建適合自己的非功能性測試套路

按之前的方式,是否可以把某某年度的OKR定義成 “必須達成A系統P0級事故3次,並導致10臺以上服務節點宕機。”為啥這麼定?邏輯很簡單啊,事故級別越高,服務節點宕機數越多,架構設計的驅動力越大呀,哦耶!

如果技術負責人的腦子沒被驢踢的話,不可能這樣設定OKR,那該怎麼解決這個矛盾呢?

我所採取的是,建設隨機破壞性故障演練系統,並制定模擬性場景演練,比如拔網線、丟包、I/O不規則波動、消息阻塞等,由於曾寫過一篇有關 隨機故障測試系統 的文章,在這裡就不詳細介紹了。

當然,這些看似簡單的思路,想要做到,並非易事,畢竟扯淡總是容易的,刷新認知才是最難的。

作者:王曄倞,18年IT從業經驗,現任職好買財富平臺架構部技術總監,負責好買中間件及平臺化的研發及運營,團隊管理和實施重大技術決策。曾任大智慧測試總監,在2年內帶領團隊自研了“大智慧雲測試平臺”,通過平臺化將金融數據服務業務從瀑布式逐漸轉型為DevOps。

徵稿啦

CSDN 公眾號秉持著「與千萬技術人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術人的獨特視角描述技術人關心的行業焦點事件,更有「技術頭條」專欄,深度解讀行業內的熱門技術與場景應用,讓所有的開發者緊跟技術潮流,保持警醒的技術嗅覺,對行業趨勢、技術有更為全面的認知。

如果你有優質的文章,或是行業熱點事件、技術趨勢的真知灼見,或是深度的應用實踐、場景方案等的新見解,歡迎聯繫 CSDN 投稿,聯繫方式:微信(guorui_1118,請備註投稿+姓名+公司職位),郵箱([email protected])。


分享到:


相關文章: