DistSim 把分散式系統搬進筆電
DistSim 把 22 個服務、Docker 容器和 chaos testing 放進本機實驗室,讓你在筆電上直接練分散式系統。

分散式系統很抽象。直到它壞掉,你才知道痛。DistSim 直接把 22 個服務塞進你的筆電。你可以在本機做實驗,還能故意把系統弄壞。
這種做法很直白。你不用先租一堆伺服器,也不用先背一堆理論。先看服務怎麼連,再看它怎麼掛,學起來比較有感。
講白了,這就是一個本機分散式系統實驗室。對 backend 工程師來說,這比看投影片有用多了。
DistSim 到底提供了什麼
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
DistSim 是開源專案。它用 Docker 把每台機器包成容器。每個容器跑 Ubuntu,還有終端機和網路功能。

這點很重要。很多教學只畫圖,不給你碰真東西。DistSim 不是那種玩具模擬器。你真的會碰到服務、連線、延遲,還有故障。
它還有瀏覽器工作流程。你可以用視覺化 topology editor,也可以直接寫 code。再加上 chaos engineering 工具和 API load testing,整個流程就很像小型雲端環境。
- 內建 22 個服務,包括 Nginx、PostgreSQL、Redis、Kafka。
- 每台機器都是 Ubuntu 容器,支援網路連線。
- 可以用瀏覽器終端機操作,不一定要一直 SSH。
- 有 topology 編輯器,方便看依賴關係。
- 內建 chaos testing 和 API load testing。
- 安裝流程是 git clone 後跑 bash install.sh。
我覺得這種設計很實際。你不是在背名詞。你是在看一個系統怎麼組起來。
而且它很適合反覆練習。你可以改設定,然後重跑。這種短回饋迴圈,對學 distributed systems 很有幫助。
為什麼要在本機故意弄壞系統
分散式系統難,是因為每個元件都有自己的狀態。每個服務都可能慢、掛掉、重試失敗,還可能互相拖累。單機 app 出問題,通常還好查。
但多服務架構就不一樣了。load balancer、replication、cache、queue,一個出事就可能連鎖反應。你只看文件,很難真的懂。
DistSim 的價值就在這裡。你可以在本機觀察 node 掛掉、流量暴增、延遲上升,看看系統怎麼反應。這比空談 retry policy 有用。
“Premature optimization is the root of all evil.” — Donald Knuth
這句話常被拿來講效能。其實放在分散式系統也很對。很多人先急著調參,卻沒先搞懂故障模式。
先看系統怎麼壞,再談怎麼修,順序比較對。否則你只是把問題藏起來,不是解掉。
- 雲端 VPS 練習常要多台機器,成本會上來。
- 本機 Docker lab 幾乎不用額外雲端費用。
- 瀏覽器終端機比多開 SSH 視窗更省事。
- 視覺化 topology 可以快速看出依賴關係。
- load testing 能抓出靜態圖看不到的瓶頸。
說真的,chaos testing 不該只出現在大公司。你在本機就能做,學習曲線會平很多。
如果一個服務只有在「都沒出錯」時才正常,那你其實還沒學會分散式系統。你只是學會怎麼讓 demo 看起來沒事。
和其他學習方式比,差在哪
學 distributed systems 的路徑很多。最常見的是書和文章。第二種是直接上雲端做 lab。前者給你語言,後者給你壓力。

DistSim 卡在中間。它讓你有接近真實的環境,但不用一直燒雲端帳單。這對學生、轉職者、還有下班想練功的人很友善。
如果你要測 Redis failover、Kafka message flow,或是服務間的重試邏輯,本機容器通常已經夠用了。你要的是行為觀察,不是先買一堆機器。
- Kubernetes 是 production orchestration 工具。
- Docker 提供容器層。
- PostgreSQL 和 Redis 是實際服務。
- Apache Kafka 適合練事件流和訊息堆積。
- DistSim 把這些元件串成可操作的學習環境。
跟一般教學比,它更互動。跟完整雲端 lab 比,它更便宜,也更容易重置。
我覺得最有差的是「可重來」。學系統最怕一次失敗就卡住。能重來,才敢亂試。
誰最適合先試
如果你是 backend 工程師,這工具很對味。你可以練 service discovery、replication、fault injection,還能看 load 下的行為。
如果你在帶新人,這也很好用。新人常聽過 retry、health check、backpressure,卻沒看過它們一起出事。DistSim 可以把這些東西攤開來。
安裝也不算麻煩。先 clone repo,再跑 installer。前提是機器上先裝好 Docker、Go、Node.js。這些都是常見開發環境,不算刁鑽。
我會建議先拿一個服務開始。先看 Nginx 或 Redis,別一開始就把 22 個服務全開。一次只學一件事,吸收比較快。
如果你是做 microservices 或 event-driven 系統,這種 lab 很值得放進 onboarding。新人先在本機踩坑,比在 production 踩坑便宜太多。
這種工具代表什麼趨勢
分散式系統教學,正在從「看懂」轉向「做過」。這件事很現實。因為現在的 backend 架構,早就不是單一 API server 能解決。
台灣很多團隊也一樣。服務拆得越細,問題越像網狀。你不只要懂程式,還要懂資料流、網路延遲、服務健康狀態,還有錯誤傳播。
DistSim 這類工具的價值,不在於取代正式環境。它的價值是讓你先在本機犯錯。犯錯成本低,學得就快。
我自己的判斷很直接。未來團隊在教 backend 和 SRE 時,會更常用這種本機 lab。因為它省時間,也省雲端費用。你要練的是判斷力,不是燒錢能力。
如果你現在就在做分散式系統,下一步很簡單。先把它裝起來,挑一個服務,故意弄壞一次。你會很快知道自己到底懂多少。