자동화 slecs

자동화 봇 운영 기반 정식 문서화

목차

인프라 자동화 시스템들이 프로덕션에서 실제로 동작하기 시작했고, 그에 따른 운영 체계를 CLAUDE.md에 정리했다. 개별 변경들은 작아 보이지만 누적되면 팀 전체의 신뢰성을 좌우하는 결정들이다.

자동화, 문서 없이는 반쪽짜리

요즘 인프라 자동화는 "코드가 돌아간다"는 것만으로 끝나지 않는다. 그 자동화가 어디서 어떻게 실행되는지, 언제 실패했을 때 누가 어떻게 대응하는지를 팀이 알아야 한다. 내가 이번에 한 일은 바로 그 "알아야 할 것들"을 한 곳에 모으는 작업이었다.

autobot 이 cron live로 전환된다는 건, 더는 개발자 손으로 수동 트리거 하지 않고 정해진 스케줄에 자동 실행된다는 뜻이다. 그럼 다음 질문들이 생긴다:

  • 이 자동화가 실제로 돌고 있나?
  • 실패했으면 누가 알고 누가 고칠 건가?
  • 이 자동화가 어느 버전/릴리스 부터 적용되는 건가?
  • 접근 권한은 누가 갖나?

이런 것들을 문서로 못 박지 않으면, 6개월 뒤 다른 팀원이 같은 자동화를 다시 만들거나, 장애 원인을 찾으려다 결국 초기 설계자만 아는 상태가 된다.

운영 체계의 네 가지 축

항목 이전 이후 영향
자동화 실행 개발 환경 + 수동 트리거 프로덕션 cron + 자동 스케줄 확장성·신뢰성 ↑
버전 관리 임시 57+ series 공식화 롤백·호환성 추적 가능
가용성 추적 로그만 존재 uptime 메트릭 registered 모니터링·SLA 기반 조치 가능
접근 제어 구두 인수인계 slecs ssh note 문서화 감시·감사 흔적 남음

자동화, 이제 진짜 운영한다

autobot의 cron이 live라는 건, 내가 수동으로 트리거할 때와는 완전히 다른 책임이다. 정기적으로 "반드시" 실행되어야 하고, 실패하면 알려줘야 하고, 결과를 추적해야 한다. 이렇게 되면:

  • 주기성 — 매주 월요일 아침 자동 실행처럼, 정확한 일정이 필요
  • 실패 감지 — cron이 뻗으면 누구도 모를 수 있으니, 헬스체크 연동
  • 버전 호환 — 이 cron이 어느 버전부터 실행되는지 명확히 해야 롤백·버그 추적이 가능

내 경험으로는, 이걸 문서화하지 않으면 약 3개월 뒤 "어? 이 시스템이 왜 지금 작동하는데 작동하지 말아야 하는 거 아닌가?" 하는 혼란이 생긴다. 특히 여러 팀이 관여하면 더 그렇다.

57+ series: 버전, 드디어 기록하다

자동화 시스템은 자주 업그레이드된다. 주기적으로 큰 변경이 들어가고, 때론 이전 버전과 호환되지 않는다. 그런데 이걸 명시하지 않으면:

  • 누군가 구 버전으로 롤백할 땐 언제쯤 안 되는지 모른다
  • 버그 리포트가 들어왔을 때 "어느 버전에서부터인가" 추적이 어렵다
  • 신입이 온보딩될 때 "지금 뭐가 표준 버전이야?"라고 물었을 때 답할 수 없다

57+ series를 공식화한다는 건, 이 버전부터는 이 규칙을 따른다, 이 버전엔 이 기능이 없다, 이런 식으로 약속하는 것이다. 즉, "지금 우리가 뭘 쓰고 있는가"를 팀이 공식적으로 인정하는 첫 단계다.

uptime registered: 모니터링으로 운영한다

autobot이 프로덕션 cron으로 돌아갈 땐, 단순히 "돌고 있다"는 확인만으로는 부족하다. 마지막 성공은 언제였는지, 지난 한 달 가용률은 몇 %인지, 최근 에러는 뭔지 같은 정량적 지표가 필요하다.

uptime을 registered한다는 건:
- 이 자동화의 실행 기록을 중앙 모니터링 시스템에 등록한다
- 실패 임계값을 정하고, 넘으면 알람이 울린다
- 대시보드에서 한눈에 상태를 본다

이렇게 되면 팀리드로서 "우리 자동화가 잘 돌고 있는가"를 직관적으로 판단할 수 있다. 로그를 뒤적거릴 필요가 없다.

slecs ssh note: 보안도 문서다

접근 권한은 "그냥 주면" 된다고 생각하기 쉽지만, 운영하면서는 "누가 뭘 했는가"를 나중에 추적해야 한다. 감시 정책이 생기고, 감사(audit)가 필요해지면, "이 계정은 왜 저 서버에 접근했나"라고 물어볼 때 답해야 한다.

slecs ssh note를 문서화하는 건:
- 이 자동화가 어느 호스트에 접근하는가
- 어느 사용자 계정 권한으로 실행되는가
- 보안 규칙(예: IP 제약, 포트 제한) 무엇인가

이걸 기록으로 남기면, 나중에 보안 팀이나 감사자가 "맞나요?"라고 물었을 때 즉시 답할 수 있다.

회고: 작은 커밋의 누적이 시스템을 만든다

이 커밋은 코드를 고쳤다기보다 "상태를 기록했다"는 의미다. autobot이 처음 개발될 땐 누군가 "수동으로 한 번 돌려볼까"로 시작했을 거다. 그다음 "좀 더 자주 필요하니까 스케줄로 해볼까"라고 생각했을 것. 그 후 "이제 충분히 안정적이니까 프로덕션에 올려야지"로 진화했다.

하지만 그 모든 단계를 팀이 함께 알고 있지 않으면, 결국 "이 자동화는 누가 소유하나?", "이게 왜 갑자기 깨졌나?", "다음 버전은 뭐야?" 같은 질문에 답할 수 없다.

내가 이 문서를 업데이트한 이유는 단순하다. 팀 전체가 같은 버전의 진실을 공유하기 위해서다. 그게 CLAUDE.md의 존재 이유고, 그게 없으면 자동화는 한 개인의 영역에 머문다.

이런 일반론적 관점에서 보면, 자동화 시스템을 온전히 운영하려면:
- 언제 어디서 실행되는가 (스케줄, 호스트)
- 어떤 버전인가 (series, 호환성)
- 얼마나 잘 작동하는가 (uptime, SLA)
- 누가 접근할 수 있는가 (권한, 감시)

이 네 가지를 문서로 고정해야 한다. 이번 커밋은 정확히 그걸 한 것이다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.