(つ`ω´)つ says to Ubuntu 台灣社群
15 年、一台伺服器、8 GB RAM、50 萬名使用者:Webminal 如何硬是撐了下來 (★ 192 分) Webminal 是一個讓人直接在瀏覽器裡練習 Linux 終端機的學習平台,15 年來幾乎都靠一台 CentOS Linux 伺服器與 8 GB RAM 撐起 50 萬名使用者,沒有 Kubernetes (容器編排平台)、微服務,也沒有自動擴充。作者說,這台機器自 2011 年以來歷經機房失火、荷蘭停電與突發流量衝擊仍持續運作,平台最近也完成全面改版,改用自架字型與適合手機閱讀的輕量介面。整個服務的核心想法很單純:讓初學者不用先安裝虛擬機,就能在真實 Linux 環境裡練習,從瀏覽器建立起操作信心,再把學到的東西帶到正式主機上。 新版最重要的功能是 Root Lab,以 User Mode Linux (UML,使用者態執行的完整 Linux 核心) 提供接近真機的管理員練習環境。這讓學生能碰到 Docker 容器不容易模擬的真實區塊裝置,實作 fdisk、LVM (邏輯磁碟區管理)、RAID (磁碟陣列)、mkfs、systemctl、crontab、firewalld 與 SSH (Secure Shell,安全外殼協定) 金鑰等工作。每個 Lab 都有獨立核心、4 個虛擬磁碟與 256 MB 記憶體,關機後就回到一般 shell,透過寫入時複製 (copy-on-write) 共享基底映像檔,因此 100 名同時使用者也只多耗約 2 GB 磁碟空間。首頁滾動的指令列也不是裝飾,而是用 eBPF (Linux 核心事件追蹤機制) 與 execsnoop 即時匿名擷取安全指令,不包含參數、路徑與密碼,累計已超過 2,800 萬筆。 Webminal 的技術選擇刻意不追新:後端仍是 Python 2.7 與 Flask 0.12.5,前端只用 HTML 和行內 CSS,終端機工具還是 2005 年的 Shellinabox (把終端機嵌入瀏覽器的老牌工具)。作者曾試過以 WebSocket (瀏覽器與伺服器間的雙向連線機制) 終端機取代它,但正式上線幾小時後就碰到空白畫面與 Firefox 相容性問題,只好換回舊方案,因為它雖慢、雖醜,卻能穿越防火牆、代理與企業網路穩定運作。這個平台一路在 Linode、DigitalOcean、AWS (Amazon Web Services,亞馬遜雲端平台)、GCP (Google Cloud Platform,Google 雲端平台)、OVH 與 IBM Cloud 之間搬遷,期間也做過瀏覽器 IDE (整合開發環境)、基於 LXC (Linux Containers,Linux 容器技術) 的隔離環境、畫面錄製與檔案共享等功能;兩位共同創辦人甚至多年未曾見面,只靠 SSH 登入同一台主機,在 screen (終端多工工具) 裡留言協作。 作者坦言,這個專案沒有廣告、沒有追蹤、沒有創投資金,伺服器費用長年由個人儲蓄支應,連申請 Y Combinator (YC,新創加速器) 與嘗試付費方案都沒有成功,因為最需要 Webminal 的往往是付不起每月 4 美元的學生。也正因如此,文章把 50 萬人第一次輸入 `ls` 視為這個平台最重要的成果,而不是營收或規模。這種以低成本、低摩擦為優先的做法,也成為許多讀者認為它能活 15 年的關鍵。 在 Hacker News 的討論中,最多人肯定的不是技術新潮度,而是「零設定就能開始」的價值,認為對初學者來說,能立刻打開瀏覽器練習,往往比功能更強的雲端虛擬機更有吸引力;也有人把它視為「老派網際網路」精神的代表,稱讚限制反而逼出精簡而務實的工程做法。討論裡也補上幾個細節:作者表示伺服器位於新加坡,跨區存取時確實會有延遲;50 萬使用者並非同時在線,多數人共用一般終端機,真正吃資源的 UML Root Lab 需另外申請,目前同時大約只能容納 20 個左右。作者還透露,平台最早其實架在共同創辦人家中,之後才因雲端平台點數與贊助在不同主機間搬移,為了壓低成本一路靠 SELinux (Linux 的強制存取控制機制)、磁碟配額與預先建立的帳號範本處理安全與規模問題,最近甚至一度把主機降到 4 GB 方案。少數人嫌文章文字風格太像 AI 產生內容,也有人推薦 Google Cloud Shell 等替代服務,但整體氣氛仍以佩服這種節制、耐久又對學生友善的服務為主。 👥 37 則討論、評論 💬 https://news.ycombinator.com/item?id=47570940