피드로 돌아가기
Dev.toDevOps
원문 읽기
Deployment와 Release 분리로 결제 장애 12% 손실을 초 단위로 복구한 설계 전략
Feature Flags That Actually Ship: Lessons From the Trenches
AI 요약
Context
코드 배포와 기능 활성화를 동일시하는 기존 방식의 위험성 분석. DB Migration 실패 시 전체 서비스로 장애가 전파되는 Cascading Failure 발생 및 롤백 스크립트 실행과 CI 파이프라인 대기 시간으로 인한 복구 지연 문제 식별.
Technical Solution
- Deployment와 Release의 물리적 분리를 통한 시스템 안전성 확보
- 목적별 Feature Flag 분류(Release, Ops, Experiment, Permission)를 통한 관리 복잡도 제어
- {type}{team}{feature}_{detail} 명명 규칙 기반의 Flag Inventory 중앙 집중화
- Network Interruption 상황에서도 동작하는 Local Cache 기반의 SDK Singleton 설계
- 모든 Flag 평가 시 검증된 경로(Known-good path)를 반환하는 Safe Fallback 기본값 설정
- 90일 경과 Flag에 대한 자동 티켓 생성 및 만료일 태그 기반의 Lifecycle 관리 자동화
실천 포인트
- 신규 기능 도입 시 삭제 예정일을 포함한 Expiration Tag 부여 여부 확인 - 외부 시스템 연동부 및 고위험 리팩토링 구간에 Kill Switch 적용 검토 - Flag Key를 개별 문자열이 아닌 단일 Source of Truth 파일에서 관리하는지 확인 - 네트워크 장애 시 SDK가 반환할 Default 값이 시스템의 가장 안전한 경로인지 검증