13P by xguru 2023-06-20 | favorite | 댓글과 토론
  • 넷플릭스는 2022년에 iOS/안드로이드 앱을 GraphQL로 다운타임없이 이관했음
    • 클라이언트까지 API 계층까지 전면적인 작업을 진행
  • 최근까지는 내부의 API 프레임워크인 Falcor 를 사용
  • 현재는 Federated GraphQL로 모바일 앱을 서비스

이관 단계별 설명

  • GraphQL 전에는 Monolithic Falcor API를 개발및 관리
  • Phase 1: GraphQL Shim 서비스를 기존 Monolith Falcor API 상단에 구현. AB 테스팅
  • Phase 2: GraphQL Shim 서비스 와 레거시 API 모노리스를 deprecate 하고, Federated GraphQL Gateway 를 도입. Replay Testing 과 Sticky Canaries

안전한 이관을 위한 3가지 전략

  • AB 테스팅 : Falcor 와 GraphQL Shim 을 AB 분리하여 테스트
  • Replay 테스팅 : API가 정확히 이관되었는지 확인하기 위해 Replay Testing 도구를 개발
  • Sticky Canaries : 특정 트래픽을 분리하여 Canary로 어사인 하여 기능 뿐만이 아닌, 다양한 메트릭을 테스트