Продвинутый Apache Kafka
На курсе вы освоите тонкую настройку продюсеров и консьюмеров, реализацию транзакций и Exactly-Once семантики, а также научитесь интегрировать Kafka с внешними системами, обеспечивать безопасность и строить эффективные архитектуры в Kubernetes с учётом современных лицензионных ограничений
от 42 600₽
Для физ. лиц - 42 600₽
Для организаций - 49 200₽
Ближайшая группа
14.09.2026-18.09.2026
Формат
Гибридный
Длительность
40 часов
Часы занятий
10:00–17:00
Целевая аудитория
Middle+/Senior разработчики
Data Engineers
Архитекторы распределённых систем
DevOps/SRE-инженеры
Необходимая предварительная подготовка
- Понимание базовых концепций Kafka (топики, партиции, consumer groups)
- Уверенные навыки работы в Linux и Docker/Kubernetes
- Опыт написания кода на Java, Python или Go
- Понимание основ распределенных систем и сетевых протоколов
от 42 600₽
Для физ. лиц - 42 600₽
Для организаций - 49 200₽
Программа курса
- Эволюция метаданных: KRaft vs ZooKeeper. Миграция production-кластеров, откат, мониторинг
- Физическое хранение: сегменты, индексы, page cache, zero-copy (sendfile), mmap
- Репликация: ISR, min.insync.replicas, unclean.leader.election.enable, quorum-based replication в KRaft
- Политики хранения: Retention vs Compaction, cleanup.policy, delete.retention.ms
- Лабораторная работа: Развёртывание KRaft-кластера (3 брокера + 3 контроллера). Эмуляция сбоев, анализ переизбрания лидеров, исследование логов через kafka-dump-log
- Producer: буферизация (buffer.memory), батчинг (batch.size, linger.ms), сжатие (compression.type — LZ4 vs Zstd), идемпотентность.
- Consumer: fetch.min.bytes, fetch.max.wait.ms, max.poll.records, max.poll.interval.ms.
- Перебалансировка: статические группы (Group Instance ID), CooperativeStickyAssignor для zero-downtime rebalance.
- Паттерны отказоустойчивости: Dead Letter Queues (DLQ), Retry-топики с экспоненциальным backoff
- Лабораторная работа: Стресс-тестирование (kafka-producer-perf-test). Настройка DLQ и retry-механизмов. Сравнение throughput при разных compression.type.
- Идемпотентность продюсера: enable.idempotence, max.in.flight.requests.per.connection
- Транзакционный API: initTransactions, beginTransaction, commitTransaction, обработка ProducerFencedException
- Read-Process-Write паттерн для потоковой обработки
- level: read_uncommitted vs read_committed, aborted transactions
- Лабораторная работа: Реализация транзакционного переноса данных между топиками. Эмуляция сбоя на этапе commit, анализ поведения потребителей
- Бинарная сериализация: Avro vs Protobuf vs JSON Schema. Сравнение, генерация классов
- Schema Registry: архитектура, режимы хранения (in-memory, JDBC, S3), интеграция с клиентами
- Стратегии совместимости: BACKWARD, FORWARD, FULL и транзитивные версии. Best practices
- Альтернативы Confluent Schema Registry: Apicurio Registry (Red Hat, Apache 2.0), Karapace (Aiven)
- Лабораторная работа: Настройка Apicurio Registry. Реализация безопасного изменения схемы (удаление/добавление полей) без остановки продюсеров и консьюмеров
- Kafka Streams: StateStore, RocksDB, Topology (DAG), KStream vs KTable
- Оконныеагрегации: Tumbling, Hopping, Session Windows, Grace period
- Processor API и Punctuators для сложной бизнес-логики
- ksqlDB: потоки и таблицы, непрерывные запросы, Pull-запросы, материализованные представления
- Лабораторная работа: Создание приложения для обнаружения аномалий (фрод-мониторинг) с использованием Session Windows и локального StateStore
- Kafka Connect: распределённый режим, offset management, REST API, error handling
- Single Message Transformations (SMT) для трансформации «на лету»
- Change Data Capture (CDC): Debezium (PostgreSQL, MySQL, Oracle), архитектура, snapshotting
- Интеграцияс Big Data: Apache Spark Structured Streaming, Apache Flink, ClickHouse
- Лабораторная работа: Настройка CDC-конвейера: Debezium (PostgreSQL) — Kafka Connect — Avro -Sink-коннекторв
- Шифрование трафика: SSL/TLS, взаимная аутентификация (mTLS)
- Аутентификация: SASL/SCRAM, SASL/PLAIN, OAuth2 / OAUTHBEARER (интеграция с Keycloak)
- Авторизация: ACL (Access Control Lists), интеграция с Open Policy Agent (OPA) для гибкого RBAC
- Мультиарендность: квоты на throughput и request rate, изоляция топиков.
- Лабораторная работа: Настройка mTLS и SASL/OAuth Разграничение прав доступа для различных команд разработки через OPA
- JMX-метрики: Under Replicated Partitions, Active Controller, Request Latency, Consumer Lag
- Стек мониторинга: Prometheus (JMX Exporter) + Grafana, настройка алертов
- Автоматизация: Cruise Control для автоматического ребалансинга партиций и self-healing
- Tiered Storage:
- Зачем нужен: разделение hot/warm/cold данных, экономия до 70% стоимости хранения
- Архитектура RemoteLogStorage: интерфейс RemoteStorageManager, жизненный цикл сегментов
- Выбор backend (с учётом лицензий):
- SeaweedFS (Apache 2.0) — основная open-source альтернатива
- Ceph RGW (LGPL 2.1) — для зрелых инфраструктур
- Облачные S3 — Yandex Object Storage, AWS S3, VK Cloud S3
- LocalStack (Apache 2.0) — для локальной разработки
- Настройка Kafka + SeaweedFS: remote.log.storage.system.enable, параметры кэширования
- Производительность: влияние на latency при чтении cold-данных, prefetch-стратегии.
- Лабораторная работа: Развернуть SeaweedFS-кластер в Docker Compose. Подключить к Kafka как RemoteLogStorage. Залить большой объём данных, дождаться tiering, проверить через weed shell и s3 ls. Сравнить latency чтения hot и cold сегментов
- Оператор Strimzi: развертывание Kafka в K8s, StatefulSets, Persistent Volumes, внешние слушатели
- Альтернативы Confluent Platform:
- Redpanda — C++-реализация, совместимость с Kafka API, BSL-лицензия
- WarpStream — S3-native, BYOC (Bring Your Own Cloud), agent-based архитектура
- AutoMQ — cloud-native Kafka на S3, разделение compute/storage
- Чистый Apache Kafka upstream — без зависимости от вендора
- Российские реалии:
- Yandex Managed Kafka, VK Cloud Managed Kafka
- Arenadata Kafka (на базе Greenplum-экосистемы)
- Локальные облака (Yandex Cloud, SberCloud, MTS Cloud)
- Лабораторная работа: Развертывание Kafka-кластера в K8s с помощью Strimzi. Настройка внешних слушателей и интеграция с Prometheus/Grafana
- Лицензионный ландшафт 2024–2026:
- Почему MinIO перешёл на AGPLv3 (апрель 2021) и что это значит для Enterprise
- Confluent Community License vs Apache 2.0
- Elastic (SSPL), HashiCorp (BSL) — уроки для индустрии
- Анализ лицензий компонентов стриминговой платформы
- Матрица выбора стека:
- Бюджетный open-source: Kafka + SeaweedFS + Apicurio + Strimzi
- Enterprise с поддержкой: Confluent Platform, Redpanda
- Cloud-native: WarpStream, AutoMQ
- Российский стек: Yandex Managed Kafka + Yandex Object Storage
- Юридические риски:
- AGPLv3: требование раскрытия исходников при модификации и SaaS-использовании
- BSL: ограничения для коммерческих вендоров
- Confluent Community License: запрет на использование в конкурирующих сервисах
- Best practices:
- Проведение license audit перед внедрением
- Использование SBOM (Software Bill of Materials)
- Мониторинг изменений лицензий (GitHub, mailing lists)
- Лабораторная работа: Анализ гипотетического Enterprise-кейса. Выбор стека компонентов с учётом лицензионных ограничений, бюджетов и требований к поддержке. Защита архитектурного решения
Требования:
- Развернуть отказоустойчивый KRaft-кластер в Kubernetes (Strimzi) с mTLS и OAuth2
- Организовать CDC из PostgreSQL в Kafka (Debezium) с использованием Apicurio Registry (вместо Confluent)
- Реализовать потоковую агрегацию в Kafka Streams с использованием окон и StateStore
- Настроить Tiered Storage с SeaweedFS для выноса cold-данных
- Выгрузить результаты в ClickHouse через Kafka Connect
- Настроить комплексный мониторинг (Prometheus + Grafana) и алертинг
- Обосновать выбор всех компонентов с точки зрения лицензионной совместимости и TCO (Total Cost of Ownership)
Стоимость и условия оплаты
от 42 600₽
Для физ. лиц - 42 600₽
Для организаций - 49 200₽