C.W.K.
Stream
Lesson 04 of 04 · published

뭘 바꿀 권리를 벌어라

~10 min · read-only-first, mutation-disabled, agentless, least-privilege

Level 0Lone Machine
0 XP0/37 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"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 이 편안한 허구로 서서히 차는 걸 막아.

관찰은 공짜, mutation 은 버는 거. 보는 걸 먼저 출시하고, 뭔가 바꿀 모든 능력은 자기 gate 를 달고 도착하게 해.

Code

자세, config 로·bash
export WATCHFIRE_ENVIRONMENT=production
export WATCHFIRE_MUTATION_MODE=disabled   # 보되, 건드리지 마

# read 경로는 어디서나, 언제나 동작:
watchfire fleet status          # OK  -- 관찰
watchfire host show server       # OK  -- 관찰

# mutating 경로는 disabled 인 동안 모든 경계에서 fail closed:
watchfire host restart server    # 거부됨 -- mutation disabled; gate 미완

# 힘은 그 operation 의 gate 가 리뷰를 통과한 뒤, operation 별로 켜져.
# 넘기면 전부 mutable 해지는 단일 플래그 같은 건 없어.

External links

Exercise

네 기계용 가장 작은 read-only probe 를 설계해: 아무것도 안 바꾸면서 '괜찮아?' 에 답하는 제한된 명령 서너 개를 골라. 그다음 probe 중에 '그냥 고쳐버리고' 싶어질 것 하나를 지목하고 — 왜 그게 별도의 리뷰된 operation 이어야 하는지 논증해.
Hint
안전한 read 는 두 번 돌려도 효과가 똑같아: OS 버전 조회, 남은 디스크, uptime, loaded 서비스 목록. remove·kill·install·설정 쓰기가 들어가면 그건 probe 가 아니라 — probe 옷을 입은 mutation 이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.