AWS Summit 2017: quest’anno si è parlato soprattutto di AI, Database e DevOps. Ecco i trend da seguire sul cloud di Amazon.

Seconda edizione di AWS Summit di Milano. Ancora più gente, più idee, più contenuti. Diverse novità erano state già annunciate a San Francisco lo scorso aprile, ma vale sicuramente la pena ricordarle. Vi proponiamo in questo post una sintesi dei temi più interessanti dell’appuntamento milanese. La formula di quest’anno mirava ad avvicinare al cloud persone e aziende, tramite brevi sessioni di training alternate alla presentazione di casi di studio nell’implementazione di architetture AWS. Fra i casi illustrati quelli di Pirelli, Mediaset, Enel e Satispay (e ricordiamo che, per quanto riguarda Enel e Pirelli, si tratta di storie di successo cui Spindox ha contribuito).

Ecco dunque che cosa bolle in pentola nel mondo del cloud Amazon.

Lex, le API per Alexa

Tra le novità nel campo Intelligenza Artificiale spicca il rilascio in GA (General Availability) di LEX, il servizio che mette a disposizione degli sviluppatori API per accedere ad Alexa, (era prevista anche una dimostrazione live di Echo, purtroppo saltata per problemi di connessione) ed avere così la possibilità di implementare facilmente chatbot sia testuali che vocali e integrarli anche in applicazioni mobile.

Inoltre ora è entrato in GA il supporto di LEX ad AWS Mobile Hub Integration, per l’integrazione delle features della piattaforma su applicazioni mobile.

Moderazione di immagini

Interessante è anche la feature di image moderation aggiunta a Rekognition, il servizio di analisi immagini e riconoscimento facciale. La funzione di moderazione in sostanza riceve un’immagine in input e restituisce una lista di label relative a soggetti discutibili (es. sessuali o violenti), con un punteggio di confidenza, utili per eventuali filtri, come l’esempio qui sotto, preso direttamente dal sito Amazon.

{
    "ModerationLabels": [
        {
            "Confidence": 79.03318786621094,
            "ParentName": "",
            "Name": "Explicit Nudity"
        },
        {
            "Confidence": 79.03318786621094,
            "ParentName": "Explicit Nudity",
            "Name": "Graphic Male Nudity"
        },
        {
            "Confidence": 68.99967956542969,
            "ParentName": "Explicit Nudity",
            "Name": "Sexual Activity"
        }
    ]
}    

Sussurri e metadati per Polly

Nella stessa sessione hanno tenuto banco anche Polly, un servizio AWS Deep Learning di Text-To-Speech (ovvero la traduzione di testi in forma parlata)  in grado di trasformare testi scritti in una qualunque delle lingue e voci attualmente supportate. L’ultima aggiunta è l’integrazione del supporto a Speech Marks, che tramite tag di metadati consente l’implementazione di sincronizzazione labiale, nonché l’utilizzo di effetti vocali come la voce sussurrata. Giusto per fare un esempio: una frase tipo “Hi! (sussurrato: “My name is Tara“) , I am really excited to speak about Polly’s new features.” sarebbe codificata in SSML (Speech Synthesis Markup Language, uno dei 4 tipi di Speech Marks assieme a “Sentence”, “Word”, “Viseme”) come: <speak>Hi!<amazon:effect name=”whispered”>My name is Tara</amazon:effect>I am really excited to speak about Polly’s new features.</speak> Per illustrare meglio la semplicità, vediamo che le istruzioni vengono inviate a Polly tramite stringhe in formato JSON, del tipo:

aws polly synthesize-speech \
  --output-format json \
  --voice-id Joanna \ --text 'Hi! My name is Tara. I am really excited to speak about Polly's new features.' \ --speech-mark-types='["sentence", "word", "viseme"]' \ myData.txt

Questo comando produce un file di testo “myData.txt” (altri formati possibili sono audio come mp3, OGG e PCM), dove ogni riga è una struttura JSON del tipo  con indicati l’inizio in millisecondi dello streaming, il tipo di speech mark, gli offset di inizio e fine in bytes dell’oggetto e il valore dell’elemento, che può essere un tag nel caso di SSML, un viseme o una stringa nel caso di word e sentence. Posizionamento e offset possono cambiare con l’uso di differenti voci.

La sincronizzazione labiale si ottiene estraendo (a mano o tramite AI) i “viseme” dall’animazione video. Un viseme è la rappresentazione visuale del fonema, in pratica la configurazione del viso mentre sta pronunciando una determinata parola. L’uso dei viseme some tipo di Speech Mark in files come quello di cui sopra consente appunto la sincronizzazione indicando esattamente posizionamento, durata e configurazione della pronuncia.

EC2 F1

Sono entrate in GA anche le istanze F1, ovvero istanze equipaggiate con FPGA (Field-Programmable Gate Array). Questo tipo di istanze rendono possibile configurare via software l’architettura interna dei circuiti in modo da poter ottimizzare addirittura l’hardware della macchina per specifiche esigenze di calcolo.

Servizi di database

Aurora, il database Amazon compatibile MySQL ora supporta (ancora in preview) anche PostgreSQL, mentre per DynamoDB è ora disponibile il sistema di caching in-memory DAX, per un miglioramento dichiarato della performance di 10 volte, che permette inoltre agli sviluppatori di non preoccuparsi della gestione diretta della cache; per DynamoDB inoltre è ora disponibile la possibilità di creare endpoint VPC (Virtual Private Cloud), per avere accessi al DB chiusi e isolati da internet senza bisogno di gestire NAT e Gateway.

Redshift Spectrum

In ambito Big Data la novità più interessante sembra essere l’introduzione di Spectrum per Redshift, che permette di effettuare query SQL direttamente su S3, senza necessità di caricare i dati su Redshift prima.

Marco Argenti, VP Mobile IoT AWS e Keynote della serata ha citato l’esempio (qui sotto l’intervento originale di Werner Vogels cui Argenti faceva riferimento) di una query complessa eseguita su vari exabyte di dati, che utilizzando un cluster di 1000 nodi con Apache Hive avrebbe richiesto circa 5 (cinque) anni per completare, mentre con Redshift Spectrum veniva completata in 155 secondi (!).

Questo genere di performance viene raggiunto creando tabelle in Redshift che puntano ai dati esterni, con una sintassi tipo “create external table field 1, field 2, field 3… stored as <CSV/Parquet/TSV>, location“: in sostanza una sorta di vista sui dati esterni, immagazzinati come file (Ad oggi Spectrum supporta CSV, RCFile, TSV e Parquet, compressi con GZIP o Snappy).

Create le tabelle su Redshift poi la query viene ottimizzata ed eseguita in parallelo sfruttando l’autoscaling, ovvero generando istanze multiple a seconda della necessità: questo parallelismo massivo porta a incrementi di performance rispetto ai metodi tradizionali di parecchi ordini di grandezza.

Per informazioni più dettagliate fare riferimento all’articolo di Jeff Barr sul blog Amazon.

Strumenti di sviluppo

Altre novità degne di nota sono il rilascio di CodeStar, per la gestione facilitata di progetti su cloud e di X-Ray, ambiente di troubleshooting in grado di fare tracing distribuito su tutte le richieste che arrivano all’applicazione, e del suo supporto su AWS Lambda.