쇼케이스로 돌아가기

옵스콘솔 — 배포 파이프라인 관찰 대시보드

소규모 팀의 배포 파이프라인 관찰과 온콜 라우팅을 자동화하는 내부 운영 도구 데모입니다.

산업군: operations-tooling팀 규모: small-teamAI 도구: Claude Code, Cursor

데모 스냅샷

이것은 큐레이션된 데모 스냅샷입니다. 실제 프로젝트 데이터는 검토 후 공개됩니다.

PRD

섹션 구성 ↔ 업계 표준 PRD 템플릿 대응

업계 통용 PRD 섹션본 fixture 섹션깊이 메모
Problem Statement문제 정의Slack 채널 포화·PagerDuty 컨텍스트 부족
Success Metrics성공 지표MTTR 중앙값 12분 → 4분 30초
Non-Functional Requirements비기능 요구viewer/operator/admin 3역할, 대시보드 p95 3초
(도메인 고유)온콜 플로우severity → throttle(10분) → rotation → escalation(15분) 4단계

프로젝트 개요

옵스콘솔은 5-20명 규모 개발팀이 배포 파이프라인 이벤트를 단일 대시보드로 관찰하고 이상 발생 시 온콜 담당자에게 즉시 라우팅되는 내부 운영 도구입니다. CI/CD 실행 횟수가 일 수백 건으로 늘어나면서 Slack 공용 채널이 시스템 로그로 포화되어 실제 장애 신호가 파묻히는 문제를 정면으로 겨냥합니다. 장애 감지부터 담당자 paging, 최초 응답까지의 MTTR을 5분 내로 끌어내리는 것이 제품 목표이며, 이를 위해 severity 판정·throttle·escalation 체계를 내장합니다. Vooster로 요구사항을 구조화하고 태스크를 스프린트 단위로 자동 분배하여, SRE 한두 명이 운영 가능한 수준의 내부 툴로 최소 복잡도를 유지합니다. 별도 관측 SaaS(Datadog·NewRelic) 없이도 파이프라인 가시성·알림 정합성 두 문제를 해결합니다. Vooster가 생성한 PRD·태스크 트리를 Claude Code에 그대로 전달해 webhook ingestion·throttle 엔진·Slack 템플릿을 각 2-3일 사이클로 구현했습니다. 내부 배포 완료 후 1개월간 MTTR 중앙값이 12분에서 4분 30초로 단축되어 "ROI가 가장 빨리 나오는 내부 툴" 카테고리로 정착했습니다.

문제 정의

성장 단계 스타트업의 운영팀은 배포 이벤트가 급증할 때 신호와 잡음을 분리하지 못해 장애 대응이 지연됩니다. 현재 대안은 세 가지 부족한 면이 있습니다. 첫째, Slack 채널에 webhook을 직연결하면 성공 빌드까지 모두 섞여 흘러 심각도 분별이 불가능합니다. 둘째, 유료 PagerDuty를 단독 사용하면 온콜은 울리지만 "무엇이, 어느 환경에서, 몇 번째 실패인지" 맥락을 대시보드에서 한눈에 볼 수 없습니다. 셋째, Grafana/Loki 같은 로그 뷰어는 파이프라인 이벤트 의미 분류(build/test/deploy)를 내장하지 않아 팀마다 대시보드를 다시 조립해야 합니다. 넷째, Slack App workflow만으로는 throttle·escalation 같은 상태를 축적·조회할 수 없어 사후 회고가 불가능합니다. 결과적으로 실제 장애 알림이 평균 7-10분 지연 도달하고, 동일 에러가 반복되면 알림 폭주로 오히려 담당자가 notification을 무시합니다. 옵스콘솔은 "이벤트 의미 분류 + severity 기반 throttle + 시간대별 라우팅"을 결합해 대시보드와 온콜을 단일 워크플로로 묶습니다. 장애 대응에서 '무엇이 지금 깨졌고 누구에게 가야 하는가'를 5초 내 답할 수 있는 것이 핵심 설계 원칙입니다. 동시에 "알림의 히스토리"가 영구 기록되어 주간 회고에서 bottleneck을 되짚을 수 있습니다.

타겟 페르소나

페르소나 A — 온콜 당번 SRE / 플랫폼 엔지니어 (가명: 정현우)

Role: 10-15명 규모 개발 조직의 플랫폼팀 엔지니어, 주 1회 야간 온콜 근무 업무 맥락: 근무시간 외 Slack 알림에 즉각 반응해야 하며, 최초 5분 안에 severity 판단이 필요 일상 Pain:

페르소나 B — 배포 승인권 테크리드 (가명: 윤세영)

Role: 제품팀 테크리드, 40-70 PR/주 리뷰 및 prod 배포 승인 담당 업무 맥turing: 배포 직후 10분간 성공/실패 지표 확인 후 다음 작업으로 이동 일상 Pain:

페르소나 C — QA/릴리스 매니저 (가명: 한수민)

Role: 중견 B2B SaaS 팀의 릴리스 매니저, 주 2회 prod 릴리스 cadence 관리 업무 맥락: 릴리스 윈도우 전후 파이프라인 상태를 감시하고, 실패 시 hotfix 플로우를 조율 일상 Pain:

사용자 스토리

핵심 기능 명세

F1. Webhook 이벤트 ingestion & classification

목적: GitHub Actions/GitLab CI webhook을 수신해 build/test/deploy 이벤트와 환경(staging/prod)별로 자동 분류 동작:

F2. severity 기반 throttle & escalation engine

목적: 반복 알림 폭주를 억제하고 미응답 시 2차 담당자에게 자동 라우팅 동작:

F3. Slack alert template & deploy-diff context

목적: 환경·severity별 Block Kit 메시지 템플릿과 이전 성공 대비 변경점을 즉시 확인 가능한 컨텍스트 제공 동작:

F4. 역할 기반 대시보드 & 주간 리포트

목적: viewer/operator/admin 세 역할별 UI 접근 제어와 주간 집계 리포트로 운영 투명성 확보 동작:

F5. audit log & 변경 이력 뷰어

목적: routing·alert-template·rotation 변경을 diff로 영구 기록하고 admin이 retrospectively 조회 가능하게 함 동작:

성공 지표

각 지표는 내부 대시보드에 실시간 집계되어 주간 회고 자료로 자동 export됩니다.

비기능 요구사항

온콜 플로우 & 알림 라우팅

옵스콘솔의 온콜·라우팅 체계는 "severity 판정 → throttle 윈도우 → rotation 매칭 → escalation"의 4단계 파이프라인으로 동작합니다. 각 단계는 독립적으로 설정 가능하며, 변경 시 audit log에 diff 형태로 기록되어 운영 회고 시 추적 가능합니다.

스코프 경계

V1에서는 다음 범위를 제외합니다.

기술 스택 & 아키텍처 개요

주요 제약은 "내부 운영 툴" 포지셔닝 — 단일 조직 내 사용을 전제로 멀티테넌시 분리는 하지 않고 조직 ID로만 파티셔닝. 외부 SaaS 제공 시에는 별도 아키텍처 재설계 필요. 또한 장애 대응 자체의 자동화(auto-rollback, 자동 복구 playbook)는 현 phase의 scope를 벗어나며, 옵스콘솔은 '관찰·라우팅·기록'의 세 축에 집중합니다.

태스크 트리

Sprint 1 — 수신·관측 기본

파이프라인 이벤트 수신과 기본 대시보드 구현

Sprint 2 — 온콜·알림

온콜 라우팅 룰 엔진과 슬랙 알림 템플릿 구현

Discord
옵스콘솔 — 배포 파이프라인 관찰 대시보드