Terraform: Vuoi Conoscerlo oppure guardarlo?

Terraform? No grazie! Ma cosa stai dicendo Andrea? Non ti eri appassionato? Quando capisci che il TerraForm di cui si parla non è realmente TerraForm per come lo intendi tu. Ora faccio un passo indietro e provo a riassumere la storia tranquillo!

Di certo alla domanda: “Andrea, cosa ricorderai del 2023?” la mia risposta sarà molto semplice:

Hai idea che spettacolo il 2023? Ho cominciato col botto a Gennaio esplorando il mondo IaC tramite Terraform!

È stato il mio esordio lavorativo 2023 e l’anno prometteva benissimo. Grazie Sunnyvale per avermi introdotto al mondo IaC!

Una volta terminata la collaborazione con loro a fine progetto non ho “mollato” l’argomento Terraform ed ho continuato ad approfondirlo in autonomia. Come? Il primo passaggio è stato l’acquisto del “Terraform Cookbook” trovandolo molto interessante. Diciamo che dopo avere visto IaC con dei veri professionisti il chiudersi su un libro lo rende al quanto noioso!

Terraform Cookbook - Second Edition: Provision, run, and scale cloud architecture with real-world examples using Terraform

Learning TerraForm in XX days

Stavo scorrendo il feed di un noto portale e mi è apparso davanti un post “Learning TerraForm in XX days” ed incuriosito l’ho aperto.

Premessa che non nutro molta fiducia in questo tipo di approccio, ma questo è un parere mio personale.

Comincio a leggerne il contenuto ed una frase attira la mia attenzione. Ammetto di non ricordarmi l’esatta frase in inglese, ma il concetto era molto chiaro: niente tempo extra per la curva d’apprendimento grazie a questo tool visuale.

Questa frase mi ha fatto fermare a riflettere anche durante la corsa di sabato mattina: la curva d’apprendimento.

La coppia di parole curva d’apprendimento a mio avviso è quello che nel nostro lavoro porta ad una differenza. Sapere usare un tool visuale, non significa sapere usare TerraForm!

Quello che normalmente metterei come pensiero di chiusura ho deciso di anticiparlo a metà articolo. Ammetto che la frase scritta non è del tutto mia, ma di Denis - Sunnyvale ed è corretto citarlo per questo:

Secondo me tutto si riduce al termine Infrastructure As Code. Vogliamo fare infra come codice, ma non vogliamo scrivere codice

In tutta onestà non mi sono sentito di replicare nulla. Il mio pensiero all’utilizzo di Tools è riassunto proprio in quel concetto anche uscendo da questo contesto. Non sono mai stato amante del concetto del nocode essendo programmatore. Ammetto di avere usato dei tools, ma non l’ho mai definito programmare. Anzi, ho detto virtualmente grazie al programmatore che l’ha fatto per farmi evitare di scrivere del codice usa e getta!

Una volta terminata la collaborazione con loro a fine progetto non ho “mollato” l’argomento Terraform ed ho continuato ad approfondirlo in autonomia. Come? Il primo passaggio è stato l’acquisto del “Terraform Cookbook” trovandolo molto interessante. Diciamo che dopo avere visto IaC con dei veri professionisti il chiudersi su un libro lo rende al quanto noioso!

Tool in Action

Prima di scrivere questo post ho voluto registrami e fare la prova del prodotto. Ammetto che graficamente è fatto veramente bene ed intuitivo.

Un pezzo alla volta crei la tua architettura, crei la dipendenza tra i diversi componenti e quando hai finito devi semplicemente fare il download dei sorgenti o l’Apply.

Pensare che i più pigri ci sono anche una serie di template pronti all’uso da importare nel progetto per essere adattati e poi scaricati.

Questo significa essere esperti Terraform? Questo NON significa conosce TF. Questo significa sapere usare un tool che ti produrrà dei file .tf pronti all’uso!

Hello World …

Sicuramente un tool del genere aiuta moltissimo e non lo voglio mettere in discussione, ma non lo reputo adatto ad essere usato se vuoi imparare TF da zero o quasi.

Ammetto di essere vecchio inside ma su certe cose non transigo. Non si conosce un argomento semplicemente perché si ha letto un blog, aperto un tool o visto un video su YouTube.

Vuoi conoscere un argomento? In molti ti diranno di fare un Hello World come banco di prova, ma ormai è diventato davvero troppo semplice da fare.

Se vuoi imparare TF apri Visual Studio Code e comincia a scrivere del file TF cercando di partite da casi banali. Non ha senso riprodurre l’architettura cloud di un colosso.

Quello che devi (=dovresti) fare è mettere un mattoncino alla volta nei tuoi file .tf e vedere come evolve il tutto.

Ricordate quando nella parte introduttiva dissi di avere comprato il “Terraform Cookbook”? Da quel passaggio ho cominciato a replicare alcune soluzioni cloud da me utilizzate in ambito PoC/ Serverless per alcuni clienti (o addirittura per me stesso)

È stato semplice? No, non ho detto questo. Questo non significa che sia impossibile!

Vuoi un esempio reale? Proprio in questi giorni sono “in lotta” su come creare da zero una soluzione su AWS sfruttando le Lambda + API Gateway.

  • Il tool mi aiuterebbe? Sicuramente si!
  • Il tool mi lascerebbe l’esperienza? ASSOLUTAMENTE NO!

Ricordatevi una cosa importante. La sperimentazione è quel passaggio fondamentale che ti porta alla conoscenza. Il resto sono solo parole lette o su un blog oppure su un codice altrui senza senso.

Ripeto: sono vecchio dentro e questo mi spinge a studiare, capire e comprendere le cose. Non dico che sia facile. Dico che serve e ti aiuterà a prescindere dal contesto in cui ti trovi!