Il codice come il timer della lavatrice?

Contenuti

⏲️ Il codice come il timer della lavatrice?

Riflessioni di sabato mattina da “casalingo” …

Mancava una decina di minuti alle 11 quando ho deciso di fare partire la lavatrice dopo il cambio delle lenzuola. Ho fatto un semplice ragionamento istintivo basandomi sulla durata indicata dal programma: 59 minuti!

Ho questa lavatrice dal 2018 e non ricordo di avere mai visto un lavaggio durare quel tempo. Quando arriva attorno alla decina di minuti il tempo si dilata. Probabilmente negli ultimi cinque si ferma del tutto.

Indicativamente il tempo necessario è di circa 70 minuti. Se non ho fatto male i conti corrisponde ad un 18% di tempo extra.

Vi state chiedendo l’attinenza di tutto questo col codice sorgente?

Il codice come il timer della lavatrice?

Pensate al vostro codice e le sue continue esecuzioni attivate da diversi eventi/ triggers. Durante la fase di sviluppo potete stimarne i tempi sfruttando la creazione di benchmark (=vedi “Benchmark: La misurazione della performance") e’ un primo passo.

Cosa succede una volta che il tutto finisce in produzione?

A questa domanda purtroppo non possiamo rispondere senza andare in produzione. Prima di effettuare il rilascio (=anche in fase di sviluppo) dobbiamo tenere conto di una serie di fattori:

  • Quanto e’ grosso/ performante il mio database?
  • Mi appoggio a servizi esterni oppure e’ tutto nel mio codice?

Cosa posso fare per verificare il tutto?

Personalmente su Azure mi appoggio moltissimo ad Application Insights per monitorare i processi di backend scritti per essere attivati da trigger/ eventi esterni. Come mai?

  • Monitoraggio delle singole API/ Function scritte
  • Tempo di esecuzione medie
  • Rilevazione (purtroppo capita) delle exception
  • Monitoraggio tramite live stream per osservare eventuali exception massive appena effettualo lo swap tra lo slot di staging e production.

Se non conosci Application Insights ti consiglio di guardarlo. Se non lavori su Azure tranquillo. Esistono sicuramente servizi equivalenti anche in altri cloud per effettuare questa tipologia di lavoro.

In conclusione?

Il progettista della lavatrice e’ convinto della durata del lavaggio di 59 minuti. Non guarda i log e questo non gli solleva il problema.

Il codice funziona uguale. Lo scrivi e sei convinto abbia determinati comportamenti. Lo metti in produzione e le questioni cambiano. Tranquilli, cambiano sicuramente state certi.

La chiave vincente: test, test, test (anche stress test) e monitoraggio!