실전 카프카 개발부터 운영까지
데이터 플랫폼의 중추 아파치 카프카의
내부 동작과 개발, 운영, 보안의 모든 것
고승범 지음
512쪽 | 33,000원 | 2021년 10월 29일 출간 | 180*235*25 | ISBN 9791189909345
판매처 | [교보문고] [YES24] [알라딘] [영풍문고] [인터파크] + 전국 교보문고 매장
전자책 판매처 | [리디북스] [교보문고] [YES24] [알라딘] | ISBN 9791189909369 | PDF 포맷 |
(※ 2024년 4월 29일 기준 전자책은 최신 수정사항이 반영된 버전2.0으로 업데이트됐습니다.)
★ 정오표: https://www.onlybook.co.kr/entry/kafka2-errata
★ 예제 코드 다운로드: https://github.com/onlybooks/kafka2
아파치 카프카의 공동 창시자 준 라오(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)의 특징과 실습 환경 구성, 도커를 이용한 카프카 설치 등 별도로 기초 과정을 추가해 처음 접하는 분들도 쉽게 이해할 수 있도록 설명했습니다. 또한
사용자들이 평소 궁금해하는 질문들을 간단히 살펴볼 수 있도록 요약 정리했습니다.
| 이 책을 활용하기 위한 개발 환경 |
- 아파치 카프카 2.6
- 아파치 주키퍼 3.5.9
- 컨플루언트 카프카 6.1
- 자바 1.8
- 파이썬 3.7.9
- 앤서블 2.9.12
- 운영체제: 온프레미스(센트OS7), AWS(아마존 리눅스2)
추천의 글
우리는 엄청난 변화의 시대에 살고 있습니다. 디지털 트랜스포메이션을 넘어서, 세상의 모든 기업은 실시간으로 움직이는 데이터를 비즈니스에 활용하기 위해 애쓰고 있으며, 아파치 카프카는 살아 움직이는 데이터를 활용하기 위해 사용되는 다양한 기술 중에서도 가장 독보적인 기술이라 할 수 있습니다. 실시간 이벤트 데이터 전달을 처리하는 스트리밍 플랫폼인 아파치 카프카를 만약 처음 접하는 분들이라면, 이 책이 여러분을 초보자에서 전문가로 이르는 길로 인도해 줄 것입니다.
이 책에서 저자는 아파치 카프카를 오랫동안 실무에 적용해 사용했던 경험을 바탕으로 카프카를 실제 업무에 사용하는 데 필요한 주요 핵심 사항을 알려줍니다. 이 책을 통해 더욱 많은 분들이 아파치 카프카를 잘 습득하여 더 나은 개발자와 운영자로 거듭나기를 진심으로 바랍니다.
- 준 라오(Jun Rao) / 컨플루언트 공동 창업자(Confluent Co-founder)
서비스 품질에 문제가 없을 때에는 그 존재조차 인지하기 어렵지만 품질이 저하되기 시작하면 고객이 큰 불편을 겪는다는 측면에서 보면, 오늘날 이동통신 서비스는 상수도나 전기에 버금가는 사회 인프라라고 할 수 있습니다. 고객에게 최선의 서비스 품질을 제공하기 위해 모든 노력을 다하는 SK텔레콤에서 대규모 데이터를 실시간 스트리밍으로 처리해야 하는 플랫폼의 안정적인 운영은 매우 중요합니다.
저자는 SK텔레콤에서 카프카 기반의 실시간 데이터 스트리밍 플랫폼을 직접 운영한 경험을 이 책에 꼼꼼히 담아냈습니다. 시간이 부족한 현업 운영자들이 기본 개념을 잘 이해할 수 있도록 상세히 설명했고, 이와 동시에 프로덕션 환경에서의 보안이나 업그레이드 등 여러 노하우도 풍부하게 다뤘습니다. 카프카 기반 데이터 스트리밍 플랫폼을 직접 안정적으로 운영하고자 하는 많은 분에게 큰 도움이 되리라 기대합니다.
- 조동환 / SK텔레콤 CIO
예상보다 카프카를 이미 도입했거나 추후 도입을 검토하는 국내 기업들이 많다는 사실을 최근 체감하고 있습니다. 저자 고승범 님이 자신이 체득한 카프카 운영 경험을 모두 녹여내고 담아낸 이 책은 카프카를 처음 접하거나 카프카에 대한 전반적인 정보가 필요한 분들께 없어서는 안 될 바이블 역할을 할 것이라 생각합니다. 많은 미션 크리티컬한 업무에 카프카가 꾸준히 적용되고 있으며, 이와 관련한 운영 기술력을 요구하는 곳은 더욱 많아질 것입니다. 따라서 이 책은 훌륭한 카프카 엔지니어를 양성하는 데 크나큰 귀감이 될 것이라 믿습니다.
- 최영주 / 컨플루언트 코리아 대표
뭔가에 대해 지식을 쌓는 데 있어서 경험의 중요성은 아무리 강조해도 지나치지 않습니다. 지식을 쌓기 위해서는 최소한 자기가 뭘 모르는지는 알아야 하는데, 경험이 너무 없으면 자기가 뭘 모르는지조차 깜깜하기 때문이지요. 그런 점에서 경험은 지하수를 끌어올리는 펌프의 마중물과도 비슷한 역할을 합니다. 일단 마중물을 한 바가지 쏟아부어야 지하수가 올라오듯, 뭔가를 배우는 데 있어서 어느 정도의 경험은 필수적입니다.
경험을 쌓는 데는 두 가지 방법이 있습니다. 하나는 직접 부딪혀 가면서 (양질의) 경험을 축적하는 것이고, 또 하나는 그렇게 경험을 축적한 사람의 이야기에 귀기울이는 것입니다. 이 책의 저자인 승범님은 전자에 해당하는 사람입니다. 그리고 이 책은 후자에 해당하죠. 이 책을 집어드신 여러분은 다년간의 경험으로 무장한 운영자의 머릿속에 있는 암묵적 지식을 정리된 형태로 접할 수 있는 행운을 잡으신 겁니다. 이 책이 카프카를 처음 접하는 초보자들에게 마중물 역할을 해 줄 것임을 믿어 의심치 않습니다.
- 이동진 / 아파치 카프카 컨트리뷰터
데이터 담당부서에서 실시간 데이터 서비스는 필수 요구사항이 되었고, 이를 위한 다양한 데이터 스트리밍 플랫폼이 존재합니다. 그중에서도 카프카는 안정성, 성능, 확장성 등의 측면에서 충분히 검증되어 일종의 표준 플랫폼처럼 활용되고 있습니다. 이런 인기로 인해 데이터 엔지니어들은 고민 없이 비교적 쉽게 카프카를 적용하지만, 막상 데이터 용량이 증가할수록 검토해야 할 옵션들이 많아지고, 일단 서비스가 시작된 후에 장애가 발생하면 대응에 어려움을 겪는 일이 많습니다.
이 책은 데이터 특성에 맞는 카프카 클러스터를 설계, 구축, 운영하고, 데이터 지연 등의 장애 대응, 데이터 처리 효율화를 수행해온 저자의 경험이 고스란히 녹아 있습니다. 특히 카프카의 기본 동작, 내부 상세 동작, 실무에 필요한 옵션 등도 상세하게 설명되어 있어, 스트리밍 데이터 처리에 관심이 있는 분들은 실습과 함께 차근차근 학습해 나가신다면 현재 업무에 큰 도움이 될 것이라 확신합니다.
- 이관우 / SK텔레콤 클라우드 애플리케이션 그룹장
오늘날 데이터 분석을 위한 기본 요소 또는 컴포넌트로서 카프카는 필수 불가결한 제품이 되었습니다. 하지만 카프카는 대규모의 데이터를 다루는 곳에서 사용되기 때문에 여전히 사용하기가 어렵고 두려운 것도 사실입니다. 이 책은 그동안 저자가 쌓아온 경험을 바탕으로 카프카 자체를 다루기 위해 알아야 할 카프카의 구조와 특성 그리고 필요한 지식들에 대해서 친절한 설명과 풍부한 예제를 통해 설명하기 때문에 좀 더 쉽게 카프카를 사용할 수 있게 도와줍니다. 실 서비스에서 카프카를 운용할 때 반드시 필요한 카프카 시스템의 모니터링, 버전 확인, 업그레이드 방법부터 사용자 권한 제어와 인증까지 자세하게 설명해줍니다. 카프카를 사용하고자 하는 개발자들 그리고 카프카를 운영해야 하는 데브옵스 엔지니어들께 이 책을 추천합니다.
- 공용준 / 카카오 클라우드 플랫폼 기술이사, 『카프카, 데이터 플랫폼의 최강자』 저자
모바일 시대로 전환되면서 때와 장소를 불문하고 인터넷 서비스 이용이 폭발하면서 서버에서 처리해야 하는 요청과 더불어 로그는 기하급수적으로 늘어났다. 사용자에게 빠른 응답을 주기 위해 서버에서 처리해야 하는 대량의 요청에 대한 트랜잭션 시간을 줄여야 하며, 서비스 요구사항에 따라 발생된 대량의 로그는 서비스의 다양한 피처로 즉각 활용될 수 있도록 실시간에 가깝게 처리되어야 한다. 이러한 요구사항을 만족시키기 위한 중요한 솔루션으로 최근 몇 년간 많은 서비스에서 카프카가 사용되어왔다.
카프카의 핵심 철학은 단순하지만, 카프카를 안정적으로 운영하려면 풍부한 경험이 필요하다. 저자 고승범 님은 카카오와 SKT에 재직하면서 대량 트래픽 기반의 서비스를 대상으로 카프카를 직접 운영한 바 있다. 이 책에는 저자가 수년간 카프카를 운영하며 다양한 이슈를 해결하면서 쌓아온 실무 경험을 기반으로 기초부터 실전에 이르는 다양한 내용이 담겨 있다. 카프카를 직접 설치하고 운영해야 하는 운영자에게는 좋은 참고서가, 그리고 운영 중인 카프카를 서비스에 적용하고 싶은 개발자에게는 어떤 상황에서 어떻게 사용하는 것이 좋은지를 다양한 예제와 함께 설명해주는 좋은 가이드가 될 것으로 기대한다.
- 문규원(Marcus) / 크러스트 유니버스(Krust Universe), 개발 팀 시니어 매니저
데이터 플랫폼의 스트림 데브옵스(Stream DevOps)를 위해 반드시 필요한 산업계 표준 기술로 자리잡은 카프카는 간단한 펍/섭(Pub/Sub) 메커니즘, 높은 성능/확장성/운영 안정성 등으로 인해 이미 엔터프라이즈 환경에서 대규모 데이터 연동, 스트림ETL, 서비스 간 통신 채널 등의 역할을 믿음직하게 수행하고 있습니다.
이런 카프카를 잘 다루려면 기본적인 내용부터 충분한 이해가 필요한데, 친절한 성품을 지닌 저자 고승범 님이 쉽고 자세하게 설명하는 이 책이 많은 도움이 되리라 생각합니다. 특히, 저자가 실제 카프카 기반의 대규모 데이터 플랫폼을 직접 운영하며 몸소 체득한 실전 지식과 운영 노하우 등이 고스란히 이 책에 녹아 있습니다. 실무에서 카프카를 운영하시는 분들께 적극 추천합니다.
- 박영근 / SK텔레콤, 클라우드 데이터 플랫폼 팀 리더
데이터가 중요해진 요즘 기업 내부의 데이터 수집, 전달, 보관, 분석을 위한 인프라스트럭처도 관심의 대상으로 떠오르고 있다. 인프라스트럭처를 구성하는 이 모든 구성 요소는 서로 조화롭게 동작해야 하지만 그중에서도 중심을 잡는 요소는 바로 전달을 위한 데이터 파이프라인이다. 특히 그중에서도 분산 이벤트 스트리밍 플랫폼을 목표로 만들어진 카프카는 뛰어난 안정성, 성능, 안전성, 가용성으로 인해 전통적인 엔터프라이즈 메시징 시스템의 대안으로 자리잡아왔다. 하지만 이런 좋은 특성은 저절로 생기지 않으며, 카프카 도입을 위해 평가하는 작업부터 실제 온프레미스나 클라우드에 카프카를 구축하고, 다양한 프로그래밍 언어로 카프카와 연동하는 애플리케이션을 개발하고, 정상 동작을 보장하기 위해 카프카를 24×7로 운영하고, 사용자 기반이 늘어남에 따라 카프카를 확장하는 작업에 이르기까지 전체 수명주기에서 카프카의 제대로 된 활용에 있어 신경써야 할 사항이 상당히 많다. 이런 이유로 인해 카프카가 복잡하다는 평가를 받아 채택이 지연되는 상황을 볼 때마다 안타까운 마음이 들었는데, 이번에 이런 어려움을 해소하기 위한 실무서가 나와서 무척 기쁘다.
이 책은 단순 튜토리얼이나 입문서가 아니라 내부 동작 원리부터 아키텍처 수립과 문제 해결에 이르기까지 이것만은 꼭 알고 넘어가야 마땅한 내용을 압축적으로 담고 있다. 이론적인 내용과 실전적인 내용을 잘 조합한 이 책은 엔터프라이즈 환경에서 운영 경험을 토대로 정성들여 정리한 저자 덕분에 페이지를 넘기면서 점점 더 카프카의 심연으로 깊숙하게 빠져드는 경험을 독자 여러분들께 제공할 것이다. 빅데이터를 다루는 클라우드 환경에서 카프카를 고려하는 모든 분께 이 책을 강력하게 추천한다.
- 박재호 / 『Clean Code 클린 코드』 역자, <컴퓨터 vs 책> 블로그 운영자
베타리더 한마디
MSA, EDA 기반 설계에서 카프카는 핵심 시스템으로 자리 잡았다. 수많은 컨트리뷰터의 노력으로 성숙도가 많이 올라갔고, 다양한 기업에서 활용되며 대용량 메시지 처리에서도 안정성을 입증하고 있다. 저자는 이러한 국내의 카프카 활성화와 다양한 유스 케이스에 많은 기여를 했다. 카프카 한국 사용자 그룹을 운영하고 『카프카, 데이터 플랫폼의 최강자』를 집필해 많은 카프카 입문자에게 기초 이론과 운영 노하우를 알렸다.
이번에 나온 『실전 카프카 개발부터 운영까지』는 새로운 버전의 카프카 전문 서적으로 최신 카프카의 정보를 싣고, 모든 챕터에서 실무에 적용 가능한 예제를 풍부하게 담았다. 또한 알기 쉽게 풀이하여 독자들이 카프카 관련 내용을 온전히 습득할 수 있도록 기술했다. 최근 더욱 높아진 사용자의 눈높이에 맞춰 모니터링, 보안 그리고 스키마 레지스트리, 커넥트 등과 같은 컴포넌트 활용 방법이 구성되어 있으며, 특히 버전 업그레이드, 엔터프라이즈 구성, Q&A 챕터는 저자의 운영 실무 노하우가 담겨 있어 독자의 의문점을 완벽히 해소해줄 것이다.
- 이승하 / 무신사 빌링개발팀
카프카에 대해 공부해보고 싶은 학생, 카프카를 이용해 애플리케이션을 만들려는 개발자, 또는 카프카 클러스터를 운영하는 엔지니어 등 이 책을 손에 쥔 독자층은 매우 다양할 것입니다. 이 책은 여기에 나열된 누구에게나 유익한 책입니다. 학생분들은 카프카가 해결하려는 문제의 본질을 배울 수 있으며, 개발자분들은 프로듀서/컨슈머를 개발하면서 그간 알고 싶었던 궁금증을 해결할 실마리를 찾을 수 있을 테고, 관리자분들은 카프카를 안정적으로 운영하기 위해 필요한 지식을 얻어갈 것이라 확신합니다.
이 책이 더욱 특별했던 점은 저자의 풍부한 카프카 운영 경험에 기반한 정보가 많다는 점입니다. 저자는 실무에서 맞닥뜨릴 법한 상황들을 가정해서 그에 맞는 정보를 과하지도 부족하지도 않게 풀어내는 식으로 내용을 전개합니다. 평소에 그와 같은 문제에 대해 고민해봤던 분들에게는 단비 같은 내용일 것입니다. 제가 그랬듯, 독자 여러분들도 이런 꿀팁을 많이 얻어가시길 바랍니다.
- 남지열 / DPG미디어 머신러닝 엔지니어
실제로 카프카를 구성하는 것은 -이론상- 그리 어려운 일이 아니다. 공식 문서를 따라 주키퍼와 브로커를 구성하고, 인터넷에 떠다니는 예제를 참고해서 컨슈머/프로듀서 애플리케이션을 띄우고 나면 나름의 메시지 파이프라인을 완성할 수 있기 때문이다. 하지만 우리의 카프카를 사용하는 개발자는 여러 요구사항을 쏟아낸다. 가령 "이 메시지는 절대 유실되면 안 돼요!"부터, "메시지를 S3에 넣고 싶은데, 저희가 직접 클라이언트를 개발/운영해야 하나요?"나 "자꾸 이상한 메시지가 유입되어서 클라이언트가 죽어요!" 까지! 게다가 잘 동작하던 카프카 클러스터도 때때로 말썽을 피운다. 이처럼 카프카는 이론과 실전의 차이가 하늘과 땅만큼, 어쩌면 그 이상일 수도 있다.
이 책에는 단단한 이론 사이에 자리한 저자의 실전 운영 경험이 분명하게 녹아 있다. 그렇기에 이 책을 통해 카프카를 시작하는 사람은 카프카 생태계의 지식과 운영에 대한 실마리를 얻을 수 있고, 이미 운영하고 있는 사람에겐 더욱 안정적이고 고도화된 카프카 운영을 위한 발판을 마련해줄 것이다.
- 김대호 / 우아한형제들 클라우드 플랫폼 개발팀
카프카의 설치부터 운영까지의 모든 과정을 담고 있어서 카프카를 처음 접하는 사람이어도 하나씩 실습을 따라해보면 손쉬운 구축과 운영이 가능합니다. 특히 클라우드 환경에서 실습을 제공하여 패러다임 변화에 맞게 빠르게 실무에 적용해볼 수 있다는 점이 좋았습니다. 카프카를 다루는 데 필요한 기본 개념부터, 실무에서 사용하는 다양한 운영 환경 구축까지 많은 실습을 통해 저자 자신이 쌓아온 풍부한 운영 경험과 핵심 기술적 노하우를 책을 통해 독자들과 나누고자 하는 목표가 눈에 띕니다. 카프카를 처음 시작하는 분이거나 전문가가 되고 싶어 하는 분들에게 많은 도움이 될 것입니다.
- 이상진 / 카카오 하둡 엔지니어링 파트
지은이 고승범
현재 SK텔레콤에서 빅데이터 플랫폼의 중추 역할을 하는 카프카 운영 업무를 맡고 있다. 이전에는 카카오에서 전사 공용 카프카와 래빗MQ를 운영했으며 그 경험을 살려서 공동 집필한 『카프카, 데이터 플랫폼의 최강자』(책만, 2018)로 국내 카프카 기술 저변 확대에 일조해왔다. 또한 카프카 한국 사용자 모임(facebook.com/groups/kafka.kru)도 창설하여 카프카 기술을 알리고 지식도 공유하며 각종 온오프라인 세미나를 리딩하고 있다. 국내 최초이자 유일한 컨플루언트 공인 강사 자격(Confluent Certified Trainer)을 비롯해, 컨플루언트 공인 관리자 자격(Confluent Certified Administrator)도 보유하고 있다.
2018년 첫 저술작인 『카프카, 데이터 플랫폼의 최강자』를 출간한 이래 어느덧 만 3년이 지난 2021년 가을 현재, 그때에 비하면 오늘날 카프카는 기업의 부가가치를 높이는 핵심 인프라스트럭처로서 인지도와 위상이 매우 높아졌을 뿐만 아니라, 카프카를 채택한 여러 기업 사례에 대한 소식이 여기저기서 들려오고 있습니다. 그리고 온프레미스뿐만 아니라 클라우드를 이용해 다양한 서비스를 제공하는 많은 기업이 카프카를 도입해 가시적 성과를 보여주고 있습니다. 하지만 카프카 에코시스템에 참여하고 싶은 기업들이 참고할 만한 자료나 도서는 여전히 부족한 것이 현실입니다. 이에 저는 첫 책 출간 이후에 그간 현업에서 쌓아온 다양한 실무 경험을 녹여내고 좀 더 다양해진 기술 양상을 반영할 수 있는 또 한 권의 새로운 카프카 책을 집필함으로써, 카프카를 도입해 최적화하는 과정에서 많은 공과 노력을 쏟는 여러 운영자와 개발자, 아키텍트께 미약하나마 등불을 밝혀주는 소임을 완성하고 싶었습니다.
이 책에서는 전작을 확장하는 개념으로, 카프카의 내부 구조와 동작 원리, 그리고 실제 현업에서 맞닥뜨리는 문제인 설치, 운영, 유지보수, 확장, 안정성 강화, 업그레이드까지 카프카에 대한 거의 모든 것을 정리했습니다. 가장 일선에서 카프카를 도입하고 사용해온 운영자로서 독자 여러분께 드리는 종합선물세트라고 할 수 있습니다. 초보자분들이 『카프카, 데이터 플랫폼의 최강자』 책에서 기초적인 개념을 익히고 나서 이번 『실전 카프카 개발부터 운영까지』 책에서는 좀 더 심도 깊은 운영과 새로운 핵심 요소들을 숙지하신다면, 현업에서 카프카를 운영하는 데 필요한 이론과 실전 노하우를 완벽히 갖추실 수 있으리라 생각합니다. 물론 중급자들이 알아야 할 다양한 팁과 지식도 많이 담고자 노력했습니다. 모쪼록 많은 분이 이 책을 통해 카프카를 좀 더 쉽게 이해하고 효율적으로 잘 활용할 수 있길 바랍니다.
차례
1장 카프카 개요
1.1 잘란도와 트위터의 카프카 도입 사례
__1.1.1 유럽 최대 온라인 패션몰 잘란도의 도전 사례
__1.1.2 SNS 절대 강자 트위터의 카프카 활용 사례
1.2 국내외 카프카 이용 현황
1.3 카프카의 주요 특징
1.4 카프카의 성장
1.5 다양한 카프카의 사용 사례
1.6 정리
2장 카프카 환경 구성
2.1 이 책의 실습 환경 구성
__2.1.1 AWS 환경에서 실습 환경 구성
__2.1.2 온프레미스 환경에서 실습 환경 구성
2.2 카프카 클러스터 구성
2.3 5분 만에 카프카 맛보기
__2.3.1 카프카의 기본 구성
__2.3.2 메시지 보내고 받기
2.4 정리
3장 카프카 기본 개념과 구조
3.1 카프카 기초 다지기
__3.1.1 리플리케이션
__3.1.2 파티션
__3.1.3 세그먼트
3.2 카프카의 핵심 개념
__3.2.1 분산 시스템
__3.2.2 페이지 캐시
__3.2.3 배치 전송 처리
__3.2.4 압축 전송
__3.2.5 토픽, 파티션, 오프셋
__3.2.6 고가용성 보장
__3.2.7 주키퍼의 의존성
3.3 프로듀서의 기본 동작과 예제 맛보기
__3.3.1 프로듀서 디자인
__3.3.2 프로듀서의 주요 옵션
__3.3.3 프로듀서 예제
3.4 컨슈머의 기본 동작과 예제 맛보기
__3.4.1 컨슈머의 기본 동작
__3.4.2 컨슈머의 주요 옵션
__3.4.3 컨슈머 예제
__3.4.4 컨슈머 그룹의 이해
3.5 정리
4장 카프카의 내부 동작 원리와 구현
4.1 카프카 리플리케이션
__4.1.1 리플리케이션 동작 개요
__4.1.2 리더와 팔로워
__4.1.3 복제 유지와 커밋
__4.1.4 리더와 팔로워의 단계별 리플리케이션 동작
__4.1.5 리더에포크와 복구
4.2 컨트롤러
4.3 로그(로그 세그먼트)
__4.3.1 로그 세그먼트 삭제
__4.3.2 로그 세그먼트 컴팩션
4.4 정리
5장 프로듀서의 내부 동작 원리와 구현
5.1 파티셔너
__5.1.1 라운드 로빈 전략
__5.1.2 스티키 파티셔닝 전략
5.2 프로듀서의 배치
5.3 중복 없는 전송
5.4 정확히 한 번 전송
__5.4.1 디자인
__5.4.2 프로듀서 예제 코드
__5.4.3 단계별 동작
__5.4.4 예제 실습
5.5 정리
6장 컨슈머의 내부 동작 원리와 구현
6.1 컨슈머 오프셋 관리
6.2 그룹 코디네이터
6.3 스태틱 멤버십
6.4 컨슈머 파티션 할당 전략
__6.4.1 레인지 파티션 할당 전략
__6.4.2 라운드 로빈 파티션 할당 전략
__6.4.3 스티키 파티션 할당 전략
__6.4.4 협력적 스티키 파티션 할당 전략
6.5 정확히 한 번 컨슈머 동작
6.6 정리
7장 카프카 운영과 모니터링
7.1 안정적인 운영을 위한 주키퍼와 카프카 구성
__7.1.1 주키퍼 구성
__7.1.2 카프카 구성
7.2 모니터링 시스템 구성
__7.2.1 애플리케이션으로서 카프카의 로그 관리와 분석
__7.2.2 JMX를 이용한 카프카 메트릭 모니터링
__7.2.3 카프카 익스포터
7.3 정리
8장 카프카 버전 업그레이드와 확장
8.1 카프카 버전 업그레이드를 위한 준비
8.2 주키퍼 의존성이 있는 카프카 롤링 업그레이드
__8.2.1 최신 버전의 카프카 다운로드와 설정
__8.2.2 브로커 버전 업그레이드
__8.2.3 브로커 설정 변경
__8.2.4 업그레이드 작업 시 주의사항
8.3 카프카의 확장
__8.3.1 브로커 부하 분산
__8.3.2 분산 배치 작업 시 주의사항
8.4 정리
9장 카프카 보안
9.1 카프카 보안의 세 가지 요소
__9.1.1 암호화(SSL)
__9.1.2 인증(SASL)
__9.1.3 권한(ACL)
9.2 SSL을 이용한 카프카 암호화
__9.2.1 브로커 키스토어 생성
__9.2.2 CA 인증서 생성
__9.2.3 트러스트스토어 생성
__9.2.4 인증서 서명
__9.2.5 나머지 브로커에 대한 SSL 구성
__9.2.6 브로커 설정에 SSL 추가
__9.2.7 SSL 기반 메시지 전송
9.3 커버로스(SASL)를 이용한 카프카 인증
__9.3.1 커버로스 구성
__9.3.2 키탭을 이용한 인증
__9.3.3 브로커 커버로스 설정
__9.3.4 클라이언트 커버로스 설정
9.4 ACL을 이용한 카프카 권한 설정
__9.4.1 브로커 권한 설정
__9.4.2 유저별 권한 설정
9.5 정리
10장 스키마 레지스트리
10.1 스키마의 개념과 유용성
10.2 카프카와 스키마 레지스트리
__10.2.1 스키마 레지스트리 개요
__10.2.2 스키마 레지스트리의 에이브로 지원
__10.2.3 스키마 레지스트리 설치
10.3 스키마 레지스트리 실습
__10.3.1 스키마 레지스트리와 클라이언트 동작
__10.3.2 파이썬을 이용한 스키마 레지스트리 활용
10.4 스키마 레지스트리 호환성
__10.4.1 BACKWARD 호환성
__10.4.2 FORWARD 호환성
__10.4.3 FULL 호환성
__10.4.4 스키마 레지스트리 호환성 실습
10.5 정리
11장 카프카 커넥트
11.1 카프카 커넥트의 핵심 개념
11.2 카프카 커넥트의 내부 동작
11.3 단독 모드 카프카 커넥트
__11.3.1 파일 소스 커넥터 실행
__11.3.2 파일 싱크 커넥터 실행
11.4 분산 모드 카프카 커넥트
11.5 커넥터 기반의 미러 메이커 2.0
11.6 정리
12장 엔터프라이즈 카프카 아키텍처 구성 사례
12.1 엔터프라이즈용 카프카 아키텍처의 개요
12.2 엔터프라이즈용 카프카의 환경 구성
12.3 엔터프라이즈용 카프카의 운영 실습
__12.3.1 CMAK를 이용한 토픽 생성
__12.3.2 카프카 커넥트 설정
__12.3.3 모니터링 환경 구성
__12.3.4 메시지 전송과 확인
12.4 정리
13장 카프카의 발전과 미래
13.1 주키퍼 없는 카프카의 미래
__13.1.1 주키퍼 사용에 따른 제약사항
__13.1.2 주키퍼 의존성을 제거한 카프카 업그레이드
13.2 새로운 합의 프로토콜
13.3 최적화된 컨트롤러 노드 구성
13.4 카프카의 미래가 담긴 KIP
13.5 정리
부록 A MSK와 컨플루언트 클라우드
__A.1 MSK
__A.2 컨플루언트 클라우드
__A.3 MSK와 컨플루언트 클라우드 비교
부록 B 앤서블 맛보기
__B.1 앤서블의 특징
__B.2 실습 환경 구성
__B.3 앤서블 기능 살펴보기
부록 C 도커를 이용한 카프카 설치
__C.1 도커 기반의 카프카 구성
__C.2 메시지 보내고 받기
부록 D 한눈에 보는 Q&A
__D.1 주키퍼 관련
__D.2 카프카 관련
__D.3 프로듀서 관련
__D.4 컨슈머 관련
'+ 펴낸 책' 카테고리의 다른 글
자동차 인터페이스 디자인 (0) | 2022.05.17 |
---|---|
이득우의 게임 수학 (0) | 2022.02.07 |
엘라스틱 스택 개발부터 운영까지 (4) | 2021.08.03 |
스프링 부트 실전 활용 마스터 (0) | 2021.05.20 |
한 권으로 읽는 컴퓨터 구조와 프로그래밍 (9) | 2021.03.29 |
댓글