- 넷플릭스는 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로 어사인 하여 기능 뿐만이 아닌, 다양한 메트릭을 테스트