HomeInternetSono uno sviluppatore di software: devo conoscere il cloud computing?

Sono uno sviluppatore di software: devo conoscere il cloud computing?

Stai lavorando nello sviluppo di software e ti stai chiedendo se dovresti conoscere il cloud computing? Mattias Andersson spiega perche tutti gli sviluppatori dovrebbero essere abilitati al cloud e perche le certificazioni cloud sono utili.

Sei venuto qui chiedendo “Sono uno sviluppatore, dovrei davvero conoscere la tecnologia cloud?” La risposta e si, facilmente risolvibile. Ok, puoi andare ora!

Aspetta, vuoi una spiegazione piu dettagliata?

Bene, se insisti. Immagina il software come un martello e l’infrastruttura come una sega e stai usando entrambi per costruire una casa (il tuo progetto). Se non sai niente di martellare i chiodi per attaccare le cose insieme, avrai difficolta a farlo. Potresti ricorrere a ogni sorta di cose sciocche, come:

  • Cercando di incollarlo insieme
  • Legandolo insieme con delle corde
  • Accumulando piu legname come supporto

Inutile dire che questo non va bene, e alcuni astanti probabilmente ti stanno dando sguardi divertenti. Ora, immagina di sapere come martellare le cose, ma non sai come segare le cose alla giusta lunghezza e inizi con un mucchio di assi troppo lunghe (o troppo corte) per adattarsi al tuo piano.

In risposta a cio, potresti provare a cambiare il piano della tua casa per compensare e finire con una casa dalla forma strana. Oppure potresti provare a rompere le tavole con la forza, lasciando spigoli vivi e molte tavole ormai troppo corte, e poi inchiodarle insieme finche non si adattano.

Vivresti in questa casa? Di sicuro non lo farei – Non suona affatto strutturalmente sano.

Ora, mentre questo scenario potrebbe sembrare del tutto irrealistico, la dolorosa verita e che otteniamo lo stesso livello di ridicolo quando i professionisti della tecnologia si concentrano sul software o sull’infrastruttura senza capire l’altro. Il software viene sempre distribuito per essere eseguito su alcune infrastrutture e l’infrastruttura e inutile senza alcuni software.

Per la tua carriera, devi avere un set di abilita piu ampio

Per ampliare ulteriormente la mia analogia, e certamente possibile ottenere un lavoro nel settore edile in cui ogni tuo compito ruota attorno al segare tavole a misura affinche altri possano inchiodarle, o viceversa. Ma questi lavori super specializzati sono pochi e rari. Nessuno che fa carriera nell’edilizia sarebbe cosi disperato da non capire nemmeno gli altri lavori che li circondano e come svolgerli a livello di base.

Affinche una persona abbia successo in una carriera, qualsiasi carriera, deve interagire e coordinarsi con gli altri ruoli e funzioni che la circondano. In breve, le persone hanno bisogno di abilita a forma di T.  

Lo stesso vale per la tecnologia. Per usare alcune altre analogie (ne sono pieno), qualcuno che scrive software senza capire come sfruttare l’infrastruttura cloud e come:

  • Un marketer che non capisce Internet

  • Un virologo che non conosce i microscopi

  • Un manager logistico globale che non comprende il concetto di aeroplano

  • Un agricoltore che non capisce l’irrigazione o le macchine

Certo, quel contadino potrebbe riuscire a coltivare un po’ di cibo e sopravvivere, ma sicuramente non li assumero per quel lavoro nella mia ipotetica fattoria. 

Per lo stesso motivo, al giorno d’oggi non sceglierei mai di assumere un ingegnere del software non abilitato al cloud. O se lo facessi, aumentare le competenze nel cloud sarebbe il loro primo compito.

Allo stesso modo, le persone nell’infrastruttura/operazioni non andranno molto lontano se non sfruttano sia lo scripting (ovvero la scrittura di software di base per automatizzare le attivita) sia il cloud. Entrambi migliorano l’efficienza e riducono i rischi e anche le persone nelle operazioni devono collaborare con successo con gli sviluppatori (ad es. DevOps).

