Il cloud computing consiste nell’erogazione di servizi inerenti a risorse applicative e infrastrutturali tramite connessione Internet. Nella pratica, quindi, l’utente finale può accedere e utilizzare software, database, server e reti, dovunque e in ogni momento. Il cloud computing permette inoltre a chi eroga servizi informatici di disporre di un’infrastruttura gestita e ospitata da terzi, e dunque di poter delegare le responsabilità di acquisto e mantenimento delle risorse hardware.
A questo scopo vengono quindi forniti degli abbonamenti ai suddetti servizi che consentono di:
Quando si parla di architettura informatica ci si riferisce ad un insieme di elementi collegati tra di loro per soddisfare delle funzionalità. Questi elementi sono apparati di rete (switch, router, firewall), di storage (nas e san) e server che ospitano applicazioni e database.
Per infrastruttura informatica si intende l’importante equilibrio tra hardware e software che alimenta il funzionamento, per esempio, di un’azienda e può essere distribuita all’interno di un sistema di cloud computing.
Mantenere un’architettura informatica di produzione richiede la collaborazione di sistemisti, network engineer e sviluppatori: queste diverse competenze devono collaborare per assicurare a chi usufruisce dell’infrastruttura in cloud una disponibilità cosiddetta “five nine”, ovvero quasi assoluta.
La tendenza di oggi è quella di gestire le proprie infrastrutture in modo sempre più dematerializzato: chi sviluppa software ha spesso l’esigenza di disporre di risorse controllate, disponibili e manipolabili in modo automatizzato e veloce: per questo si parla sempre di più di Infrastructure as Code.
L’Infrastructure as Code è una tendenza figlia dell’ibridazione tra le figure dello sviluppatore e del sistemista, che vede l’applicazione di tool di automazione (Ansible e Terraform per citarne due) per la gestione e configurazione di risorse attraverso codice. Automatizzare il deployment e la configurazione delle proprie risorse in cloud attraverso l’uso di questi tool permette agli sviluppatori di sveltire i flussi operativi e di ridurre il margine di errore.
I servizi serverless sono servizi di calcolo che permettono di astrarre la logica di un programma dal suo ambiente di esecuzione; permettono, quindi, di eseguire dei blocchi di codice senza doversi preoccupare della piattaforma sulla quale questo viene eseguito.
Il vantaggio offerto dai servizi serverless è ovviamente quello di sollevare chi produce software dalla responsabilità di gestire e mantenere sicuri e stabili i sistemi operativi.
Non tutti gli applicativi si prestano bene a un’architettura di questo tipo.
Le architetture serverless infatti ospitano spesso piccoli, specifici servizi che servono delle funzionalità all’interno di un quadro più ampio. Un applicativo servito in modalità serverless, è in genere:
Un esempio di buona applicazione di un servizio serverless potrebbe tradursi nel contesto di un e-commerce nel quale ogni volta che viene caricato un nuovo prodotto nella dashboard di amministrazione, un evento notifica ad una funzione serverless di aggiornare gli indici del motore di ricerca dell’e-commerce stesso.
La figura del Cloud Specialist deve possedere un background completo in relazione al cloud computing, ai servizi disponibili, agli scenari legati ai big data ed ai dispositivi IoT che è possibile gestire sfruttando le potenzialità del cloud.
Il Cloud Specialist dovrà, infatti, comprendere con precisione il funzionamento delle diverse architetture software in base al contesto ed essere in grado di sviluppare soluzioni cloud per la gestione e l’analisi di grandi quantità di dati sulle diverse piattaforme disponibili.
Scopri il nostro corso per diventare Tecnico superiore per le architetture e le infrastrutture per i sistemi di comunicazione!