天天看點

阿裡畢玄:系統設計之系統建設的目的

作者:畢玄   

文章來源:微信公衆号HelloJava

在前面

聊聊系統設計的套路

這篇文章裡聊了下做系統設計的一個思考架構,這篇展開講系統設計的第一步,就是分析清楚系統建設的目的。

作為系統設計的第一步,重要性毋庸置疑,如果連系統建設的目的都沒搞清楚,後面所有的步驟都會錯誤,但如果我們去看很多的系統設計,會發現壓根就沒有系統建設的目的的仔細分析。

當需要做系統設計時,意味着需要建設一套新系統,或者對原有的系統進行比較大的架構的改造更新,而這一定是因為什麼原因才要去做的,之是以要分析好系統建設的目的,一方面是為了避免出發點有問題,系統建設的目的應該是充分反映出解決業務層面臨的挑戰,或者系統使用者層面面臨的問題的,而不是出于個人訴求,另一方面是為了確定在後續的系統設計中能保證目的的達成。

從對系統建設的目的的分析中,是很容易看出格局和高度的,這兩個詞看起來非常虛,但其實很實,格局和高度通常是指所做的事影響的範圍大小,例如從所在的一個小團隊,到所在的大部門,到所在的大BU,到所在的大BG,到跨多BG的業務闆塊,到整個集團,甚至是到這個社會,這裡一定要實事求是,别這裡講的是世界形勢,後面的整個系統設計又完全解決不了這裡所說的。

結合我自己的經曆來說,在早期做HSF時,在系統建設的目的這點上是最為缺失的,也導緻了自己在HSF階段犯下了幾次大的錯誤,例如最典型的就是HSF做動态化的那次系統架構改造,如果仔細的去分析當時做這件事的目的,就會看到這個是出于技術情懷,而不是業務端面臨的業務挑戰,或者說HSF的使用者面臨的問題,也就是之前說的出發點的問題,我覺得這是很多技術人員非常容易犯的錯誤,就是純粹是出于技術訴求發動的很大動作的系統重構,我自己是在有一年有一位阿裡的高管在給我做輔導時,提到首先要思考清楚為什麼做某件事,并且能講清楚原因,才明白了動機真的是非常重要的,後面做事的時候才能沒那麼技術化了。

因為HSF/Ali HBase的經曆,到了後面做阿裡容器/排程、異地多活的時候在目的這塊才算是能更好的把握,能更好的去結合阿裡的業務所面臨的挑戰來看要做的事。

大多數時候,驅動系統設計這件事的發生是其他方提出的,作為架構師,做好需求的轉換,決定是否要建設新系統,或重構更新老系統,深刻的去了解系統建設的目的也非常重要,因為架構師是最終要給整個技術團隊講為什麼要做的,這能夠更好的讓團隊明白做這件事的價值和意義。

總的來說,我認為做系統設計前,一定要先對于系統建設的目的分析清楚,確定系統建設有價值和有意義,同時確定後面的整個系統設計是能讓目的達成的。

這個系列的文章會按照

來寫,寫的時候會理論結合實踐,實踐主要是講我自己在相應的點上的一些經曆,系列的計劃大緻是:

系統設計之系統建設的目的

系統設計之系統建設的目标

系統設計之達成目标的核心問題

系統設計之解決核心問題的設計

系統設計之設計原則

繼續閱讀