Non fissarsi su un unico argomento fin da subito. Fare una presentazione i primi di Marzo con i risultati
Processo di Ricerca:
• Studia approfonditamente la documentazione ufficiale di Kubernetes, focalizzandoti sull’architettura del cluster, in particolare su etcd, il datastore predefinito di Kubernetes che utilizza il consenso Raft per garantire la coerenza dei dati. (https://kubernetes.io/blog/2019/08/30/announcing-etcd-3-4/)
• Esamina articoli accademici e white paper sui protocolli di consenso nei sistemi distribuiti, con particolare attenzione agli algoritmi di quorum e alle loro implementazioni.
• Analizza studi precedenti che hanno tentato di modificare o ottimizzare gli algoritmi di consenso in ambienti distribuiti.
• Implementazione di Kafka PacificA (più veloce di raft) → https://kafka.apache.org/documentation/#design_replicatedlog
• Approfondisci il funzionamento dell’algoritmo di consenso Raft utilizzato da etcd, comprendendo come gestisce il quorum e garantisce la coerenza dei dati nel cluster.
• Identifica le limitazioni o le sfide dell’algoritmo attuale nel contesto di cluster distribuiti geograficamente.
• Il problema principale è la mancanza di consenso nel caso di un outage di più della metà dei nodi controller (facile accada con sistemi su più cluster).
• Raft è lento ed esponenzialmente più lento all’aumentare dei nodi.
• Sviluppa un algoritmo di quorum alternativo o modifica l’esistente per migliorare le prestazioni e la coerenza in cluster distribuiti.
• Assicurati che l’algoritmo proposto mantenga le proprietà fondamentali di sicurezza e liveness richieste da Kubernetes.
• Implementa l’algoritmo proposto utilizzando Go, il linguaggio in cui è scritto Kubernetes.
• Integra l’algoritmo modificato in una versione di etcd o direttamente nel componente rilevante di Kubernetes.
• Configura ambienti di test con cluster distribuiti geograficamente per valutare le prestazioni dell’algoritmo modificato.
• Confronta i risultati con l’algoritmo di quorum originale, analizzando metriche come latenza, throughput e tolleranza ai guasti.
• Redigi una documentazione dettagliata del processo di progettazione, implementazione e valutazione.
• Discerni le implicazioni delle tue modifiche e suggerisci possibili direzioni per ricerche future.
Pro:
• Contributo Innovativo: Modificare l’algoritmo di quorum in Kubernetes per unificare cluster distribuiti potrebbe portare a miglioramenti significativi nella gestione dei cluster su larga scala e geograficamente dispersi.
• Apprendimento Approfondito: Questo progetto offre l’opportunità di acquisire una comprensione profonda dei sistemi distribuiti, dei protocolli di consenso e dell’architettura di Kubernetes.
• Rilevanza Pratica: I risultati potrebbero avere applicazioni pratiche nel migliorare la resilienza e l’efficienza dei cluster Kubernetes in ambienti reali.
Contro:
• Complessità Elevata: L’argomento è altamente complesso e richiede una solida comprensione dei sistemi distribuiti e della programmazione in Go.
• Rischio di Integrazione: Modificare componenti critici come l’algoritmo di quorum potrebbe introdurre instabilità o problemi di compatibilità nel cluster.
Il CCM fa da adapter tra tutti i provider al protocollo C4
Esempio CCM: https://github.com/digitalocean/digitalocean-cloud-controller-manager?tab=readme-ov-file
Processo di Ricerca: