플랫폼 팀은 장부상 GitHub Actions 스타일 CI용 "전용" Mac mini M4 한 대를 유지하면서도, 야간에는 그와 동일한 머신을 OpenClaw나 스크립트 자동화에 쓰고 싶어 합니다. 라벨과 시간 창에 계약을 박아 두지 않으면 시뮬레이터 포트 고갈, 빌드 대기열 기아, 그리고 슬랙 DM 폭주가 이어집니다. 이 2026년 플레이북은 고/중단 매트릭스, 스케줄링 템플릿 세 가지, 라벨 전환 7단계, 수치 기반 롤백 트리거를 담습니다. 형태가 다른 표 두 개가 본문을 받쳐 내부 런북에 그대로 붙여 넣기 좋게 구성했습니다.
Mac을 "가축"처럼 다루는 관점을 아직 정리하지 않았다면 먼저 스케줄링 가능 Mac mini M4 노드 글을 읽어 보십시오. 용량 대여는 러너 드레인·유지보수 인수인계와 자주 겹치므로, 온콜 가이드에 두 문서를 상호 링크해 두는 것이 좋습니다. 프로덕션 풀을 나눠 쓰는 대신 순간 금속이 필요하면 NodeMac 요금제와 리전을 확인하십시오.
실무에서 "한 대만 더 사면 된다"는 결론은 종종 잘못된 진단입니다. 큐 깊이가 솟을 때 원인이 단일 호스트 포화인지, 잡 스케줄링 정책인지, 아니면 외부 의존성 지연인지 구분하지 않으면 하드웨어 예산만 불어납니다. 대여 창구를 열기 전에 최소 한 주간 동일 이미지 세대의 스탠바이 러너가 같은 리전에 있는지, 그리고 대여 중에도 관측 가능한 읽기 전용 라벨을 유지할 수 있는지부터 확인하십시오. 이런 선행 조건을 문서화해 두면 릴리스 주간에 감정적 논쟁 대신 체크리스트로 대화가 수렴합니다.
왜 "독점" 하드웨어끼리도 충돌하는가
- 소유권이 흐릿함: 동일 호스트명이 CI 대시보드와 자동화 명단에 동시에 뜨는데, 변경에 서명할 단일 오너가 없습니다. 대여 창이 열리면 양쪽 모두 상대가 양보해야 한다고 가정합니다.
- 단일 호스트 포화를 "Mac이 더 필요하다"로 오독: 에이전트와 러너가 CPU·통합 메모리를 두고 싸울 때 큐 깊이가 치솟습니다. 부하를 줄이지 않은 채 라벨만 덧붙이면 p95 대기 시간이 12분에서 35분을 넘어갈 수 있는데 잡 볼륨은 그대로일 수 있습니다.
- 환경·자격 증명 누수: 대여 기간에 macOS 사용자 하나와 기본 키체인을 공유하면 서명 정체성이 충돌하고, "CI에 돌려줬다" 뒤에 API 키가 바뀌어 원인 불명 실패가 남습니다.
충돌을 줄이려면 "누가 언제 어떤 라벨 조합을 본다"는 뷰를 단일 소스로 고정하십시오. 스프레드시트에 적어 두는 것만으로는 부족하고, 오케스트레이터의 라벨 스냅샷을 변경 티켓에 첨부하는 습관이 필요합니다. 또한 대여가 끝난 직후 골든 파이프라인 한 번은 의례가 아니라 게이트로 취급해야 회귀를 조기에 잡을 수 있습니다.
고 / 중단 대여 매트릭스
변경 검토 회의에서 아래 매트릭스를 사용하십시오. 행이 "대여 가능" 쪽으로 많이 기울수록 기본 CI 라벨을 일시적으로 좁히기 안전합니다. 대부분이 중단 쪽이면 유일한 프로덕션 풀을 멀티플렉스하지 말고 버스트 호스트를 별도로 빌리십시오.
| 신호 | 대여 OK | 일시 중지·차단 |
|---|---|---|
| 스탠바이 러너 유휴 | 동일 리전·동일 이미지 세대에서 즉시 트래픽을 받을 동료 호스트 ≥ 1대 | 즉시 트래픽을 받을 준비된 호스트 0대 |
| 큐 깊이 vs 7일 중앙값 | 현재 깊이 ≤ 중앙값 × 1.2 | 이미 ×1.5 초과 |
| 에이전트 독점 예산 | 체크포인트 친화 청크로 ≤ 90분 | 끝 없는 꼬리 작업 또는 며칠짜리 GPU/NPU 점유 |
| 비밀 격리 | 로그인 항목 분리 / 키체인 파티션 분리 | 개발자 인증서 묶음·API 키 파일을 여전히 한 세트로 공유 |
매트릭스의 숫자는 조직마다 미세 조정할 수 있지만, "한 번에 하나의 기준만" 바꾸는 원칙을 지키십시오. 큐 깊이 임계값과 에이전트 독점 시간을 동시에 느슨하게 하면 사고 원인 분석이 거의 불가능해집니다. 분기마다 중앙값과 p95를 재보정하고, 변경 이력을 인프라 위키에 남기면 감사와 컴플라이언스 질문에도 대응하기 쉽습니다.
시간 창 템플릿과 라벨 네이밍
| 템플릿 | 전형적 창 (UTC+8) | 라벨 동작 | 커뮤니케이션 리드타임 |
|---|---|---|---|
| 주중 피크 실드 | 10:00–19:00 대여 없음 | macos-ci 전부 부착; agent-borrow 비움 |
사전 공지 24시간 |
| 야간 배치 슬라이스 | 23:30–06:00 | macos-ci 제거, agent-borrow 추가 |
48시간 |
| 릴리스 프리즈 주 | RFC 프리즈 캘린더에 따름 | 읽기 전용 에이전트만(저장소 쓰기·서명 없음) | 릴리스 매니저와 이중 서명 |
라벨 이름은 팀 취향에 맞게 바꿀 수 있지만, "CI가 붙는 기본 라벨"과 "에이전트 대여 전용 라벨"의 의미를 문서 제목과 동일하게 유지하십시오. 자동화 스크립트가 하드코딩한 라벨 문자열이 있다면 대여 전에 정적 분석이나 간단한 grep으로 깨질 호출 경로를 미리 찾아냅니다. 야간 창은 특히 아시아·북미 혼합 팀에서 "누구의 밤인가"를 명시하지 않으면 오해가 생기므로, RFC에 타임존 기준을 한 줄이라도 박아 두는 것이 안전합니다.
수치 기준선: 대여 전에 큐 깊이, 실행 중 잡 수, 호스트의 지난 24시간 평균 CPU를 스냅샷하십시오. 롤백 논쟁은 이 세 가지 숫자만 비교하고, "느려진 느낌" 같은 일화는 배제합니다.
대여 실행 7단계 체크리스트
- 변경 티켓 오픈: 호스트명, 창구, CI 오너, 자동화 오너를 적습니다.
- 스탠바이 용량 검증: 스탠바이 러너에서 스모크 워크플로가 120분 이내에 성공했는지 확인합니다.
- 인바운드 셀렉터 축소: 대상에서
macos-ci를 제거하되, 라우팅용 읽기 전용 텔레메트리 라벨은 유지합니다. - 드레인 또는 드레인 SLA 준수: 러너 플레이북을 따르고, 묵묵한
kill -9대신 에스컬레이션합니다. - 에이전트 워크로드 시작: CI 체크아웃과 겹치지 않도록 별도 워크스페이스 루트와 로그 접두사를 씁니다.
- 15분마다 샘플링: p95 대기가 기준선 대비 40% 이상 오르면 대여를 중단합니다.
- 깔끔히 종료: 고아 시뮬레이터 종료, 여유 디스크 > 15% 확인,
macos-ci재부착, 골든 파이프라인 실행 후 티켓을 닫습니다.
7단계는 현장에서 종종 4~5단계로 압축되지만, 그럴수록 "드레인이 끝났다"는 주관적 판단만 남기 쉽습니다. 러너 프로세스 목록과 오케스트레이터의 in-flight 잡 뷰를 스크린샷이 아니라 타임스탬프가 찍힌 로그 링크로 남기면, 나중에 사후 분석할 때 논쟁이 줄어듭니다. 에이전트 쪽은 워크스페이스 경로를 환경 변수로 고정하고, 대여 종료 시 git clean 수준의 정리 범위를 티켓에 명시하십시오.
지연, 데이터 상주, 멀티리전 대여
오케스트레이션 컨트롤 플레인이 싱가포르에 있고 에이전트 트래픽은 도쿄 고객 데이터에 붙어야 한다면, 대여 논의에 왕복 지연과 컴플라이언스를 CPU 그래프와 함께 넣어야 합니다. 실무적으로 SSH 홉의 안정 RTT가 35ms 근처 이하면, 대부분의 컴파일 집약 잡과 가벼운 도구 호출은 동일 도시 기준 대비 벽시계 약 12% 이내에 머뭅니다. 80ms를 넘기면 "전용" 머신을 세 리전 떨어진 곳에서 빌리기보다 워크로드 옆에 버스트 호스트를 두는 편이 낫습니다. 성숙한 팀은 지리마다 최소 2대의 동일 이미지 라인 Mac을 웜 풀로 유지해, 홍콩 호스트를 북미 개발자가 주로 소유한 큐로 끌어다 쓰는 식의 조정 비용 폭발을 막습니다.
데이터 상주는 RFC에 명시하십시오: 에이전트가 PII가 있는 저장소를 읽을 수 있는지, 창구 동안 로그가 어디에 쌓이는지, 종료 후 보안 삭제가 필요한지. 규칙을 문서로 남기지 않은 팀은 대여 종료 뒤 디스크에 80GB 캐시가 그대로 남아 공간을 잡아먹고 감사를 불안하게 만드는 경우가 많습니다. 7번째 단계인 정리를 "시간 나면"이 아니라 하드 게이트로 두십시오.
원격 콘솔이 필요하면 VNC 연결 가이드와 도움말 센터에서 NodeMac 호스트의 연결 기대치를 확인하십시오. SSH만으로는 일회성 GUI 동의나 시뮬레이터 디버깅이 막힐 때가 있어, 짧은 그래픽 세션을 허용할지 정책부터 합의하는 것이 좋습니다.
롤백 트리거와 커뮤니케이션 임계값
대여를 되돌릴 수 있는 연산으로 취급하십시오. 아래 임계값을 슬랙 워크플로나 PagerDuty 설명에 넣어 두면, 사고 때 이해관계자가 같은 숫자를 인용해 야간 에스컬레이션이 대략 절반으로 줄어드는 경우가 많습니다.
"대여 시작"·"대여 종료"용 채팅 템플릿을 하나만 문서화해 개발자가 권위 있는 라벨을 추측하지 않게 하십시오. 큐 대시보드 딥링크를 포함하고, 몇 분 만에 낡는 스크린샷 대신 라이브 뷰를 씁니다. 제품 리더십이 대여가 릴리스를 늦췄는지 물을 때는 킥오프 때 잡아 둔 세 가지 기준선 지표로만 답하십시오. 그 외는 내러티브 편향을 부릅니다.
- 큐 깊이: 깊이가 기준선 ×2를 20분 연속 초과하면 CI 온콜을 자동 페이지합니다.
- 실패율: 기본 브랜치 적색이 30분 안에 8퍼센트포인트 이상 증가하면, 작성자 탓 전에 리소스 경합을 의심합니다.
- 에이전트 측: OpenClaw 게이트웨이가 OOM이거나 시간당 3회 이상 재시작하면 대여를 멈추고 에이전트를 별도 호스트로 옮깁니다. 기준 건강은 헤드리스 OpenClaw 수용 검사로 확인합니다.
Mac을 가축처럼 스케줄할 때 Apple Silicon M4의 통합 메모리와 전력 효율이 빛을 발합니다. 같은 열 설계 안에서 컴파일 버스트와 가벼운 추론을 교차해도, 열에 쫓기는 노트북에서 보이는 급격한 스로틀링이 덜합니다. NodeMac은 홍콩·일본·한국·싱가포르·미국에 전용 Mac mini M4를 제공하며 SSH와 VNC 액세스로 대여 시 버스트 용량이나 에이전트 전용 노드로 쓰기 좋습니다. 종량제 임대는 CapEx를 OpEx로 옮겨, 실험적 에이전트 스택이 하드웨어 구매 위원회를 강제하지 않게 합니다.