TypeScript 운영

배포 환경 선택과 운영 안전장치

개발, 스테이징, 프로덕션 환경을 분리하고 무중단 배포, 관측, 보안 패치를 배포 운영 규칙으로 묶는다.

01

환경 분리

빌드 시점 변수와 런타임 시크릿을 나누고 환경별 API, DB, 권한을 고정한다.

환경 변수 계약
02

릴리스 방식

다운타임 허용 여부와 트래픽 규모에 따라 rolling, blue-green, canary를 고른다.

blast radius
03

관측 연결

배포 버전, 오류율, 지연 시간, 주요 사용자 흐름을 같은 대시보드에서 본다.

SLO signal
04

롤백 준비

마이그레이션 호환성, 이전 이미지, feature flag 해제 절차를 배포 전 확인한다.

복구 경로
무중단
사용자가 세션을 유지해야 하면 병렬 배포를 선택한다. blue-green은 전환이 빠르고 canary는 위험을 작게 쪼갠다.
전환 기준은 오류율과 핵심 API latency
확장성
CPU보다 요청 대기열과 DB 연결 수를 먼저 본다. 오토스케일은 병목을 없애지 않고 병목을 더 빨리 드러낸다.
connection pool과 queue depth를 같이 기록
보안
이미지 스캔과 의존성 감사는 릴리스 기준에 둔다. 취약점 등급, 예외 만료일, 패치 담당자를 배포 기록에 남긴다.
예외는 임시 허용으로만 처리

배포 전 운영 체크

마이그레이션 이전 버전 코드가 새 스키마를 읽어도 깨지지 않는지 확인한다.
시크릿 프로덕션 값이 로그, 소스맵, 클라이언트 번들에 섞이지 않는지 본다.
알림 배포 직후 오류율, 5xx, queue lag, cron 실패가 알림으로 연결된다.

운영 계약 예시

release:
  strategy: canary
  rollback: previous-image + feature-flag-off
  observe: error-rate, p95-latency, deployment-id