Titolo del modulo: dgt_sre08 – Sistemi distribuiti e protocolli di consenso
Descrizione:
“Sistemi distribuiti e protocolli di consenso” dgt_sre08 è un modulo sui sistemi distribuiti, rivolto a Site Reliability Engineer (SRE). Il modulo esamina i meccanismi che garantiscono affidabilità, coerenza e tolleranza ai guasti in questi sistemi, con al centro i protocolli di consenso.
Panoramica:
I sistemi distribuiti vengono usati per supportare applicazioni su larga scala con alta disponibilità e resilienza. Capire come questi sistemi raggiungono il consenso è cruciale per qualsiasi SRE incaricato di mantenerne stabilità e prestazioni. Il modulo esplora le basi teoriche e le implementazioni pratiche degli algoritmi di consenso che costituiscono l’ossatura di molti servizi distribuiti moderni.
La teoria qui è sostanziosa, ed è ciò che rende possibile la pratica. Nei laboratori chiedete alla macchina, in linguaggio naturale, di avviare un cluster etcd o Vault a tre nodi e poi di isolare il leader o arrestare un nodo; lei esegue l’operazione e riporta lo stato dei membri e i log, e voi usate ciò che sapete su term, elezioni e quorum per prevedere cosa dovrebbe accadere, verificare che sia accaduto e cogliere in fallo la macchina quando interpreta male lo stato del cluster.
Obiettivi del modulo:
-
Comprendere i sistemi distribuiti: studiare i principi e delle sfide legate alla progettazione e alla gestione dei sistemi distribuiti.
-
Esplorare i protocolli di consenso: conoscere i diversi protocolli di consenso, concentrandosi sul loro ruolo nel raggiungere un accordo tra nodi distribuiti nonostante guasti e partizioni di rete.
-
Esaminare il protocollo RAFT: studiare l’algoritmo di consenso RAFT, analizzandone il design e osservandone il comportamento in sistemi reali come etcd e HashiCorp Vault attraverso esperimenti che guidate in linguaggio naturale.
Argomenti principali:
- Introduzione ai sistemi distribuiti:
- Concetti fondamentali del calcolo distribuito
-
Sfide nella costruzione di sistemi distribuiti affidabili
-
Il consenso nei sistemi distribuiti:
- Importanza dei protocolli di consenso per mantenere la coerenza
-
Il teorema CAP e le sue implicazioni
-
L’algoritmo di consenso RAFT:
- Esame dettagliato dei principi di design di RAFT
- Confronto con altri algoritmi di consenso come Paxos
-
Approfondimenti pratici su come RAFT è implementato in etcd e Vault
-
Casi di studio e applicazioni:
- Analisi approfondita dell’uso di RAFT da parte di etcd per lo storage chiave-valore in Kubernetes
-
Comprendere l’implementazione di RAFT in HashiCorp Vault per la gestione sicura dei secret
-
Best practice e sfide:
- Strategie per distribuire e mantenere sistemi distribuiti basati su protocolli di consenso, e come specificarle alla macchina
- Gestire sfide comuni come partizioni di rete e guasti dei nodi simulandoli tramite istruzioni in linguaggio naturale e verificando il ripristino del cluster
A chi è rivolto:
Il modulo è rivolto a SRE, architetti di sistema, software engineer e professionisti IT che lavorano con sistemi distribuiti e devono comprendere il ruolo che gli algoritmi di consenso hanno nella loro affidabilità. È adatto sia a chi affronta questi concetti per la prima volta sia a chi ha già esperienza.
Risultati del modulo:
Al termine del modulo, i partecipanti avranno:
- Una comprensione approfondita di come operano i protocolli di consenso nei sistemi distribuiti
- Esperienza pratica nel guidare in linguaggio naturale la gestione e il troubleshooting di sistemi basati su RAFT come etcd e Vault, e nel verificare la diagnosi della macchina
- La capacità di progettare e gestire sistemi distribuiti altamente affidabili
Gli studenti possono caricare le proprie esercitazioni nel Progetto Git dell’Academy DevOps & SRE. Per questo modulo, create una cartella con il vostro username come nome nella seguente sottocartella: https://github.com/Garanti-Del-Talento/gdt_academy
