본문 바로가기
C.W.K.
Stream
Lesson 01 of 04 · published

왜 관제탑인가

~9 min · control-plane, fleet, drift, build-vs-rent

Level 0Lone Machine
0 XP0/37 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"기계는 지금 상태만 안다고 내 게 아냐. 어떤 상태여야 하는지 말할 수 있어야 진짜 내 거야."

기계가 흩어진다

컴퓨터 한 대는 쉬워. 내 부엌처럼 훤히 알잖아. 뭐가 어디 있고, 뭘 깔았고, 뭐가 돌고 있는지. 두 대까지도 버텨. 근데 일곱 대가 더 붙으면 얘기가 달라져. 늘 켜둔 서버 하나, 특수 목적 기계 몇, 들고 다니는 랩탑 하나. 어느새 걔들이 제각각 흩어져. 하나는 OS 빌드가 한 칸 뒤처지고, 하나는 3주 전에 백그라운드 서비스가 멈췄는데 아무도 몰라. 하나는 딴 나라 가방 속에서 자고 있고. 내 기계들 괜찮나? 이 간단한 질문에 진짜로 답을 못 해.

스프레드시트로는 안 돼

제일 먼저 떠오르는 건 목록이야. 메모든, 스프레드시트든, 기계마다 한 줄씩 적은 hosts.json 이든. 한 일주일은 정리된 것 같아. 근데 금방 썩어. 목록은 사진이고 fleet 은 영화거든. 랩탑 옆에 online 이라고 적는 순간 벌써 틀려. 적는 사이에 랩탑이 잠들었으니까. 정적인 목록은 한때 내가 믿었던 걸 박제할 뿐이야. 뭐가 언제 바뀌었는지, 그게 원래 그래야 했는지는 하나도 못 알려줘.

탑

watchfire, 봉화는 오래된 아이디어야. 높은 데 불을 피워두고, 누군가 계곡을 지켜보다가 본 걸 신호로 알려. fleet control plane 이 네 기계한테 그 탑이야. 뭘 막는 벽도 아니고, 줄을 잡아당기는 인형사도 아냐. 계속 지켜보고, 본 것과 각 기계가 어떤 상태여야 하는지를 오래 남게 적어두고, 그럴 자격을 벌고 나서야 손을 대. 지켜보는 게 먼저야. 나머지는 다 그 위에 얹혀.

그냥 빌리면 되잖아?

device-management SaaS 있지. 랩탑 천 대짜리 회사엔 그게 정답이야. 근데 빌린다는 건 내 기계에 대한 진실이 남의 DB 에 살고, 남의 일정에 맞춰 phone home 하고, 남이 정한 '기기' 틀에 내 기계를 끼워맞춘다는 뜻이야. 내가 직접 이해하는 개인 fleet 한텐 그게 거꾸로지. 관리당하는 게 목적이 아니라, 내 기계를 아는 방식을 내가 쥐는 게 목적이야. 그래서 이 탑은 작고, 로컬이고, 하는 일이 하나야. fleet 하나 위에 불 하나. 내가 짓고 끝까지 읽을 수 있는 걸로.

fleet 은 우연히 생기는 게 아니라 내가 정하는 거야. 관리할 기계는 내가 명단에 올리기로 고른 것들이지, 오늘 어쩌다 핑에 응답한 것들이 아냐.

Code

썩는 목록·python
# 솔깃한 첫 버전. 파일 하나에 기계마다 한 줄.
# 정리된 것 같지? 이미 지나간 순간의 사진일 뿐이야.
fleet = {
    "office": {"online": True,  "os": "26.5.2"},
    "server": {"online": True,  "os": "26.5.2"},
    "laptop": {"online": False, "os": "26.5.1"},  # 자나? 꺼졌나? 여행 갔나? 몰라.
}

# 정작 궁금한 건 이걸로 답이 안 나와.
#   - "laptop" 이 문제인가, 그냥 자는 건가?
#   - 언제부터 빌드가 뒤처졌고, 그건 예정된 거였나?
#   - online=True 는 누가 썼고, 1초 뒤에도 여전히 참인가?
# 납작한 dict 엔 desired state 도, freshness 도, history 도 없어. 썩어.

External links

Exercise

네가 진짜로 기대고 사는 컴퓨터를 다 적어봐. 랩탑, 홈 서버, 라즈베리 파이, 클라우드 VM 뭐든. 하나하나에 지금 참인 것 하나(observed)랑 늘 참이어야 하는 것 하나(desired)를 써. 그 두 칸이 얼마나 다른 느낌인지 봐.
Hint
observed 는 너한테 안 묻고 바뀌어. '지금 4.2GB 남음' 같은 거. desired 는 네가 거는 약속이야. '매일 밤 백업 돌아야 함' 같은 거. 한 칸에 한 종류만 적혔으면 아직 사진으로 보고 있는 거야.

Progress

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

댓글 0

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

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