
[도서 개요]
아파치 카프카의 공동 창시자 준 라오(Jun Rao)가 추천한 책!
국내 최초이자 유일한 컨플루언트 공인 아파치 카프카 강사(Confluent Certified Trainer for Apache Kafka)와 공인 관리자 자격(Confluent Certified Administrator for Apache Kafka)을 보유한 『카프카, 데이터 플랫폼의 최강자』 저자 고승범이 SKT, 카카오 등 국내 최대 규모의 데이터 플랫폼상에서 카프카를 운영하며 쌓아온 현업 경험과 노하우를 이 책에 모두 담아냈다.
대량의 데이터를 손실없이 빠르고 정확하게 처리하고 싶다면? 정답은 카프카!
풍부한 그림으로 쉽고 빠르게 이해하는 카프카의 내부 구조와 동작 방식부터 카프카 클라이언트의 기본이 되는 예제 코드와 실제 운영에서 필요한 핵심 노하우는 물론이고, 365일 안전한 카프카를 운영할 수 있는 보안과 모니터링 기법, 운영 편의성과 효율성을 극대화할 수 있는 스키마 레지스트리와 카프카 커넥트까지 카프카에 대한 모든 것을 담은 가장 완벽하고 상세한 최고의 가이드북이다.
| 이 책에서 다루는 내용 |
- 풍부한 그림으로 알기 쉽게 설명한 카프카 내부 구조와 동작 원리
- 자바와 파이썬을 이용한 카프카 클라이언트 예제 코드
- AWS와 온프레미스 환경에서의 카프카 구축과 운영
- 고통을 최소화하는 카프카 업그레이드와 유지보수 방안
- 아파치 카프카 기반 보안 구축 방법
- 스키마 레지스트리와 카프카 커넥트의 다양한 활용
- 카프카를 제대로 사용하기 위한 프로듀서/컨슈머의 내부 동작과 리밸런싱 동작 방식
- 엔터프라이즈 환경에서의 카프카 아키텍처 구성 사례
- 현업 전문가의 경험과 팁을 정리한 Q&A
| 이 책의 대상 독자 |
- 카프카를 배우고자 하는 초보자
- 카프카를 현업에 적용하고 싶은 운영자
- 카프카를 최대한 활용하기 위해 내부 동작 방식을 알고 싶은 개발자
- 카프카와 카프카 에코시스템을 이해하고 활용하고자 하는 개발자
- 데이터 표준화와 실시간 처리에 대해 고민하는 아키텍트
- 효율적으로 데이터를 수집, 처리, 분석하기를 원하는 아키텍트
| 이 책의 구성 |
1장 ‘카프카 개요’에서는 잘란도와 트위터의 카프카 도입 사례를 통해 우수 기업에서의 고민들과 카프카의 특장점을 알아보고, 국내외 카프카 현황 등을 알아봅니다. 나날이 발전하고 있는 카프카의 성장 과정을 살펴보고 사용 사례도 알아봅니다.
2장 ‘카프카 환경 구성’은 이 책의 전반적인 실습 환경을 구성하기 위한 내용으로, AWS 환경과 온프레미스 환경에서 구성하는 방법을 처음 AWS를 접하는 분들도 쉽게 따라 할 수 있도록 자세하게 설명했습니다. AWS 환경에서 카프카 설치가 완료되면 간단한 맛보기 예제로 카프카에 대해 알아봅니다.
3장 ‘카프카 기본 개념과 구조’에서는 카프카의 기본 지식을 쌓기 위해 카프카 기본 구조, 프로듀서와 컨슈머의 동작과 예제 코드를 살펴봅니다.
4장 ‘카프카의 내부 동작 원리와 구현’에서는 카프카의 주요 핵심 기능을 살펴보며, 리플리케이션과 관련된 내부 상세 동작, 컨트롤러의 역할, 로그 등을 집중적으로 다뤄봅니다.
5장 ‘프로듀서의 내부 동작 원리와 구현’에서는 프로듀서의 핵심 기능을 살펴보며, 파티셔너, 중복 없는 메시지 전송, 정확히 한 번 전송 등 프로듀서에서 안정적인 메시지 전송을 하기 위해 반드시 알아야 할 내용을 다룹니다.
6장 ‘컨슈머의 내부 동작 원리와 구현’에서는 컨슈머의 핵심 기능을 살펴봅니다. 컨슈머의 오프셋관리, 그룹 코디네이터의 동작과 파티션 전략 등 컨슈머를 안정적으로 개발하고 운영하기 위한 핵심 내용을 살펴봅니다.
7장 ‘카프카 운영과 모니터링’에서는 카프카를 안정적으로 운영하기 위한 방법과 노하우 등을 살펴봅니다. 모니터링 시스템을 직접 구축하는 실습을 통해 안정적으로 모니터링하는 방법을 알아봅니다.
8장 ‘카프카 버전 업그레이드와 확장’에서는 카프카 운영 시 필수적인 버전 업그레이드와 스케일아웃 방법을 직접 실습하면서 이해해봅니다.
9장 ‘카프카 보안’에서는 카프카에서 제공하는 보안 관련 내용을 다룹니다. 보안을 적용하는 실습 과정도 진행해봅니다.
10장 ‘스키마 레지스트리’에서는 스키마 레지스트리의 개요와 활용 방법을 알아봅니다. 스키마 레지스트리를 처음 접하는 분들을 위해 에이브로(Avro) 기반의 실습 과정과 예제 코드를 함께 다룹니다.
11장 ‘카프카 커넥트’에서는 카프카 커넥트의 기본 개념과 동작 등을 살펴봅니다. 최근 공개된 미러 메이커 2.0에 대한 간략한 소개와 함께 미러링 방법을 배워봅니다.
12장 ‘엔터프라이즈 카프카 아키텍처 구성 사례’에서는 지금까지 책에서 다룬 내용을 기반으로 엔터프라이즈 환경과 유사하게 미러 메이커는 물론이고 엘라스틱서치 및 모니터링 등을 통합 구성해 실습해봅니다.
13장 ‘카프카의 발전과 미래’에서는 최근 가장 큰 이슈인 주키퍼의 의존성을 없애려는 배경과 현재 진행 상황 그리고 앞으로의 방향에 대해 살펴봅니다.
4개 부록에서는 각각 MSK, 컨플루언트 클라우드(Confluent Cloud)에서 카프카를 구성하는 방법과 장단점을 비교했으며, 앤서블(Ansible)의 특징과 실습 환경 구성, 도커(Docker)를 이용한 카프카 설치 등 별도로 기초 과정을 추가해 처음 접하는 분들도 쉽게 이해할 수 있도록 설명했습니다. 또한 사용자들이 평소 궁금해 하는 질문들을 간단히 살펴볼 수 있도록 요약 정리했습니다.
| 이 책을 활용하기 위한 개발 환경 |
- 아파치 카프카 2.6
- 아파치 주키퍼 3.5.9
- 컨플루언트 카프카 6.1
- 자바 1.8
- 파이썬 3.7.9
- 앤서블(Ansible) 2.9.12
- 운영체제: 온프레미스(CentOS7), AWS(Amazon Linux 2)
이 책을 마무리하는 시점인 2021년 9월 말 기준으로 아파치 카프카 3.0이 릴리스되었습니다. 하지만 아파치 카프카 3.0에서 새로이 도입된, 주키퍼 의존성이 제거된 크래프트(KRaft) 알고리즘 등은 아직 운영 환경에서 사용하는 것이 권장되지 않습니다. 따라서 이 책에서 모든 실습 예제와 설명은 엔터프라이즈 환경에서 안정적으로 사용할 수 있는 아파치 카프카 2.6을 기준으로 전개합니다.