Docebo migliora il monitoraggio dei sistemi con Amazon Kinesis Data Firehose e AWS Glue

2022

Docebo, società di tecnologie software-as-a-service per l’apprendimento, aveva un problema nell’identificare i bug nella propria struttura multitenant: il team dedicato impiegava troppo tempo. L’azienda voleva ottenere una “singola fonte di verità” per velocizzare drasticamente questa attività. La struttura frammentata di Docebo obbligava i membri del team a recuperare i log uno a uno in caso di problemi, impiegando giorni.

L’azienda cercava una soluzione per facilitare l’implementazione di log di tracciamento agnostici, così che i vari team potessero usarli impiegando molto meno tempo. Docebo ha scelto di utilizzare i servizi di Amazon Web Services (AWS) per unificare le funzioni di logging di tutti i workload, riducendo così i tempi del troubleshooting e del monitoraggio,migliorando l’efficienza operativa e ampliando le opportunità di analisi.

Perspective view on digital glowing magnifier in technological circle surrounded by microcircuit lines, global search concept
kr_quotemark

Con AWS abbiamo potuto migliorare in molti aspetti il nostro prodotto, grazie alla creazione di una library stand-alone che ogni nostro componente o microservizio, presente o futuro, può usare."

Francesco Marchesini 
Senior Backend Developer, Docebo

Una sola verità

Fondata nel 2005 come startup, Docebo è diventata presto un fornitore globale di tecnologie di e-learning. Oggi ha clienti in tutto il mondo. Docebo ha lanciato con successo la propria IPO (Initial Public Offering) al Toronto Stock Exchange nel 2019 e al Nasdaq nel 2020.

Prima di adottare i servizi AWS per creare un flusso unificato di log, il team di Docebo perdeva tempo prezioso nel ricostruire le azioni dei clienti e identificare il problema per ogni nuovo bug. “Passavo almeno due o tre giorni su un singolo bug”, afferma Michele Acierno, senior backend developer di Docebo. “Servivano giorni per completare task impegnativi di ricerca nei log, e a volte il team non riusciva a capire completamente il problema”.

“Avevamo bisogno di una soluzione per evitare l’enorme sforzo giornaliero che affrontavamo”, aggiunge Alberto Roli, software development manager di Docebo. L’azienda aveva bisogno di una “singola fonte di verità” per i componenti di notifica del proprio log stream. Anziché avere differenti stream per ogni microservizio usato, Docebo voleva avere uno snapshot di ogni stato all’interno di un unico flusso di notifiche. “L’obiettivo era raccogliere dati normalizzati, per poter capire il flusso per ciascuna soluzione su uno specifico gruppo di log e attuare il debug necessario”, dice Acierno.

Implementare log di tracciamento agnostici con AWS

Docebo ha avviato il progetto nell’agosto del 2021, impiegando circa un mese per rendere operativa la soluzione. Quest’ultima utilizza un container su Fluent Bit (un sistema di elaborazione e invio dei log) per gestire le richieste di tracciamento dei log. Flulent Bit invia la richiesta ad Amazon Kinesis Data Firehose, un servizio che in modo affidabile cattura, trasforma e distribuisce dati in streaming verso data lake, data store e servizi di analytics. “Usiamo Fluent Bit per inviare dati con informazioni specifiche, come quelli di logging e di platform domain”, dice Acierno. “Usiamo queste informazioni come chiavi di partizione per Amazon Kinesis Data Firehose”. 

Docebo organizza i dati con Amazon Simple Storage Service (Amazon S3), un servizio di object storage che offre i massimi livelli di scalabilità, disponibilità dei dati, sicurezza e prestazioni. I dati vengono poi estrapolati con Amazon Athena, un servizio di query interattivo che semplifica l’analisi dei dati su Amazon S3 tramite SQL standard.

La soluzione di Docebo usa anche AWS Glue, un servizio di integrazione dati serverless che facilita il discovery, la preparazione e la combinazione dei dati per anaytics, machine learning e sviluppo applicativo. Utilizzare AWS Glue come catalogo dati ha aiutato Docebo a raccogliere nuovi campi statici (come tipologia di log, platform domain e marca temporale) per i messaggi di logging. “Usiamo AWS Glue per normalizzare i dati che abbiamo già strutturato con i file per Amazon Athena”, ha detto Acierno.

I vantaggi in termini di maggior precisione della soluzione sono emersi subito. Il team ora può usare i log di tracciamento agnostici per trovare configurazioni errate o mancanti e per risolvere il problema alla radice. Tutto questo prima era impossibile perché bisognava mettere insieme più di 100.000 notifiche da diversi log stream. Distribuendo un programma eseguito in background di Fluent Bit in ciascuna regione e usando il partizionamento dinamico da Kinesis Data Firehose si evitano i colli di bottiglia. Se il team deve implementare nuovi workload può farlo con un approccio infrastructure-as-code, che permette di installare un modulo PHP o nodo all'interno del microservizio. Il modulo avvolge i log e li passa a Fluent Bit, creando una struttura di dati coerente.

