OneClickApp Temporal Gateway

Cosa è AWS Timestream?

Scegliere AWS Timestream

 

Negli ultimi anni i database specializzati per le serie temporali ( in gergo TSDB – Time Series Database) hanno guadagnato notorietà e sono sempre più utilizzati per le loro particolarità e la grande adattabilità nelle applicazioni IoT e negli scenari di analisi dati. LOGCONSULTING ha sempre lavorato in contesti industriali dove, tra i dati raccolti, la variabile dipendente “tempo” è sempre presente. Quando si è trattato di scegliere un prodotto adattabile ai carichi di lavoro dei nostri progetti SaaS, la scelta è caduta su AWS e Amazon Timestream.

Abbiamo valutato e scelto il servizio managed Amazon Timestream, consci della grande esperienza di AWS nell’elaborazione dati e nello storage distribuito. Amazon Timestream è stato creato da AWS con un’architettura Serverles, un’elevata scalabilità e una forte integrazione con i componenti che LOGCONSULTING già utilizza nei sui progetto; componenti quali AWS IOT Core, AWS Forecast ecc..

Tra i requisiti che AWS Timestream ha rispettato durante il nostro processo di selezione e scelta del prodotto, ci sono stati:

 

  • Gestione del ciclo di vita dei dati. I dati non possono essere cancellati, solo archiviati e letti. I dati “vivono” nel database per un periodo di tempo prestabilito e per un massimo di 200 anni.
  • Elevata compatibilità e sicurezza grazie alla compliance nativa del servizio con le norme di riferimento per la security e la privacy dei dati (GDPR).
  • Raggiungibilità in più regioni tra cui due in Europa.
  • Database con scritture e letture dei dati in memoria molto veloci.
  • Compatibile con AWS IoT Core.
  • Velocità, prestazioni e costi drasticamente più convenienti di un database relazionale.
  • Compliance. Amazon Timestream è idoneo e conforme alle norme HIPAA, ISO (9001, 27001, 27017 e 27018), PCI DSS e Health Information Trust Alliance (HITRUST) Common Security Framework (CSF). Inoltre, Amazon Timestream rientra nell’ambito dei report SOC di AWS SOC 1, SOC 2 e SOC 3.

I casi d’uso, le misurazioni e le esperienze svolte con AWS Timestream ci hanno portato ad utilizzare questo prodotto in tutti i nostri progetti IoT dove migliaia di dispositivi connessi eseguono injection di dati attraverso code MQTT, TOPICS e STREAMS dedicati.

In particolare Timestream è risultato estremamente competitivo in questi ambiti:

 

  • Archiviazione, analisi dati e indicatori di produzione (KPI) come : OEE, tempi di produzione, indicazione degli allarmi e controllo dell’andamento della produzione nel tempo.
  • Archiviazione di dati sensibili ricavati da dispositivi medici che trasmettono costantemente i dati relativi a gas sedativi, temperature, pressioni, dati biometrici ecc. La crittografia e la privacy garantita dal servizio sono stati determinanti per queste tipologie di dati.

 

Nelle applicazioni SaaS in cui la durata del servizio è prestabilita, il dato può essere cancellato al termine del contratto SaaS. In questo caso non è più responsabilità del DBA o del DevOps monitorare e intervenire durante il ciclo di vita del dato.

AWS Timestream da solo è sufficente?

Timeseries e il Temporal REST gateway

Quando si accumulano una grande quantità di dati, questi si devono interrogare con alta velocità e bassa latenza ad intervalli regolari. Farlo globalmente è diventata una delle sfide che ci siamo trovati davanti. I dati archiviati su timestream non variano mai una volta archiviati e su questo presupposto abbiamo creato un nostro Gateway che, con tre differenti livelli di cache, permette ai nostri clienti, di convertire le query SQL scritte per Timestream in API RESTful pronte all’uso. Il nostro gateway risiede in ogni region AWS e con un routing intelligente riesce ad aggregare i dati che risiedono su Istanze timestream differenti in un’unica API, permettendo una velocità di implementazione delle soluzioni IoT globali mai vista.

Ora i nostri clienti possono semplicemente scrivere le loro query, confrontarsi con noi su come ottimizzarle e integrarle subito come sorgenti dati RESTful . Il funzionamento è semplice, ad ogni cliente viene assegnato un token/key cosi che possa da subito iniziare a scrivere ed eseguire le query. Ad ogni query verrà assegnato un numero richiamabile via REST globalmente.

Tra le opzioni che il gateway mette a disposizione, la feature HISTORY mantiene e informa i clienti del costo in BYTE e dell’efficenza delle loro query, dando la possibilità di un affinamento e un’osservazione continua dei costi di utilizzo dei loro servizi Timestream che stanno usando in giro per il mondo.

In questo modo permettiamo ai nostri clienti di concentrarsi sulla logica del business e sui dati, senza dover scrivere una riga di codice in più. Questo netto disaccoppiamento tra scritture dei dati, letture, query SQL e logiche di programmazione, crea un layer di astrazione REST che ci permette di essere il fornitore di un software SaaS di serie storiche raggiungibile via API.

Benefici e caratteristiche

Caching

 

La costruzione di un gateway per timestream risolve diverse problematiche che globalmente possono presentarsi quando si lavora in contesti multi-region.

Attraverso l’architettura del nostro gateway, ci è permesso interrogare ed aggregare dati, database e tabelle di Timestream situati in region diverse, il tutto utilizzando un sistema di cache a tre livelli che consente di mettere i risultati sulla CDN di AWS Cloudfront a disposizione dei nostri clienti, con latenze spesso inferiori ai 35 ms. In questo modo possiamo sopperire alle problematiche multi-region e garantire i risultati attesi per le chiamate alle API.

Management

 

Per la gestione delle query viene messa a disposizione una semplice interfaccia, permettendo ad ogni utilizzatore di invalidare i tre livelli di caching e di collaudare il response e il timing della query prima che questa sia messa in produzione. Internamente alla console di gestione viene attuato un versioning delle query SQL scritte, così da monitorare il controllo delle modifiche nel tempo.

Riduzione dei costi

 

LOGCONSULTING, per diverse volte in passato, ha utilizzato database relazionali generici per l’injection di dati costante e ha tentato di ottimizzare questi per le serie temporali; ma il risultato in termini economici era spesso deludente. Le prestazioni decadevano all’aumentare della dimensione delle timeseries e il joining tra i dati costringeva alla gestione del partitioning e dello sharding. Se consideriamo questo un costo, spesso nascosto, la scelta del database AWS Timestream si è confermata vincente facendo divenire i costi di gestione pressoché inesistenti. Timestream è pagato per il volume delle scritture effettuate. Con l’esperienza maturata e i nostri tools che ci permettono di collaudare le API in corso d’opera, a consumo e con una visibilità granulare, il risparmio è sempre calcolabile attraverso misure certe. Per fare un esempio, in alcuni dei nostri progetti IoT siamo riusciti ad ottimizzare i singoli payloads di diversi devices che scrivono su Timestream attraverso AWS IoT core, tanto che i costi mensili si sono abbassati di 100 volte. Aggregando le measures rilevate, agendo su payloads con attributi comuni e osservando le Query del nostro gateway, siamo riusciti a direzionare il costo di un mese di scritture per dispositivo da 26,78$ a 0,25$.

Chiamateci per ottenere maggiori informazioni.