"control plane 은 전부 볼 수 있어야 하고, 첫날엔 아무것도 못 바꿔야 해."
기본은 힘 꺼짐
Watchfire 는 read-only, agentless, production mutation 꺼진 채로 나와. fleet 을 훑고, 도달 여부를 probe 하고, OS 빌드며 서비스 상태며 drift 를 읽어. 근데 재부팅도, 업그레이드도, enroll 도, 재설정도 못 해. 다 보되 하나도 못 건드려. 이건 덜 만든 게 아니라, 일부러 잡은 시작 자세야.
일부러 불구로 시작하는 이유
둘은 위험이 아예 달라서 그래. 관찰은 안전해. 돌리고 또 돌려도 아래로 아무 변화가 없어. mutation 은 위험해. 딴 나라 기계를 재부팅하거나, 엉뚱한 호스트를 retire 하거나, OS 업그레이드를 벽돌로 만들어. 그래서 안전한 반쪽은 첫날부터 밥값을 하고, 위험한 반쪽은 각 operation 의 preflight, approval, verification, recovery 가 실제로 만들어지고 리뷰를 통과할 때까지 꺼둬. 힘은 gate 걸린 operation 하나씩 켜져. 전역 스위치 하나 올려서 켜지는 게 아니라.
agentless 먼저
첫 probe 는 탑에서 당겨오는 방식이야. 자격 있는 호스트에 SSH 로 닿고, 제한된 read-only 명령을 돌리고, 결과를 정리해. 아홉 대에 데몬을 깔지 않아. 그거 없이는 도저히 안 되는 구체적인 operation 이 생겼을 때만 상주 agent 를 더해. 재부팅이랑 SSH 끊김을 버텨야 하는 작업 같은 거. 아직 없는 문제를 풀겠다고 영구 agent 를 뿌리지 마. agent 는 진짜 job 이 요구할 때만 치르는 비용이야.
수동 증거는 receipt 가 아냐
가끔은 기계를 손으로 고쳐. 직접 앉아서 업그레이드하지. 그건 진짜고 증거 로 쳐. 근데 서명된 executor receipt 는 아냐. control plane 은 자기가 실제로 보낸 걸 적어. 그냥 지켜본 작업에 receipt 를 지어내면 안 돼. 그 둘을 갈라둬야 기록이 그럴싸한 거짓말로 슬금슬금 차는 걸 막아.