Struttura del corso
Introduzione ai sistemi distribuiti
- Cos’è un sistema distribuito?
- Sfide comuni: latenza, coerenza, disponibilità
- Panoramica sui componenti del sistema e sui modelli di comunicazione
Principi della scalabilità
- Scalabilità verticale vs. orizzontale
- Bilanciamento del carico ed elasticità dei sistemi
- Scalare archiviazione, calcolo e operazioni di I/O
Pattern architetturali
- Architetture client-server e a più livelli
- Architetture orientate ai servizi e basate su microservizi
- Architettura basata sugli eventi e code di messaggi<\/li>
Il teorema CAP e i modelli di coerenza
- Spiegazione del teorema CAP
- Coerenza forte vs. coerenza eventuale
- Scegliere tra coerenza e disponibilità
Distribuzione dei dati e strategie di archiviazione
- Partizionamento e sharding dei dati
- Strategie di replicazione e operazioni di lettura/scrittura basate su quorum
- Database distribuiti e archivi key-value
Comunicazione e coordinamento nei sistemi distribuiti
- REST, gRPC, broker di messaggi (ad esempio Kafka, RabbitMQ)
- Elezione del leader e meccanismi di consenso distribuito
- Utilizzo di Zookeeper o etcd per il coordinamento tra nodi
Tolleranza ai guasti e affidabilità dei sistemi
- Progettazione volta a gestire i guasti e garantire una degradazione controllata delle prestazioni
- Mechanismi di ritry, timeout e interruttori a circuito
- Monitoraggio, osservabilità e ingegneria del caos
Pratiche moderne e native per l’ambiente cloud
- Contenitori, orchestrazione e Kubernetes
- Senza stato e immutabilità dei componenti software
- Best practice per la sicurezza nei sistemi distribuiti
Sintesi finale e prossimi passi
Requisiti
- Conoscenza di base dei concetti legati alle reti e alla progettazione di sistemi
- Esperienza con le pratiche generali dello sviluppo software
- La familiarità con il cloud computing e la progettazione di API risulta utile
Pubblico di riferimento
- Architetti del software e responsabili tecnici
- Ingegneri backend e professionisti DevOps
- Progettisti di sistemi impegnati nella realizzazione di applicazioni cloud scalabili
Recensioni (3)
Progetto predisposto, su cui si potesse lavorare fin dall'inizio, senza perdere tempo a configurare file non necessari per le esercitazioni. Disponibilità a rispondere a tutte le domande sollevate dai partecipanti.
Robert Walczak - Hitachi Energy
Corso - Systems Modeling with SysML and Enterprise Architect (EA)
Traduzione automatica
L'instruttore aggiorna il corso in base alle aspettative dei partecipanti
Alexandru
Corso - Software Architecture in Cloud
Traduzione automatica
Esercitati con gli esercizi in EA.
Pawel - Krajowa Szkola Skarbowosci
Corso - UML in Enterprise Architect (workshops)
Traduzione automatica