Fred的架構師訓練營 202103

今天來說說我又去參加自費外訓的心得 😎

根據 Wiki 的定義:
Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems.

這是 Java Line 社群裡頭的 Fred 哥開的課,他發起的突然,一個錯過可能就來不及報名,能在第一梯次上到,除了說明我夠幸運之外,也跟我今年要增加自費外訓的決心有關係。

先說結論好了,我覺得這個課程最大的收獲是,原來大電商做的跟我想的一樣,但他們更極致、更嚴謹、更透徹。

許多的內容如果你常讀中國的案例研究,那些干貨文章大多有帶到部分,但透過教練有系統地把知識傳授給我們,真的可以讓人少走許多冤枉路。

課程的進展是由量級小一路講到量級大的架構,以及其餘的重要面向。

告訴你軟體架構的複雜度來源以及處理的方法,同時也提到架構設計基本原則,給技術選型的原則和技術團隊演進的提點。

例如上完課後至少我們會知道:

  • 容量評估是一切的起點也是重點,保持簡單,流量的多寡自有他該對應的成本跟手法
  • 擴展無狀態服務冗余有狀態服務 分別是解掉流量壓力達到高可用的兩把金鑰匙
  • 千萬流量的對應處理方法至少接近十種辦法,經典的解法在大部分的情境下足矣
  • 我們學了那麼多,但重點是要圍繞著業務然後一同成長
  • 同上,監控這件事,不該只是冰冷冷的數字而已,而是活生生的業務指標

課程中其實帶入了蠻多實務上遇到的問題,我覺得十分值得去反思,我這邊提一個然後試著回答一下。

Q:例如 XXX 現在很流行,我們的架構是不是也要用 XXX?
A:合適簡單能演進。如果軟體開發有銀彈這種東西,那我們也不用在這邊忙成這樣。而正是實務上這個 XXX 不會總是完美的,在我們看到他的長處試著引進他來解決當前的痛點時,反而可能因為他的短板而產生了新的痛點,那其實也是有點挖東牆補西牆的感覺。

例如 K8S 好了,他這個生態系的確帶來容器花式部署跟運維的新氣象,但同樣的你要能接受它快速成長帶來的外溢效應,你有人可以幫你搞那當然好棒棒,如果沒人幫你搞那就QQ了。

而回歸到人來說,舊時代能解決那些老問題的人用起新工具應該是更得心應手,反正就是多了一種選擇,根據不同的context做出最適合的技術選型。反之因為舊時代處理不好的問題想靠新時代工具輾過去解掉,恐怕也會被新產生的問題困擾著。

我覺得上課最棒的除了吸收教練想傳達給你的知識,認識學員、多跟教練交流則是額外且寶貴的收穫。他現在在街口支付服務,也有在徵才,如果有機會跟他聊聊,甚或是跟他一起工作一定是很棒的體驗。

至於他下次什麼時候開課嘛,畢竟他不是專職教練,有正職的,如果還有開課要把握呀。當然直接去街口就可以問到飽了,哈哈 💪

https://jianminhuang.cc