진행 순서
- '장애 리스크 없이 배포하기' by 김용우
- 라이브 Q&A
배포를 두려워 하는 이유
- 영향도 : 장애가 발생했을 때, 장애의 영향을 서비스를 사용하는 사람들이 얼마나 받는지
- 롤백 : 대부분의 장애 상황은 롤백으로 해결 가능하다 = 쉽고 빠른 롤백이 중요함
중요한것
영향도 최소화 & 쉽고 빠른 롤백
안정적이고 자신감있는 배포
기능 플래그
- 점진적 전달(Progressive Delivery)
- 기능 출시를 제어
- 일부 사용자에게만 먼저 기능을 출시
- 주요 지표를 측정(성능 등)
Error Count, Latency, 구매전환율 등 - 문제가 있으면 롤백
- 사용자 기준*
- 기능 플래그
- on/off 스위치
- Rollout
- Targeting
특정 사용자, 특정 그룹의 사용자 에게만 호출 - 점진적 전달
- 내부 개발자
- QA
- 일부 사용자 or 특정 그룹 사용자
- 전체 사용자
- 롤백
- Blue/Green Deployment
- Canary Deployment
- Feature Flags Deployments
- on/off 스위치
- 배포와 출시의 분리
- 코드를 배포해도 기능 출시는 되지 않음(플래그 off인 경우)
- 운영환경에서 쉽게 테스트
- 점진적 출시를 통한 영향도 최소화
- 쉬운 롤백(플래그 off)
- 코드를 배포해도 기능 출시는 되지 않음(플래그 off인 경우)
- 데이터 측정
- 영향도 확인
- 신규 기능이 출시 되면 지표에 변화가 생김
- 에러 카운트, 레이턴시 등 시스템 지표
- 구매 전환율, 가입율 등 비즈니스 지표
- 재표에는 다양한 외부 요인이 있음
- 다른 신규 기능 출시
- 마케팅, 광고
- 요일, 날씨
- 신규 기능이 출시 되면 지표에 변화가 생김
- A/B 테스트
- 기능 플래그 + A/B 테스트
- 배포와 출시의 분리
- 적은 트래픽으로도 영향도를 확인할 수 있음
- 출시한 기능의 영향도를 파악할 수 있음
- 언제든지 롤백 가능
- 영향도 확인
- 사례
기능 플래그 + A/B 테스트 예시
- 쿠팡(experiment platform)
- Netflix
- Uber
- Facebook - gatekeeper