[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-distsim-distributed-systems-on-your-laptop-zh":3,"article-related-distsim-distributed-systems-on-your-laptop-zh":28,"series-tools-4d43ed47-a173-4628-ae65-d99b7aa11098":85},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":11,"views":25,"created_at":26,"published_at":27,"topic_cluster_id":11},"4d43ed47-a173-4628-ae65-d99b7aa11098","distsim-distributed-systems-on-your-laptop-zh","DistSim 把分散式系統搬進筆電","\u003Cp>分散式系統很抽象。直到它壞掉，你才知道痛。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhamidlabs\u002Fdistsim\" target=\"_blank\" rel=\"noopener\">DistSim\u003C\u002Fa> 直接把 22 個服務塞進你的筆電。你可以在本機做實驗，還能故意把系統弄壞。\u003C\u002Fp>\u003Cp>這種做法很直白。你不用先租一堆伺服器，也不用先背一堆理論。先看服務怎麼連，再看它怎麼掛，學起來比較有感。\u003C\u002Fp>\u003Cp>講白了，這就是一個本機分散式系統實驗室。對 backend 工程師來說，這比看投影片有用多了。\u003C\u002Fp>\u003Ch2>DistSim 到底提供了什麼\u003C\u002Fh2>\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhamidlabs\u002Fdistsim\" target=\"_blank\" rel=\"noopener\">DistSim\u003C\u002Fa> 是開源專案。它用 \u003Ca href=\"https:\u002F\u002Fwww.docker.com\" target=\"_blank\" rel=\"noopener\">Docker\u003C\u002Fa> 把每台機器包成容器。每個容器跑 Ubuntu，還有終端機和網路功能。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775293786987-2jfd.png\" alt=\"DistSim 把分散式系統搬進筆電\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這點很重要。很多教學只畫圖，不給你碰真東西。DistS\u003Ca href=\"\u002Fnews\u002Fkimi-k25-moonshot-open-model-elite-zh\">im\u003C\u002Fa> 不是那種玩具模擬器。你真的會碰到服務、連線、延遲，還有故障。\u003C\u002Fp>\u003Cp>它還有瀏覽器\u003Ca href=\"\u002Fnews\u002Fn8n-214-mcp-workflow-creation-zh\">工作流\u003C\u002Fa>程。你可以用視覺化 topology editor，也可以直接寫 code。再加上 chaos enginee\u003Ca href=\"\u002Fnews\u002Fdrift-280m-exploit-governance-controls-zh\">ri\u003C\u002Fa>ng 工具和 API load testing，整個流程就很像小型雲端環境。\u003C\u002Fp>\u003Cul>\u003Cli>內建 22 個服務，包括 Nginx、PostgreSQL、Redis、Kafka。\u003C\u002Fli>\u003Cli>每台機器都是 Ubuntu 容器，支援網路連線。\u003C\u002Fli>\u003Cli>可以用瀏覽器終端機操作，不一定要一直 SSH。\u003C\u002Fli>\u003Cli>有 topology 編輯器，方便看依賴關係。\u003C\u002Fli>\u003Cli>內建 chaos testing 和 API load testing。\u003C\u002Fli>\u003Cli>安裝流程是 git clone 後跑 bash install.sh。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我覺得這種設計很實際。你不是在背名詞。你是在看一個系統怎麼組起來。\u003C\u002Fp>\u003Cp>而且它很適合反覆練習。你可以改設定，然後重跑。這種短回饋迴圈，對學 distributed systems 很有幫助。\u003C\u002Fp>\u003Ch2>為什麼要在本機故意弄壞系統\u003C\u002Fh2>\u003Cp>分散式系統難，是因為每個元件都有自己的狀態。每個服務都可能慢、掛掉、重試失敗，還可能互相拖累。單機 app 出問題，通常還好查。\u003C\u002Fp>\u003Cp>但多服務架構就不一樣了。load balancer、replication、cache、queue，一個出事就可能連鎖反應。你只看文件，很難真的懂。\u003C\u002Fp>\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhamidlabs\u002Fdistsim\" target=\"_blank\" rel=\"noopener\">DistSim\u003C\u002Fa> 的價值就在這裡。你可以在本機觀察 node 掛掉、流量暴增、延遲上升，看看系統怎麼反應。這比空談 retry policy 有用。\u003C\u002Fp>\u003Cblockquote>“Premature optimization is the root of all evil.” — Donald Knuth\u003C\u002Fblockquote>\u003Cp>這句話常被拿來講效能。其實放在分散式系統也很對。很多人先急著調參，卻沒先搞懂故障模式。\u003C\u002Fp>\u003Cp>先看系統怎麼壞，再談怎麼修，順序比較對。否則你只是把問題藏起來，不是解掉。\u003C\u002Fp>\u003Cul>\u003Cli>雲端 VPS 練習常要多台機器，成本會上來。\u003C\u002Fli>\u003Cli>本機 Docker lab 幾乎不用額外雲端費用。\u003C\u002Fli>\u003Cli>瀏覽器終端機比多開 SSH 視窗更省事。\u003C\u002Fli>\u003Cli>視覺化 topology 可以快速看出依賴關係。\u003C\u002Fli>\u003Cli>load testing 能抓出靜態圖看不到的瓶頸。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>說真的，chaos testing 不該只出現在大公司。你在本機就能做，學習曲線會平很多。\u003C\u002Fp>\u003Cp>如果一個服務只有在「都沒出錯」時才正常，那你其實還沒學會分散式系統。你只是學會怎麼讓 demo 看起來沒事。\u003C\u002Fp>\u003Ch2>和其他學習方式比，差在哪\u003C\u002Fh2>\u003Cp>學 distributed systems 的路徑很多。最常見的是書和文章。第二種是直接上雲端做 lab。前者給你語言，後者給你壓力。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775293793025-2kqq.png\" alt=\"DistSim 把分散式系統搬進筆電\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhamidlabs\u002Fdistsim\" target=\"_blank\" rel=\"noopener\">DistSim\u003C\u002Fa> 卡在中間。它讓你有接近真實的環境，但不用一直燒雲端帳單。這對學生、轉職者、還有下班想練功的人很友善。\u003C\u002Fp>\u003Cp>如果你要測 Redis failover、Kafka message flow，或是服務間的重試邏輯，本機容器通常已經夠用了。你要的是行為觀察，不是先買一堆機器。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Fkubernetes.io\" target=\"_blank\" rel=\"noopener\">Kubernetes\u003C\u002Fa> 是 production orchestration 工具。\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.docker.com\" target=\"_blank\" rel=\"noopener\">Docker\u003C\u002Fa> 提供容器層。\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.postgresql.org\" target=\"_blank\" rel=\"noopener\">PostgreSQL\u003C\u002Fa> 和 \u003Ca href=\"https:\u002F\u002Fredis.io\" target=\"_blank\" rel=\"noopener\">Redis\u003C\u002Fa> 是實際服務。\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fkafka.apache.org\" target=\"_blank\" rel=\"noopener\">Apache Kafka\u003C\u002Fa> 適合練事件流和訊息堆積。\u003C\u002Fli>\u003Cli>DistSim 把這些元件串成可操作的學習環境。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>跟一般教學比，它更互動。跟完整雲端 lab 比，它更便宜，也更容易重置。\u003C\u002Fp>\u003Cp>我覺得最有差的是「可重來」。學系統最怕一次失敗就卡住。能重來，才敢亂試。\u003C\u002Fp>\u003Ch2>誰最適合先試\u003C\u002Fh2>\u003Cp>如果你是 backend 工程師，這工具很對味。你可以練 service discovery、replication、fault injection，還能看 load 下的行為。\u003C\u002Fp>\u003Cp>如果你在帶新人，這也很好用。新人常聽過 retry、health check、backpressure，卻沒看過它們一起出事。DistSim 可以把這些東西攤開來。\u003C\u002Fp>\u003Cp>安裝也不算麻煩。先 clone repo，再跑 installer。前提是機器上先裝好 Docker、Go、Node.js。這些都是常見開發環境，不算刁鑽。\u003C\u002Fp>\u003Cp>我會建議先拿一個服務開始。先看 Nginx 或 Redis，別一開始就把 22 個服務全開。一次只學一件事，吸收比較快。\u003C\u002Fp>\u003Cp>如果你是做 microservices 或 event-driven 系統，這種 lab 很值得放進 onboarding。新人先在本機踩坑，比在 production 踩坑便宜太多。\u003C\u002Fp>\u003Ch2>這種工具代表什麼趨勢\u003C\u002Fh2>\u003Cp>分散式系統教學，正在從「看懂」轉向「做過」。這件事很現實。因為現在的 backend 架構，早就不是單一 API server 能解決。\u003C\u002Fp>\u003Cp>台灣很多團隊也一樣。服務拆得越細，問題越像網狀。你不只要懂程式，還要懂資料流、網路延遲、服務健康狀態，還有錯誤傳播。\u003C\u002Fp>\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhamidlabs\u002Fdistsim\" target=\"_blank\" rel=\"noopener\">DistSim\u003C\u002Fa> 這類工具的價值，不在於取代正式環境。它的價值是讓你先在本機犯錯。犯錯成本低，學得就快。\u003C\u002Fp>\u003Cp>我自己的判斷很直接。未來團隊在教 backend 和 SRE 時，會更常用這種本機 lab。因為它省時間，也省雲端費用。你要練的是判斷力，不是燒錢能力。\u003C\u002Fp>\u003Cp>如果你現在就在做分散式系統，下一步很簡單。先把它裝起來，挑一個服務，故意弄壞一次。你會很快知道自己到底懂多少。\u003C\u002Fp>","DistSim 把 22 個服務、Docker 容器和 chaos testing 放進本機實驗室，讓你在筆電上直接練分散式系統。","news.ycombinator.com","https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=47614941",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775293786987-2jfd.png","tools","zh","a460fedc-602b-46ab-9c15-5e4800d03bbc",[17,18,19,20,21,22,23,24],"DistSim","分散式系統","Docker","chaos testing","backend","Kafka","Redis","PostgreSQL",5,"2026-04-04T09:09:28.644358+00:00","2026-04-04T09:09:28.476+00:00",{"tags":29,"relatedLang":44,"relatedPosts":48},[30,32,34,35,37,39,41,42],{"name":17,"slug":31},"distsim",{"name":20,"slug":33},"chaos-testing",{"name":21,"slug":21},{"name":23,"slug":36},"redis",{"name":22,"slug":38},"kafka",{"name":24,"slug":40},"postgresql",{"name":18,"slug":18},{"name":19,"slug":43},"docker",{"id":15,"slug":45,"title":46,"language":47},"distsim-distributed-systems-on-your-laptop-en","DistSim puts distributed systems on your laptop","en",[49,55,61,67,73,79],{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"d3ec03a8-a805-4a21-9826-72a74a72b625","databricks-model-serving-llm-deploy-guide-zh","Databricks Model Serving 讓 LLM 部署變簡單","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998117-7ur8.png","2026-06-03T22:32:51.005996+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"4dd225a8-bf6c-4768-a486-a27956c7033d","opencode-digitalocean-model-freedom-zh","OpenCode+DigitalOcean 讓你切換模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525116428-1q7g.png","2026-06-03T22:18:06.969758+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"4bdcf208-fb80-484e-b4b6-06af035a6df1","modulate-aws-voice-chats-into-signals-zh","Modulate 用 AWS 把語音聊天做成訊號","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780519733892-rxue.png","2026-06-03T20:48:22.697917+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"f44a28d3-2305-43de-b5fa-21217d561054","amazon-rekognition-content-moderation-filter-zh","Amazon Rekognition把審核變成過濾器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780517005409-bxfc.png","2026-06-03T20:02:57.634353+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":13},"80f6f40b-3217-45e4-acff-7b2f6d261779","codex-workspace-limits-tell-you-why-zh","Codex 讓工作區限額錯誤說人話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780514293711-ltqa.png","2026-06-03T19:17:41.340056+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":13},"daa3d568-4bc5-4f29-aa64-225928ace9b4","book-2-turns-sneaker-drop-into-merch-zh","Book 2 把球鞋發售變成周邊系統","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780513400116-8jeh.png","2026-06-03T19:02:49.03795+00:00",[86,91,96,101,106,111,116,121,126,131],{"id":87,"slug":88,"title":89,"created_at":90},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":132,"slug":133,"title":134,"created_at":135},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]