[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-distsim-distributed-systems-on-your-laptop-zh":3,"tags-distsim-distributed-systems-on-your-laptop-zh":33,"related-lang-distsim-distributed-systems-on-your-laptop-zh":48,"related-posts-distsim-distributed-systems-on-your-laptop-zh":52,"series-tools-4d43ed47-a173-4628-ae65-d99b7aa11098":89},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":21,"translated_content":10,"views":22,"is_premium":23,"created_at":24,"updated_at":24,"cover_image":11,"published_at":25,"rewrite_status":26,"rewrite_error":10,"rewritten_from_id":27,"slug":28,"category":29,"related_article_id":30,"status":31,"google_indexed_at":32,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":10,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":23},"4d43ed47-a173-4628-ae65-d99b7aa11098","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",[13,14,15,16,17,18,19,20],"DistSim","分散式系統","Docker","chaos testing","backend","Kafka","Redis","PostgreSQL","zh",0,false,"2026-04-04T09:09:28.644358+00:00","2026-04-04T09:09:28.476+00:00","done","ac9266c0-e1a8-4ffa-8f62-1996ad9606bd","distsim-distributed-systems-on-your-laptop-zh","tools","a460fedc-602b-46ab-9c15-5e4800d03bbc","published","2026-04-07T07:41:07.757+00:00",[34,36,38,39,41,43,45,46],{"name":13,"slug":35},"distsim",{"name":16,"slug":37},"chaos-testing",{"name":17,"slug":17},{"name":19,"slug":40},"redis",{"name":18,"slug":42},"kafka",{"name":20,"slug":44},"postgresql",{"name":14,"slug":14},{"name":15,"slug":47},"docker",{"id":30,"slug":49,"title":50,"language":51},"distsim-distributed-systems-on-your-laptop-en","DistSim puts distributed systems on your laptop","en",[53,59,65,71,77,83],{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":29},"d058a76f-6548-4135-8970-f3a97f255446","why-gemini-api-pricing-is-cheaper-than-it-looks-zh","為什麼 Gemini API 定價其實比看起來更便宜","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778869845081-j4m7.png","2026-05-15T18:30:25.797639+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":29},"68e4be16-dc38-4524-a6ea-5ebe22a6c4fb","why-vidhub-huiyuan-hutong-bushi-quan-shebei-tongyong-zh","為什麼 VidHub 會員互通不是「買一次全設備通用」","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778789450987-advz.png","2026-05-14T20:10:24.048988+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":29},"7a1e174f-746b-4e82-a0e3-b2475ab39747","why-buns-zig-to-rust-experiment-is-right-zh","為什麼 Bun 的 Zig-to-Rust 實驗是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778767879127-5dna.png","2026-05-14T14:10:26.886397+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":29},"e742fc73-5a65-4db3-ad17-88c99262ceb7","why-openai-api-pricing-is-product-strategy-zh","為什麼 OpenAI API 定價是產品策略，不是註腳","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778749859485-chvz.png","2026-05-14T09:10:26.003818+00:00",{"id":78,"slug":79,"title":80,"cover_image":81,"image_url":81,"created_at":82,"category":29},"c757c5d8-eda9-45dc-9020-4b002f4d6237","why-claude-code-prompt-design-beats-ide-copilots-zh","為什麼 Claude Code 的提示設計贏過 IDE Copilot","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778742645084-dao9.png","2026-05-14T07:10:29.371901+00:00",{"id":84,"slug":85,"title":86,"cover_image":87,"image_url":87,"created_at":88,"category":29},"4adef3ab-9f07-4970-91cf-77b8b581b348","why-databricks-model-serving-is-right-default-zh","為什麼 Databricks Model Serving 是生產推論的正確預設","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778692245329-a2wt.png","2026-05-13T17:10:30.659153+00:00",[90,95,100,105,110,115,120,125,130,135],{"id":91,"slug":92,"title":93,"created_at":94},"de769291-4574-4c46-a76d-772bd99e6ec9","googles-biggest-gemini-launches-in-2026-zh","Google 2026 最大 Gemini 盤點","2026-03-26T07:26:39.21072+00:00",{"id":96,"slug":97,"title":98,"created_at":99},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":101,"slug":102,"title":103,"created_at":104},"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":106,"slug":107,"title":108,"created_at":109},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":111,"slug":112,"title":113,"created_at":114},"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":116,"slug":117,"title":118,"created_at":119},"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":121,"slug":122,"title":123,"created_at":124},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":126,"slug":127,"title":128,"created_at":129},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":131,"slug":132,"title":133,"created_at":134},"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":136,"slug":137,"title":138,"created_at":139},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00"]