Il team di Alberto Roli ha raccolto metriche sulle prestazioni della gestione delle notifiche impostando delle query sui dati tracciati. E ha scoperto che la gestione degli eventi non era ottimale, dunque il sistema elaborava job di notifica inutilmente. “Da poche centinaia di invii si creavano milioni di job”, spiega Roli. “Con i log di tracciamento Docebo ha scoperto il problema ed è riuscita a ottimizzare il codice per evitare job inutili”.

Per il team di Roli, il risparmio di tempo è un vantaggio enorme. Docebo ha velocizzato la scoperta e la risoluzione dei problemi, da giorni a minuti, riducendo il tempo del troubleshooting del 90%. “Adesso l’unica cosa che devo fare è inserire un tracing specifico nella query di Amazon Athena per avere dettagli su quando il post è stato creato, se è stato consegnato e se c’è stato un errore. Ho tutti questi dati e posso comprendere ogni cosa”, dice Acierno. “Prima non potevamo farlo. Ciò che richiedeva tre giorni di lavoro ora può essere fatto in cinque minuti”. In passato, il team spendeva il 70-80% del proprio tempo nella risoluzione di bug. Con i log di tracciamento ora impiega meno del 15% del tempo.

Con AWS Glue e altri servizi AWS e con Fluent Bit l’azienda adesso ha una struttura di dati coerente e questo offre nuovi vantaggi ai clienti. “Possiamo migliorare il nostro codice e lo sviluppo futuro dell’input per il nuovo stream di notifica”, dice Francesco Marchesini, senior backend developer di Docebo. “Utilizzare Fluent Bit insieme a servizi AWS, tra cui AWS Glue, è un’ottima soluzione. Anche i nostri clienti otterranno vantaggi, perché possiamo risolvere i loro problemi e offrire un prodotto migliore e più rapido”.

Favorire la crescita con AWS

Con AWS, Docebo sta migliorando il proprio business e sta offrendo un miglior supporto ai propri prodotti. L’azienda sfrutta i log di tracciamento agnostici forniti dalla soluzione combinata di servizi AWS (tra cui AWS Glue) e Fluent Bit. L’uso di soluzioni come Amazon Athena aiuta l’azienda a interrogare i dati per specifiche informazioni di payload, cosa in precedenza impossibile. I team di sviluppatori ora hanno una struttura di dati coerente e possono integrare la nuova soluzione per fornire log. 

L’infrastruttura, quindi, può essere distribuita con un approccio infrastructure-as-code. In futuro il team di Docebo ha in programma di usare i servizi di AWS per implementare un tracciamento unificato insieme ad allerte e notifiche automatiche. “Con AWS possiamo migliorare i nostri prodotti in molti modi, avendo creato una library stand-alone che ogni nostro componente o microservizio, presente o futuro, può usare”, spiega Marchesini. “Abbiamo una soluzione più stabile, più facile da mantenere, da ampliare e da eseguire”.


Informazioni su Docebo

Fondata nel 2005 a Biassono, Provincia di Monza e della Brianza, Docebo è una società che offre tecnologie innovative di apprendimento digitale tramite software-as-a-service. L’azienda sta crescendo rapidamente ed è ormai diventata un brand globale.

Vantaggi di AWS

  • Migliore efficienza del problem-solving e del debugging
  • Tempo di troubleshooting ridotto del 90%
  • Identificazione dei bug molto più rapida (da tre giorni a cinque minuti)
  • Risoluzione dei bug molto più rapida (dal 70-80% del tempo di lavoro a meno del 15%)
  • Nuova soluzione implementata in un mese
  • Facilità di interrogazione dei dati

Servizi AWS utilizzati

AWS Glue

AWS Glue è un servizio di integrazione dati serverless che semplifica l'individuazione, la preparazione e la combinazione dei dati per l'analisi, il machine learning e lo sviluppo di applicazioni.

Ulteriori informazioni »

Amazon Athena

Amazon Athena è un servizio di query interattivo che semplifica l'analisi dei dati in Amazon S3 con espressioni SQL standard. Athena è un servizio senza server; quindi, non è necessario gestire alcuna infrastruttura e si paga solo in base al tempo di query.

Ulteriori informazioni »

Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose è un servizio di estrazione, trasformazione e caricamento (ETL) che acquisisce, trasforma e distribuisce in modo affidabile dati in streaming a data lake, data store e servizi di analisi dei dati.

Ulteriori informazioni »

Amazon S3

Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione di oggetti che offre scalabilità, disponibilità dei dati, sicurezza e prestazioni all'avanguardia nel settore. I clienti di tutte le entità e settori possono archiviare e proteggere qualsiasi quantità di dati per qualsiasi caso d'uso, come data lake, applicazioni native per il cloud e app mobili. 

Ulteriori informazioni »


Inizia

Aziende di tutte le dimensioni e di tutti i settori stanno trasformando ogni giorno la propria attività grazie ad AWS. Scopri di più sulle nostre soluzioni complete per eseguire la migrazione ad AWS con la massima efficienza e comincia subito il tuo percorso verso AWS Cloud.