Notepad

실전 카프카 개발부터 운영까지

책을 읽고 정리를 위해 메모한 내용에 대해 작성했습니다.

1장 카프카 개요

  • 오늘날 데이터 처리에서 중요한 핵심 역할을 하는 카프카는 링크드인에서 근무하던 "제이 크렙스", "준 라오", "네하 나크헤데"가 링크드인 내부에서 발생하고 있는 이슈들을 해결하기 위해 만들었음
  • 링크드인에서 카프카를 도입 후 큰 성공을 거두자, 카프카의 창시자인 제이 크렙스가 공동 창시자인 준 라오, 네하 나크헤데와 함께 링크드인을 나와 독립해 2014년 컨플루언트라는 회사를 설립
  • 카프카는 세상에 첫선을 보인 이후 현재까지 이벤트 스트리밍 플랫폼으로 핵심 입지를 다지고 있음
    • 굉장히 안정적인 애플리케이션
    • 사용자들의 요구에 맞춰 크고 작은 신기능들이 발 빠르게 추가됨
  • 책에서의 카프카 명칭 구분
    • 카프카: 별다른 수식어 없이 사용하는 카프카
    • 컨플루언트 카프카: 컨플루언트에서 제공하는 카프카
    • 둘의 차이점
      • 카프카: 자동차의 핵심인 엔진에 비유
      • 컨플루언트 카프카: 편의 기능이 모두 탑재된 완성된 자동차에 비유

잘란도와 트위터의 카프카 도입 사례

  • 잘란도와 트위터의 카프카 사용 사례로 카프카 도입의 당위성과 카프카 도입으로 얻을 수 있는 장점에 대해 설명
  • 잘란도
    • 도입 배경
      • 점파 회사의 규모가 커지고 사업 다각화에 따라 내부적으로 데이터에 대해 온갖 요구사항이 나옴
      • 해결 방안으로 데이터의 변화가 스트림으로 컨슈머 측에 전달되는 이벤트 드리븐 시스템으로의 전환을 결정
    • 도입 시 문제 및 고려해야 할 부분
      • 사용의 효울성
      • 통신 방법에 대한 선택
      • 데이터들에 대한 정합성 유지와 이벤트들의 변경 순서
      • 동기화 방식에서의 문제
        • 여러 네트워크를 이용하는 환경에서 모든 데이터 변경에 대한 올바른 전달 보장 문제
        • 동일한 데이터를 동시에 수정하면서 정확하게 순서를 보장해야 하는 문제
        • 수정된 이벤트들을 정확한 순서대로 아웃바운드 전송하는 문제
        • 다양한 클라이언트들의 요구사항을 효율적으로 지원하기 어려운 문제
        • 빠른 전송을 위한 클라이언트 또는 대량의 배치 전송을 위한 클라이언트를 지원하기 어려운 문제
    • 비동기 방식의 대표 스트리밍 플랫폼으로 카프카 도입
      • 빠른 데이터 수집이 가능한 높은 처리량
      • 순서 보장
      • 적어도 한 번 전송 방식
      • 자연스러운 백프레셔 핸들링
      • 강력한 파티셔닝
      • 그 외 여러 가지 기능
    • 도입 결과
      • 내부의 데이터 처리를 간소화함
      • 높은 처리량을 바탕으로 스트림 데이터 처리의 확장성을 높임
      • 서비스 품질 향상
  • 트위터
    • 도입 배경
      • 카프카 0.7 버전 사용 당시 많은 문제점이 있어 인하우스 메시지 시스템인 이벤트 버스를 구축
      • 카프카의 발전으로 카프카가 실시간 메시징 시스템의 업계 표준으로 자리매김하며 다시 카프카로의 전환 검토
    • 전환 목적
      • 비용 절감 효과
      • 강력한 커뮤니티
    • 도입 결과
      • 비용 절감 효과
        • 메시지가 처리되는 양과 관계없이 이벤트 버스에 비해 카프카의 응답 속도가 빠름
      • 강력한 커뮤니티
        • 오픈소스로 전 세계에 걸쳐 수백 명에 이르는 개발자들이 기여 중
        • 대중화된 카프카를 채택함으로 새로운 엔지니어를 고용하기 쉬움
      • 빠르고 높은 성능을 갖는 애플리케이션

국내외 카프카 이용 현황

  • 해외 카프카 이용 현황
    • 2020년 기준으로 포춘 100대 기업 중 약 80% 이상이 카프카를 사용 중
  • 국내 카프카 이용 현황
    • 2018년 카카오의 경우 하루 2,600억 개의 메시지를 처리하며, 하루 약 240TB의 데이터를 처리 중

카프카의 주요 특징

  • 높은 처리량과 낮은 지연시간
  • 높은 확장성
  • 고가용성
  • 내구성
  • 개발 편의성
  • 운영 및 관리 편의성

카프카의 성장

  • 리플리케이션 기능 추가(v0.8)
  • 스키마 레지스트리 공개(v0.8.2)
  • 카프카 커넥트 공개(v0.9)
  • 카프카 스트림즈 공개(v0.10)
  • KSQL 공개
  • 주키퍼 의존성에서 해방(v3.0)

다양한 카프카의 사용 사례

  • 넷플릿스: 데이터 파이프라인
  • 유버: 데이터 통합
  • 머신러닝 분양 활용 사례
  • 스마트 시티 분야 활용 사례

정리

  • 카프카는 강력한 특성들을 바탕으로 오늘날 실시간 데이터 플랫폼 또는 이벤트 스트림이 플랫폼이라 불리며, 분야를 막론하고 모든 데이터 처리 프로세싱의 핵심 기반에 없어서는 안 될 필수 요소로 자리 잡음

참고 서적

  • 실전 카프카 개발부터 운영까지(고승범, 책만)
profile

Notepad

@Apio

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!