Reading Time: 3 minutes

Premessa

Ci tengo a ringraziare l’azienda per avermi coinvolto e portato al FOSDEM 2024. E’ stato davvero stimolante accedere a così tante informazioni e ho avuto il piacere di confrontarmi con colleghi, tecnici di alto livello e professori universitari.

Ho raccolto tantissimo materiale di studio: siti web, webapp ed intere librerie di pdf da cui posso attingere, spaziando dallo studio dei sistemi operativi, linguaggi di programmazione, tecniche di automation e migrazione dei dati.

Di seguito lascio un breve riassunto delle nozioni che mi sono rimaste maggiormente impresse.

Django migrations

Questo tema e corso, mi ha lasciato qualcosa di utile per il mio lavoro di tutti i giorni. Specialmente lo speech trattato da Denny Biasiolli. In poco tempo è riuscito a spiegare in modo semplice e lineare come effettuare al meglio migrazioni Django, dando anche prove pratiche.

Questo è il suo riferimento alla documentazione ufficiale: https://docs.djangoproject.com/en/4.2/topics/migrations/#the-commands

In breve ha chiarito il processo di esecuzione, che si articola in diversi passaggi:

Creazione di un nuovo modello:

# main/models.py
from django.contrib.auth import get_user_model
from django.db import models
class Tweet(models.Model):
created_by = models.ForeignKey(
get_user_model(), on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
text = models.CharField(max_length=140)

Creare una migrazione:

$ manage.py makemigrations
Migrations for 'main':
main/migrations/0001_initial.py
- Create model Tweet

Analizzare quello che è stato fatto ed infine aggiornare il database:

manage.py migrate [app_label] [migration_name]

 

Molto utili le osservazioni su una rollback:

$ manage.py migrate admin zero
Operations to perform:
Unapply all migrations: admin
Running migrations:
Rendering model states... DONE
Unapplying admin.0003_logentry_add_action_flag_choices... OK
Unapplying admin.0002_logentry_remove_auto_add... OK
Unapplying admin.0001_initial... OK 

 

Ed il controllo delle migrazioni effettuate:

$ manage.py showmigrations main
main
[X] 0001_initial

Sicuramente uno degli appuntamenti che mi hanno interessato di più considerando che sto toccando con mano l’argomento, e in futuro potrei approfondirlo ulteriormente.

CI/CD ed osservabilità

Una pipeline CI/CD affidabile è la spina dorsale di ogni progetto moderno: la visibilità sui suoi processi è limitata e spesso richiede la revisione e l’analisi manuale degli output di compilazione. Ho scoperto che sfruttando OpenTelemetry è possibile ottenere un’osservabilità delle pipeline, rendendo il processo di distribuzione del software completamente osservabile.

In altri speech si è toccato argomenti di standardizzazione della pipeline, in particolare:

  • il ruolo centrale delle pratiche standardizzate nelle pipeline CI/CD
  • come viene definita un’architettura della pipeline solida e configurazioni standardizzate
  • come migliorare la flessibilità dei team e sfruttare i propri strumenti preferiti senza compromettere la pipeline di sviluppo.

Alcuni degli strumenti trattati sono stati Argo, Flux, Spinnaker e Backstage che conoscevo ma in modo generico. Riuscire ad analizzarli e osservare dei test è stato sicuramente istruttivo.

Sono rimasto in parte deluso dal fatto che è stato toccato spesso il tema GitHub ma mai lato GitLab, per lo meno negli speech che sono riuscito a seguire. Sinceramente mi aspettavo che nel tema CI/CD fosse uno strumento molto più presente.

Conclusioni

Partecipare al FOSDEM è stata una bellissima esperienza, Tante cose nuove da imparare, da mangiare e da bere. Tutto estremamente stimolante. Università che mai avrei visto se non in questa occasione, persone di culture molto diverse. Cibi tradizionali, argomenti tecnici per esperti e non, parchi antichi e suggestivi.

Indubbiamente un’esperienza da fare nella vita di un informatico e di chi nelle aziende informatiche lavora.