Attualmente ci sono alcuni lavori nell’IT in cui una persona potrebbe ancora cavarsela solo con la comprensione dello sviluppo software o del cloud/infrastruttura, ma non esiste piu una tale carriera.

Quindi, se vuoi avere successo nella tua carriera – e non solo essere accettabile in qualche lavoro per un po’ – devi conoscere sia il software che il cloud.

Il cloud computing come il prossimo livello di astrazione

Ora, ho parlato molto del motivo per cui la conoscenza del cloud computing fa bene alla tua carriera, ma ha anche senso in termini di risoluzione dei problemi.

Gli sviluppatori non scrivono codice solo per il gusto di osservarne la bellezza (anche se il codice elegante puo essere bello), ma piuttosto perche risolve alcuni problemi del mondo reale. A tal fine, l’architettura di sistema e lo sviluppo del software si stanno fondendo e ora non c’e modo migliore per gli sviluppatori di software di risolvere i problemi del mondo reale che sfruttare i servizi serverless nel cloud computing.

In passato, il linguaggio assembly ha sostituito il linguaggio macchina nel principale toolkit quotidiano di uno sviluppatore di software. Quindi i compilatori con linguaggi di livello superiore hanno sostituito la scrittura di un linguaggio assembly di basso livello. Abbiamo quindi ottenuto librerie standard e sistemi di pacchetti per liberarci dal reinventare costantemente la ruota.

Oggi sfruttiamo i servizi cloud serverless per conferire alle nostre soluzioni software capacita su scala mondiale a costi operativi molto bassi. 

Scrivere un messaggio con roccia e scalpello puo essere comunque interessante, ma non e un modo molto efficace per comunicare su larga scala. Quindi siamo passati alla carta e ora alla digitazione.

Al giorno d’oggi, costruire un sistema software senza servizi cloud serverless e come scrivere le tue email su carta e poi digitalizzarle su uno scanner piano. Probabilmente trasmetterai il tuo messaggio – e alcune (poche) persone potrebbero persino pensare che sia carino – ma e molto inefficiente.

Competenze chiave che gli sviluppatori e l’infrastruttura/operatori dovrebbero conoscere

Ecco un elenco di alto livello di cose che suggerirei di imparare per assicurarti di non essere bloccato nel tentativo di incollare due pezzi di legno insieme.

Software:

  • Scripting/Programmazione

  • Controllo del codice sorgente (Git e best practices)

  • Ciclo di vita dello sviluppo software (SDLC)

  • Agile (Leggi tu stesso il manifesto; bastano 30 secondi)

  • DevOps

  • Modelli architettonici

  • Migliori pratiche software

Cloud computing:

  • Come utilizzare in modo efficace Serverless (Critico!)

  • Infrastruttura come codice (IaC)

  • Platform as a Service (PaaS; capire perche Serverless e migliore)

  • Infrastructure as a Service (IaaS; capire perche Serverless e migliore)

  • Best practice per il cloud (compresa la sicurezza)

Quali certificazioni cloud devo prendere come sviluppatore?

Le certificazioni cloud sono un ottimo modo per correggere alcuni dei tuoi punti ciechi. Ogni fornitore di servizi cloud dispone di una certificazione non tecnica di livello base che riguarda la comprensione degli aspetti generali del paradigma cloud in generale e anche come sfruttare i servizi chiave di quel cloud per risolvere i problemi aziendali. Anche come sviluppatore di software, il tuo miglior obiettivo e la certificazione di base del provider di servizi cloud (opzionale) e quindi la sua certificazione di architetto.

Consiglio vivamente di leggere questo articolo, e non solo perche l’ho scritto: “Domande frequenti sulla certificazione cloud: AWS vs Azure vs certificati Google Cloud a confronto”. 

Nota a margine: fino alla fine di quest’anno, puoi iscriverti per la preparazione alla certificazione gratuita con Pluralsight Skills o A Cloud Guru (e quando dico gratuito, intendo veramente gratuito). Ne approfitterei sicuramente finche puoi!

RELATED ARTICLES

Most Popular