dgt_sre08 – Sistemi distribuiti e protocolli di consenso

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:

  1. Introduzione ai sistemi distribuiti:
  2. Concetti fondamentali del calcolo distribuito
  3. Sfide nella costruzione di sistemi distribuiti affidabili

  4. Il consenso nei sistemi distribuiti:

  5. Importanza dei protocolli di consenso per mantenere la coerenza
  6. Il teorema CAP e le sue implicazioni

  7. L’algoritmo di consenso RAFT:

  8. Esame dettagliato dei principi di design di RAFT
  9. Confronto con altri algoritmi di consenso come Paxos
  10. Approfondimenti pratici su come RAFT è implementato in etcd e Vault

  11. Casi di studio e applicazioni:

  12. Analisi approfondita dell’uso di RAFT da parte di etcd per lo storage chiave-valore in Kubernetes
  13. Comprendere l’implementazione di RAFT in HashiCorp Vault per la gestione sicura dei secret

  14. Best practice e sfide:

  15. Strategie per distribuire e mantenere sistemi distribuiti basati su protocolli di consenso, e come specificarle alla macchina
  16. 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