실전 카프카 개발부터 운영까지
책을 읽고 정리를 위해 메모한 내용에 대해 작성했습니다.
1장 카프카 개요
- 오늘날 데이터 처리에서 중요한 핵심 역할을 하는 카프카는 링크드인에서 근무하던 "제이 크렙스", "준 라오", "네하 나크헤데"가 링크드인 내부에서 발생하고 있는 이슈들을 해결하기 위해 만들었음
- 링크드인에서 카프카를 도입 후 큰 성공을 거두자, 카프카의 창시자인 제이 크렙스가 공동 창시자인 준 라오, 네하 나크헤데와 함께 링크드인을 나와 독립해 2014년 컨플루언트라는 회사를 설립
- 카프카는 세상에 첫선을 보인 이후 현재까지 이벤트 스트리밍 플랫폼으로 핵심 입지를 다지고 있음
- 굉장히 안정적인 애플리케이션
- 사용자들의 요구에 맞춰 크고 작은 신기능들이 발 빠르게 추가됨
- 책에서의 카프카 명칭 구분
- 카프카: 별다른 수식어 없이 사용하는 카프카
- 컨플루언트 카프카: 컨플루언트에서 제공하는 카프카
- 둘의 차이점
- 카프카: 자동차의 핵심인 엔진에 비유
- 컨플루언트 카프카: 편의 기능이 모두 탑재된 완성된 자동차에 비유
잘란도와 트위터의 카프카 도입 사례
- 잘란도와 트위터의 카프카 사용 사례로 카프카 도입의 당위성과 카프카 도입으로 얻을 수 있는 장점에 대해 설명
- 잘란도
- 도입 배경
- 점파 회사의 규모가 커지고 사업 다각화에 따라 내부적으로 데이터에 대해 온갖 요구사항이 나옴
- 해결 방안으로 데이터의 변화가 스트림으로 컨슈머 측에 전달되는 이벤트 드리븐 시스템으로의 전환을 결정
- 도입 시 문제 및 고려해야 할 부분
- 사용의 효울성
- 통신 방법에 대한 선택
- 데이터들에 대한 정합성 유지와 이벤트들의 변경 순서
- 동기화 방식에서의 문제
- 여러 네트워크를 이용하는 환경에서 모든 데이터 변경에 대한 올바른 전달 보장 문제
- 동일한 데이터를 동시에 수정하면서 정확하게 순서를 보장해야 하는 문제
- 수정된 이벤트들을 정확한 순서대로 아웃바운드 전송하는 문제
- 다양한 클라이언트들의 요구사항을 효율적으로 지원하기 어려운 문제
- 빠른 전송을 위한 클라이언트 또는 대량의 배치 전송을 위한 클라이언트를 지원하기 어려운 문제
- 비동기 방식의 대표 스트리밍 플랫폼으로 카프카 도입
- 빠른 데이터 수집이 가능한 높은 처리량
- 순서 보장
- 적어도 한 번 전송 방식
- 자연스러운 백프레셔 핸들링
- 강력한 파티셔닝
- 그 외 여러 가지 기능
- 도입 결과
- 내부의 데이터 처리를 간소화함
- 높은 처리량을 바탕으로 스트림 데이터 처리의 확장성을 높임
- 서비스 품질 향상
- 도입 배경
- 트위터
- 도입 배경
- 카프카 0.7 버전 사용 당시 많은 문제점이 있어 인하우스 메시지 시스템인 이벤트 버스를 구축
- 카프카의 발전으로 카프카가 실시간 메시징 시스템의 업계 표준으로 자리매김하며 다시 카프카로의 전환 검토
- 전환 목적
- 비용 절감 효과
- 강력한 커뮤니티
- 도입 결과
- 비용 절감 효과
- 메시지가 처리되는 양과 관계없이 이벤트 버스에 비해 카프카의 응답 속도가 빠름
- 강력한 커뮤니티
- 오픈소스로 전 세계에 걸쳐 수백 명에 이르는 개발자들이 기여 중
- 대중화된 카프카를 채택함으로 새로운 엔지니어를 고용하기 쉬움
- 빠르고 높은 성능을 갖는 애플리케이션
- 비용 절감 효과
- 도입 배경
국내외 카프카 이용 현황
- 해외 카프카 이용 현황
- 2020년 기준으로 포춘 100대 기업 중 약 80% 이상이 카프카를 사용 중
- 국내 카프카 이용 현황
- 2018년 카카오의 경우 하루 2,600억 개의 메시지를 처리하며, 하루 약 240TB의 데이터를 처리 중
카프카의 주요 특징
- 높은 처리량과 낮은 지연시간
- 높은 확장성
- 고가용성
- 내구성
- 개발 편의성
- 운영 및 관리 편의성
카프카의 성장
- 리플리케이션 기능 추가(v0.8)
- 스키마 레지스트리 공개(v0.8.2)
- 카프카 커넥트 공개(v0.9)
- 카프카 스트림즈 공개(v0.10)
- KSQL 공개
- 주키퍼 의존성에서 해방(v3.0)
다양한 카프카의 사용 사례
- 넷플릿스: 데이터 파이프라인
- 유버: 데이터 통합
- 머신러닝 분양 활용 사례
- 스마트 시티 분야 활용 사례
정리
- 카프카는 강력한 특성들을 바탕으로 오늘날 실시간 데이터 플랫폼 또는 이벤트 스트림이 플랫폼이라 불리며, 분야를 막론하고 모든 데이터 처리 프로세싱의 핵심 기반에 없어서는 안 될 필수 요소로 자리 잡음
참고 서적
- 실전 카프카 개발부터 운영까지(고승범, 책만)
'dev > 기타' 카테고리의 다른 글
| [정리] 실전 카프카 개발부터 운영까지(5) (0) | 2022.10.20 |
|---|---|
| [정리] 실전 카프카 개발부터 운영까지(3) (1) | 2022.10.04 |
| 특정 IP의 특정 Port Open 여부 확인 (0) | 2022.06.21 |
| Angular Git Commit Message Convention (0) | 2022.06.13 |
| REST 리소스 명명 가이드 (0) | 2022.06.06 |