1.5 다양한 카프카의 사용 사례
데이터 파이프라인: 넷플릭스 사례
- 넷프릭스는 커다란 규모로 데이터를 수집, 통계, 처리, 적재하는 파이프라인을 연결하고 있다.
- https://netflixtechblog.com/evolution-of-the-netflix-data-pipeline-da246ca36905
- 넷플릭스는 데이터 기반 의사결정을 위해 대규모 데이터 파이프라인을 운영하고 있음.
- 초기에는 Chukwa를 활용해 Hadoop/Hive로 이벤트 데이터를 배치 처리했음.
- 실시간 분석 수요가 커지면서 Kafka와 Elasticsearch를 도입해 이벤트 일부를 실시간 분기로 처리하기 시작함.
- Kafka 기반 라우팅 서비스 운영 중 여러 장애와 운영 부담이 발생했음.
- 이를 해결하고자 아키텍처를 단순화하고 내구성을 높이기 위해 Keystone 파이프라인으로 전환함.
- Keystone은 Kafka를 중심으로 데이터 수집, 버퍼링, 라우팅을 담당함.
- 데이터는 S3, Elasticsearch, 세컨더리 Kafka 등 다양한 싱크로 전송됨.
- 실시간성과 확장성, 운영성, 셀프서비스 기능을 지속적으로 개선하고 있음.
- 운영 메트릭은 별도의 시스템(Atlas)에서 관리함.
- 앞으로도 대규모 Kafka 운영, 컨테이너 관리 등 다양한 개선을 이어갈 계획임.
데이터 통합: 우버 사례
- 카프카가 없다면 하나의 데이터 파이프라인을 추가할 때마다 호환성, 데이터 정합성 등으로 매우 고단한 작업을 거쳐야 했다.
- 카프카 중심 데이터 통합을 통해 이를 해결할 수 있다.
- 우버는 운전자와 탑승자 앱으로부터 발생한 이벤트 데이터를 수집하고 다양한 다운스트림 컨슈머에게 전달한다.
- https://www.uber.com/en-KR/blog/ureplicator-apache-kafka-replicator/
- Uber는 여러 데이터센터의 Kafka 클러스터 간 데이터 복제를 MirrorMaker로 했지만, 확장성과 신뢰성 문제를 겪었음.
- MirrorMaker는 리밸런스 시 데이터 전송이 중단되고, 토픽 추가/삭제나 노드 장애 처리도 불편했음.
- Uber는 Helix 기반 uReplicator를 개발해 토픽-파티션을 워커에 동적으로 할당하고, 장애 시 자동으로 재할당함.
- DynamicKafkaConsumer로 토픽 파티션을 실시간 추가/삭제할 수 있고, 클러스터 재시작 없이 운영 가능해짐.
- 데이터가 목적지에 안전하게 저장된 후에만 체크포인트를 커밋해 데이터 유실이 없도록 했음.
- uReplicator 도입 후 데이터 복제의 안정성, 확장성, 운영 효율성이 크게 개선됨.