ArmMini 由 iOS 開發者和 SRE 組成。我們並不是先有計畫才去找用戶——2021 年那 4 台上架的 Mac mini,最初只是拿來讓自己的 App 跑 CI。這一頁講清我們是誰、為什麼堅持獨享實體機、機器實際怎麼運作。
團隊目前有 7 個人:3 位 iOS 開發者、2 位 SRE、2 位技術支援,分散在 UTC+8 與 UTC-8 兩個時區。每個人的 App 或 CI 流程都跑在自家節點上,機器一出問題,我們通常比用戶更早收到警示——因為自己的建置早就先亮紅燈了。
這決定了我們做事的優先順序:先確保機器穩定、憑證交付夠快、出問題能自行重開機,其他的之後再談。網站上寫的每一項排查步驟、每一個延遲數字,都是我們自己連上這些機器實測出來的,不是照抄文件。
我們刻意維持小規模。7 個人管理一百多台機器,靠的不是加班,而是把帶外電源控制、自動化巡檢、自助重灌這些事一次做到位。工單首次回覆能壓在兩小時以內,是因為 80% 的問題用戶在控制台裡就能自己解決,剩下的才需要人工介入。
如果你也是每天跟 Xcode、runner、模擬器打交道的人,我們應該很聊得來。有具體問題,直接看排查手冊,或直接找我們聊聊。
$ system_profiler SPHardwareDataType | grep Chip
Chip: Apple M4 Pro
$ uptime
14:32 up 217 days, load averages: 3.42 2.98 2.71
$ ops team --list
ios-dev x3 sre x2 support x2
coverage: UTC+8 / UTC-8
eating our own dogfood since 2021
all nodes healthy
做共享虛擬化,一台主機切成八份,毛利好看得多。我們沒走這條路,原因有三個,每一個都沒有妥協的空間。
macOS 的授權條款要求系統運作在 Apple 品牌硬體上。一人一台真正的 Mac mini,是最乾淨、最經得起檢視的合規做法;各種共享切分方案在授權層面始終存在灰色地帶,我們不想讓用戶的發布流程建立在灰色地帶之上。
CI 最怕的不是慢,是抖動。實體節點沒有鄰居搶 CPU、搶磁碟 IO,同一專案連續完整編譯,時間波動通常在 3% 以內(我們自己專案的實測數據)。建置時間可預測,排隊策略和逾時閾值才能訂得準。
虛擬化層目前仍無法完整支援 Metal 與 Neural Engine:MLX 推論、模擬器 GPU 繪圖、Final Cut 硬體編碼,在虛擬機裡要麼跑不動,要麼效能打對折。實體機中間什麼都不隔,晶片有什麼功能你就能直接用。
三個實體節點,機櫃是我們自己設計上架方案、自己動手裝的。以下是每個節點的實際狀況。
2021 年起家的機房,東亞用戶的預設選擇。四個檔位全部常態開放租用,我們自己的 CI 也全部跑在這裡。
2024 年上線,服務東北亞區域的遠端開發需求。首爾節點提供 Basic 與 Standard 檔位;Pro/Max 請選擇東京或矽谷節點。
2023 年上線,適合北美團隊的 CI runner,以及需要大出口頻寬的場景,例如大型檔案上傳 TestFlight。
Mac mini 原本並不是設計給機櫃用的,我們客製了 CNC 鋁合金托盤:1U 並排 4 台,前置理線,單台抽出更換不會動到鄰位。聽起來是小事,但它決定了換一台故障機要花 5 分鐘還是 50 分鐘。
五個機房都是雙路市電 + UPS + 柴油發電機,機櫃內接雙 PDU 分屬兩路。任一路斷電,機器都能無感持續運作。近 12 個月沒有一次因供電導致的當機紀錄。
每台機器都接上智慧型 PDU 獨立通道。系統徹底當機時,不需要等人走進機房——你在控制台按下「強制重開機」,PDU 層級斷電再上電,平均 40 秒完成,凌晨三點也一樣。
機器是獨享的,信任不能只靠一句口號。這四條是我們內部 runbook 的第一頁,也貼在這裡接受監督。
交付當下就會提示你更換所有憑證;機器內不預裝任何監控 agent、不留維運帳號。我們的健康監控只看網路層與電源層指標——機器有沒有通電、網路通不通,機器裡跑什麼,我們不知道,也不想知道。
日常維運僅止於帶外層(電源、網路、硬體)。需要進入你的系統協助排查問題時,必須有你在工單裡的明確授權,由值班工程師一人操作,操作紀錄附在工單裡。沒有授權,任何人都不會碰用戶的機器。
影響用戶的事故,72 小時內公布檢討報告:根因、影響範圍、時間線、改善項目,一項不漏。撰寫報告的人就是當時處理事故的工程師,不經行銷話術包裝。我們自己也是用戶,知道敷衍的檢討報告讀起來是什麼感覺。
機器下架或用戶註銷後 7 日內完成全盤清除並提供紀錄;SSD 退役時先進行全盤加密清除,再物理銷毀,銷毀證明存檔。你的程式碼簽章憑證與私有倉庫憑證,不會以任何形式流出機房。
空口無憑,提供可核對的數字。統計口徑寫在下方,歡迎在工單裡質詢任何一項。
口徑:2026-07 滾動 12個月;上線率以分鐘為單位取樣、按單台機器計算;交付時間為訂單從付款成功到憑證郵件送達;首次回覆為工單建立到首次人工回覆。
沒有募資故事,只有一條把機器越管越多的路。
用來給自己的兩個 App 跑 CI。第一版上架托盤是 3D 列印的,現在還留著一個當紀念。
朋友的團隊租走一半機器跑 GitHub Actions runner,三個月零投訴。我們意識到這可以是一門生意,決定認真投入。
自助下單、自動交付憑證、一鍵重開機與重灌全部打通,交付從人工半天縮短到 10 分鐘以內。
首批 32 台,面向北美團隊的 CI 需求。同期把 CNC 鋁合金托盤訂為三地統一標準。
東北亞低延遲覆蓋補齊;所有機器接上智慧型 PDU 獨立通道,「強制重開機」從工單請求變成用戶自助操作。
四個檔位統一到 M4 世代,上線機器規模超過 120 台。舊機型逐批退役,磁碟依銷毀流程處理。
團隊目前在招人,節奏是遠端、非同步、少開會、寫清楚再動手。
維護三地實體節點的自動化巡檢、帶外控制與交付流程。你需要對 macOS 和網路都不陌生,能獨立處理凌晨的警示並寫出讓人看得懂的檢討報告。
應徵方式:郵件 support@armmini.com,標題註明「應徵 SRE」。比起履歷,我們更想讀你處理過最棘手的一次事故。
處理工單裡的連線、建置與網路問題,並把重複出現的問題整理回排查手冊。你最好自己發過 App、設定過 self-hosted runner,能用指令列說話。
應徵方式:郵件 support@armmini.com,標題註明「應徵 技術支援」,附一段你寫過的排查紀錄。