Kafka Confluent
Descrizione
Obiettivo del corso è integrare Confluent KSQL per trasformare, arricchire, filtrare e aggregare flussi di dati in tempo reale utilizzando un linguaggio simile a SQL. Usare la libreria Apache Kafka Streams per creare applicazioni di streaming. Testare, monitorare, proteggere e ridimensionare queste applicazioni di streaming.
Target
Architect, Sistemisti e Sviluppatori Java
Prerequisiti
- Designer Architetturali: conoscenze base sullo stream processing
 - Sistemisti: conoscenza di ambienti Linux
 - Sviluppatori: conoscenza del linguaggio Java
 
Programma Corso
Modulo 1: Introduzione all’ecosistema software Kafka
- Il mondo Apache
 - Concetti Base della Messagistica
 - Principali modelli di Messagistica
 - Protocolli
 - Apache Kafka
 - Architetture Distribuite
 - Evoluzione delle Architetture SOA
 - Evoluzione delle Architetture SOA a microservizi
 - Kafka e SOA
 - Kafka con SOA
 - Kafka con SOA a Microservizi
 - Considerazioni Generali
 - Kafka & Architetture Software in Cloud
 - Kafka & Hadoop
 - Campi di applicazione
 - Metriche
 - Logs
 - IoT
 - Stream
 - Varie
 - Conclusioni su Kafka e Architetture Distribuite
 
Modulo 2: Architettura di Kafka, Installazione, Configurazione e Tuning
- Installazione Ambiente di sviluppo
 - Installazione di Zookepeer
 - Installazione di Kafka
 - Installazione di altri moduli Confluent
 - Configurazione Java
 - IDE di sviluppo Java
 - Kafka’s Command Line Tools
 - Publish/Subscribe Messaging e Streaming
 - Apache Kafka APIs, configuration and metrics
 - Kafka Message & Message metadata
 - Mssage “key selection” (scelte e fattori)
 - Message schema management
 - Struttura Kafka:
 - Topics, Partitions e Segments
 - Log Replication & Log Compaction
 - Consumers e Producers
 - Consumer Groups
 - Brokers & Cluster
 - Zookeeper
 - Ruolo di Zookeeper e dei metadati
 - Cluster Zookeeper
 - Approfondimenti
 - Disk-Based Retention
 - Scalabilità
 - Alte performance
 - Security
 - CPU, RAM, network, storage considerations
 - Business Continuity / DR
 - Data retention
 - Managing, configuring, e optimizing un cluster in funzione delle performance
 - Startup sequence; component dependencies
 - How many partitions? Tradeoffs
 - Scalability factors
 - Sources and tools for monitoring; Display of metrics
 - InSyncReplicas (ISR); Fully and Under replicated, and offline
 - Consumer lag, Under/Over Consumption
 - Broker failure, detection, and recovery
 - Batching and its impacts/consequences
 - Determining and solving data imbalance across brokers
 - Impacts of average and maximum message sizes
 - Quotas
 - Tuning
 
Modulo 3: Sviluppare Su Kafka
- Accedere a Kafka a livello di codice
 - Le APIs Kafka
 - Sviluppare un Producer
 - Sviluppo di un Producer
 - Configurazione e ottimizzazione del Producer
 - Sviluppare un Consumer
 - Sviluppo di un Consumer
 - Configurazione e ottimizzazione del Consumer
 - Sviluppo Avanzato
 - Dimensioni e durata dei messaggi
 - Abilitazione di Exactly Once Semantics (EOS)
 - Uso degli offset
 - Specificare gli Offsets
 - Committare manualmente gli Offsets
 - Consumer Liveness & Rebalancing
 - Schema Management In Kafka
 - Data Serialization
 - Introduzione ad Avro e agli Gli Avro Records
 - Avro Schemas & Schema Evolution
 - Usare lo Schema Registry
 - Tuning
 
Modulo 4: Kafka Connect e Kafka Streams
- Definire Data Pipelines con Kafka Connect
 - Kafka Connect
 - Tipi di Connectors
 - Kafka Connect Implementation
 - Standalone & Distributed Modes
 - Configurazione dei Connectors
 - Sviluppare con Kafka Streams
 - Kafka Streams API
 - Kafka Streams Concepts
 - Creare una Kafka Streams Application
 - Kafka Streams by Example
 - Managing Kafka Streams Processing
 - Sviluppare con con Confluent KSQL
 - KSQL for Apache Kafka
 - Scrivere KSQL Queries
 - Aspetti Avanzati:
 - Risoluzione problemi del Client
 - Debugging
 - Ordine dei messaggi e garanzie di consegna
 - Serialization/Deserialization
 - Producer partition selection
 - Consumer offset management
 - Consumer Groups, partition assignments, partition rebalances
 - Data retention strategies and implications
 - Topic co-partitioning
 
Modulo 5: LAB: Esercitazioni.
- Esercitazione in aula.