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,标题注明「应聘 技术支持」,附一段你写过的排查记录。