3 Maggio, 2019 | Di

Cosa abbiamo imparato dalla CloudConf 2019

Cloud Conf

Qual è la migliore definizione di Cloud Computing? Qualunque applicazione “scalabile”, ovvero in grado di essere replicata su diverse macchine che si dividono il lavoro.

Questo è il concetto con cui abbiamo iniziato la CloudConf 2019, una delle più grandi conferenze sul Cloud Computing in Europa.

Sono state due giornate piene e interessanti. Ti raccontiamo le nostre impressioni e quali saranno (secondo quanto abbiamo ascoltato) i trending topics per il Cloud quest’anno.

 

1. Serverless

La costante che ci ha sempre accompagnati durante il keynote mattutino “Serverless is more FinDev than DevOps” di Yan Cui, e per tutta la durata della conferenza, è stata una in particolare: Serverless.

 

Ma cosa significa Serverless?

Come per molti trend nel software, non c’è una definizione univoca di “serverless”.

In generale, secondo il noto esperto Martin Fowler, per serverless intendiamo un’applicazione dove la logica server-side è scritta dallo sviluppatore ma, a differenza delle architetture tradizionali, il servizio viene eseguito su un container che è stateless, event-triggered, ephemeral (l’esecuzione avviene una volta sola) e completamente gestito da qualcuno che non è lo sviluppatore.

Possiamo vederlo come “Function as a Service” o “FaaS”. Alcuni esempi di piattaforme FaaS sono: AWS Lambda, Google Cloud Functions e Azure Functions.

L’architettura Serverless porta con sé alcuni vantaggi, tra cui i più importanti sono:

  • costi ridotti (riassumibile nel motto “pay-as-you-go computing”)

  • scalabilità pressoché illimitata

  • riduzione dei tempi di sviluppo (lo sviluppatore si preoccupa solamente del codice).

 

serverless

2. Monitoraggio e osservabilità

Più ci si muove su infrastrutture serverless (o gestite da altri) più la questione del monitoraggio diventa importante. Uno degli svantaggi di Serverless è proprio questo: nel momento in cui perdiamo il controllo sull’infrastruttura, non possiamo fare debug e verificare facilmente il funzionamento dei nostri servizi (che ora sono gestiti da una terza parte).

Durante il talk “Chaos Engineering: Breaking your systems to make them unbreakable“ di  Jason Yee abbiamo cercato di rispondere alla domanda “quali sono le fasi di test di un servizio serverless?”

Chaos engineering è la disciplina che si occupa di verificare le risposte dei servizi all’occorrenza di eventi generatori di caos all’interno del sistema.

Ad esempio: in un sistema di vendite online, cosa succede se termino le connessioni verso il sistema di pagamento?

A questo proposito è stato citato il software sviluppato da Netflix per testare questo genere di problematiche: Chaos Monkey.

In questo genere di problematiche, gli strumenti di monitoraggio diventano una scelta obbligatoria per avere una visione d’insieme del sistema e verificare il giusto funzionamento dei servizi per agire di conseguenza.

Sul monitoraggio e sulla instrumentazione delle applicazioni si è basato anche uno dei workshop del venerdì, nel quale abbiamo imparato insieme a Gianluca Arbezzano come log strutturati e tracing di quello che succede nel nostro sistema sono componenti fondamentali quando ci si sposta verso architetture serverless e fortemente distribuite.

positive chat

3. Machine Learning

Machine Learning, Neural Networks, Deep Neural Networks, Natural Language Processing, Generative Adversarial Network: queste sono le keywords più usate durante i talk relativi all’uso di servizi di AI in Cloud.

In particolare nei talk “Learning & JavaScript” di Asim Hussain e “Building a serverless 'positive chat' and why products and teams are important” di Danilo Poccia sono stati mostrati esempi di utilizzo di tecniche di Machine Learning (e serverless) per costruire strumenti innovativi, capaci di applicare alcuni di questi approcci per la costruzioni di prodotti intelligenti e personalizzati sulle esigenze di ogni singolo utente.

A colpire maggiormente, però, sono la rapidità e la semplicità di sviluppo di questi prodotti, utilizzando i servizi offerti da Amazon, Google o Microsoft. Bastano infatti poche ore, e non più giornate, per costruire nuovi servizi anche senza un’approfondita conoscenza degli algoritmi alla base di questi strumenti.