이것저것

[세미나] Hackle - 개발자를 위한 핵클 Tech Webinar

jwKim96 2021. 10. 6. 19:47

진행 순서

  1. '장애 리스크 없이 배포하기' by 김용우
  2. 라이브 Q&A

배포를 두려워 하는 이유

  • 영향도 : 장애가 발생했을 때, 장애의 영향을 서비스를 사용하는 사람들이 얼마나 받는지
  • 롤백 : 대부분의 장애 상황은 롤백으로 해결 가능하다 = 쉽고 빠른 롤백이 중요함

중요한것

영향도 최소화 & 쉽고 빠른 롤백
안정적이고 자신감있는 배포

기능 플래그

  1. 점진적 전달(Progressive Delivery)
    • 기능 출시를 제어
    • 일부 사용자에게만 먼저 기능을 출시
    • 주요 지표를 측정(성능 등)
      Error Count, Latency, 구매전환율 등
    • 문제가 있으면 롤백
    • 사용자 기준*
  2. 기능 플래그
    • on/off 스위치

    • Rollout
    • Targeting
      특정 사용자, 특정 그룹의 사용자 에게만 호출
    • 점진적 전달
      1. 내부 개발자
      2. QA
      3. 일부 사용자 or 특정 그룹 사용자
      4. 전체 사용자
      5. 롤백
    • Blue/Green Deployment
    • Canary Deployment
    • Feature Flags Deployments
  3. 배포와 출시의 분리
    • 코드를 배포해도 기능 출시는 되지 않음(플래그 off인 경우)
    • 운영환경에서 쉽게 테스트
    • 점진적 출시를 통한 영향도 최소화
    • 쉬운 롤백(플래그 off)
  4. 데이터 측정
    • 영향도 확인
      • 신규 기능이 출시 되면 지표에 변화가 생김
        • 에러 카운트, 레이턴시 등 시스템 지표
        • 구매 전환율, 가입율 등 비즈니스 지표
      • 재표에는 다양한 외부 요인이 있음
        • 다른 신규 기능 출시
        • 마케팅, 광고
        • 요일, 날씨
    • A/B 테스트
    • 기능 플래그 + A/B 테스트
      • 배포와 출시의 분리
      • 적은 트래픽으로도 영향도를 확인할 수 있음
      • 출시한 기능의 영향도를 파악할 수 있음
      • 언제든지 롤백 가능
  5. 사례
    기능 플래그 + A/B 테스트 예시
  • 쿠팡(experiment platform)
  • Netflix
  • Uber
  • Facebook - gatekeeper