"control plane 은 전부 볼 수 있어야 하고, 첫날엔 아무것도 못 바꿔야 해."
기본은 힘 꺼짐
Watchfire 는 read-only, agentless, production mutation disabled 로 출시돼. fleet 을 인벤토리하고, 도달성을 probe 하고, OS 빌드·서비스 상태·drift 를 읽을 수 있어 — 근데 재부팅·업그레이드·enroll·재설정은 아무것도 못 해. 완전한 시야, 제로 터치. 이건 반쯤 만든 제품이 아니라, 의도된 시작 자세야.
일부러 불구로 시작하는 이유
두 반쪽의 위험이 완전히 다르거든. 관찰은 안전해: 돌리고, 또 돌려도, 하류에 아무 변화 없어. mutation 은 위험해: 다른 나라의 기계를 재부팅하거나, 엉뚱한 호스트를 retire 하거나, OS 업그레이드를 벽돌로 만들어. 그래서 안전한 반쪽은 첫날부터 밥값을 하고, 위험한 반쪽은 각 특정 operation 의 preflight·approval 규칙·verification·recovery 이야기가 실제로 만들어지고 리뷰될 때까지 꺼져 있어. 힘은 gate 걸린 operation 하나씩 도착하지 — 전역 스위치 하나를 on 으로 넘겨서가 절대 아냐.
Agentless 먼저
첫 probe 경로는 탑에서의 pull 이야: 자격 있는 호스트에 SSH 로 닿고, 제한된 read-only 명령을 돌리고, 결과를 정규화해. 아홉 대에 데몬 안 깔아. 구체적인 operation 이 그거 없인 진짜로 신뢰성 있게 안 될 때만 resident agent 를 더해 — 예를 들어 재부팅과 SSH 상실을 버텨야 하는 작업. 아직 없는 문제를 풀겠다고 영구 agent 를 뿌리지 마. agent 는 진짜 job 이 요구할 때만 치르는 비용이야.
수동 증거는 receipt 가 아냐
가끔은 기계를 손으로 고쳐 — 직접 앉아서 업그레이드해. 그건 진짜고 증거 로 쳐. 근데 서명된 executor receipt 는 아냐. control plane 은 자기가 실제로 dispatch 한 걸 기록하지, 그냥 지켜본 작업에 receipt 를 지어내면 절대 안 돼. 그 둘을 갈라두는 게, logbook 이 편안한 허구로 서서히 차는 걸 막아.