Kubernetes ed i problemi di un progetto gigante: una lista di duemila TODO

La vertiginosa evoluzione di Kubernetes porta con se oltre che innovazioni costanti anche qualche problema. È infatti impensabile avere cicli di release così serrati, con una minor-release ogni tre mesi, senza dover rinunciare a qualcosa in termini di qualità. Il bilanciamento perfetto non può esistere.

Ne sanno qualcosa i ragazzi di AirBnb che nel corso dell’ultima Kubecon hanno descritto la loro esperienza in merito alla risoluzione di alcuni problemi di performance, molto specifici, relativi ad alcuni Pod dei loro deployment. La cosa interessante è vedere come, alla fine, oltre alle specifiche configurazioni sia stata necessaria anche una patch.

Il caso è rilevante per presentare quanto riassunto nel titolo di questo articolo: quanto impatta il costante incremento del codice alla base di Kubernetes sulla qualità generale delle cose, sposato alla velocità di evoluzione di cui si parlava in apertura?

Una domanda a cui i ragazzi di medium.com hanno cercato di rispondere, realizzando un progetto che conta i TODO (ossia i technical debt, le cose in sospeso, il “cosa rimane da fare”) del progetto.

A livello intorduttivo sono molto interessanti i numeri citati in apertura relativi al codice attuale di Kubernetes, che danno la dimensione del progetto.

  • Più di 86 mila commit.
  • Più di 2 mila contributor.
  • Più di 2 mila open issue.
  • Più di mille Pull Request aperte.
  • Più di 61 mila star (ossia like).
  • Il software scc, utilizzato per i conteggi del codice, per il progetto racconta di più di 4,3 milioni di linee di codice go (su più di 5,2M totali) e più di 3 milioni di linee di codice effettivo contro 700 mila linee di commenti.

Insomma, se ci fossero dubbi, i numeri sono quelli di un grande progetto. Ma la parte interessante arriva con l’analisi dei cosiddetti TODO:

  • Ci sono 2.380 TODO totali distribuiti su 1.230 file suddivisi in 363 autori
  • 460 TODO sono assegnati a qualcuno
  • 489 TODO sono stati aggiunti nel 2019
  • La media dell’età dei TODO è di 860 days (or 2,3 anni)

Di nuovo, numeri da progetto importante, ed il dato che fa riflettere è relativo ai TODO aggiunti nell’ultimo anno, comparato a quello dei precedenti:

  • 34 nel 2014
  • 249 nel 2015
  • 523 nel 2016
  • 650 nel 2017
  • 435 nel 2018
  • 489 nel 2019

Dall’esplosione successiva al 2014 quindi, la crescita è attestata ogni anno su una media di TODO parecchio alta e, al momento, in crescita.

In conclusione, cosa raccontano questi numeri? Certamente che Kubernetes è un progetto enorme, e che, altrettanto certamente, per i coordinatori del progetto la prossima sfida sarà sicuramente fare in modo che il numero costante ed elevato di TODO non vada ad inficiare la qualità del prodotto.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

Tags: , , ,