Struttura del corso
Introduzione
- Architettura di sistemi e servizi, PaaS e progettazione nativa del cloud
Panoramica dell'architettura del sistema monolitico
- Esecuzione di un'intera funzionalità di applicazioni monolitiche in un unico processo
- ScalaPossibilità di replica su più server
- Protocolli utilizzati nei sistemi monolitici: EAI, CORBA, ecc.
Panoramica dei servizi Web
- Architettura orientata ai servizi (SOA) e Microservices Architettura
Service-Oriented Architecture (SOA)
- Benefici e costi della SOA
- Successi e fallimenti nell'implementazione della SOA
- Messaggistica ed ESB
- Infrastruttura e strumenti a supporto della SOA
Come Microservices implementare i concetti relativi ai servizi Web
- Fai una cosa e falla bene
- DevOps
- Distribuzione e distribuzione continue (integrazione continua, processo di compilazione continua e così via)
- Protocolli leggeri
Protocolli e standard per microservizi
- HTTP, JMS, AMQP, Websocket, JSON, ecc.
Quadri di sviluppo per l'edilizia Microservices
- Strutture basate su Java (Spring Cloud)
- Framework basati su JavaScript (Seneca)
Scomposizione di un'applicazione monolite
- Sviluppo di applicazioni distribuibili in modo indipendente
- Organizzazione delle applicazioni di microservizi in base alle funzionalità aziendali
- Case study: Migrazione di un'applicazione monolitica a tre microservizi core
Impostazione di un Spring Cloud ambiente di sviluppo
- Impostazione di Docker e Docker Compose
- Impostazione delle variabili d'ambiente
Panoramica di Spring Cloud e Spring Boot
- Spring Cloud sottoprogetti: Config Server & Bus, Eureka, Ribbon, Feign e Hystrix
- Stivale primaverile
Creazione di un'applicazione Spring Boot
Gestione centralizzata della configurazione con versione con Spring Cloud Config
Aggiornamenti dinamici della configurazione con Spring Cloud Bus
Individuazione dei servizi con Eureka
Bilanciamento del carico con la barra multifunzione
Applicazione di interruttori automatici con Hystrix
Client REST dichiarativi con Feign
Utilizzo di API Gateway
Protezione di un'applicazione di microservizi
Traccia dei microservizi per scoprire le latenze
Distribuzione Microservices
- Contenitori (Docker, K8N, LXC, ecc...)
- Gestione della configurazione (Ansible, ecc...)
- Individuazione dei servizi
- Monitoraggio e gestione Microservices
- Infrastruttura per Microservices
Cloud e Auto Scalacapacità dei microservizi
- Ridondanza e failover dei microservizi
- Scalabilità delle prestazioni per i microservizi
- Scalabilità automatica
- Implementazione di microservizi su OpenStack, AWS e altre piattaforme cloud
Risoluzione dei problemi comuni relativi alle applicazioni distribuite
- Complessità dell'ecosistema
- Prestazioni di rete
- Sicurezza
- Spiegamento
- Collaudo
- Nano-servizi
Considerazioni finali per la creazione di sistemi pronti per la produzione
- Rendere il sistema facile per i principianti
- Rendere il sistema completo in modo che possa fungere da base per le applicazioni aziendali
Riassunto e conclusione
Requisiti
- Comprensione dell'ingegneria del software e dei sistemi
- Esperienza di sviluppo Java
- Esperienza con Spring Framework
Pubblico
- Java Sviluppatori che desiderano creare e distribuire rapidamente microservizi
- Architetti di sistema che desiderano implementare un'architettura a microservizi