Architetture a Microservizi con Spring Cloud, Kafka e Docker
Il corso è destinato a programmatori Java 8 i quali desiderano comprendere nuovi paradigmi architetturali legati ai microservizi. Sarà presentato l’uso del framework Spring 5 con Spring Cloud, le architetture base per i microservizi, e l’uso dei container Docker per l’utilizzo in ambienti cloud. Il corso presenta anche architetture EDA (Event Driven Architecture) basate su Kafka per l’implementazione di sistemi reattivi a push di eventi.
Giorno 1: Creazione di Microservices in Container
Introduzione: cosa sono i microservizi e perché si sposano con il cloud. Presentazione di Spring Boot e Spring Cloud. Progettazione di una architettura a microservizi: quando utilizzarla e quanto evitarla. Costruzione di un microservizio con Spring Boot e Java. Aspetti di gestione dei microservizi in ambito DevOps.
Presentazione di Docker. Utilizzo della linea di comando di Docker: pull di una immagine da docker registry. Creazione e gestione di un container. Creazione di nuove immagini. Ricetta per la creazione di app Spring Boot dockerizzate. Push su docker registry e integrazione con maven.
Giorno 2: Gestione di Architetture a Microservizi
Configuration Server e Service Discovery. Configurazione di servizi con Eureka.
Architetture con resilienza: Load Balancing con Ribbon; Circuit Breaker con Hystrix. Log aggregation con Sleuth e Zipkin.
Giorno 3: Event Driven Architectures e Sistemi Push con Kafka
Introduzione a Kafka: casi d’uso e utilizzi di Kafka. Architettura di alto livello e Zookeeper. Terminologia base di Kafka e funzionamento dei Topic. Realizzazione e configurazione di un Producer. Realizzazione e configurazione di un Consumer.
Caratteristiche e casi d’uso di architetture EDA. Integrazione di Kafka con Spring Cloud Stream. Scrittura di un Producer e Consumer. Esempio di distributed caching (Redis, Oracle Coherence).