Riassunto analitico
In the context of the increasing complexity of corporate data flows, classical monolithic ETL (Extract, Transform, Load) solutions show limitations in terms of scalability and maintainability. In response to these challenges, this thesis proposes and implements a prototype ETL architecture based on a microservices paradigm, in which each process component is encapsulated within a containerised service, Their behaviour is then orchestrated to form a pipeline via the Apache Airflow platform.
The use of containerisation with Docker and of an efficient data exchange format such as Arrow IPC, reduces the impact of serialisation of data between services, while at the same time allowing them to ‘talk’ via APIs but still retaining a good degree of component independence. This favours the modularity of the system, since a microservice can be updated or replaced without affecting the entire workflow, embracing a continuous deployment logic. The same architecture then results in a high degree of portability between different systems, as well as in possible production scenarios also excellent scalability, being able to replicate and replace each component independently. On the other hand, fragmentation into autonomous services introduces a communication overhead (HTTP/REST) and requires more advanced monitoring tools (Prometheus, Grafana) and distributed logging to ensure traceability and observability of processes.
The design choices and implementation solutions adopted, including Docker Compose for the coordination of a multi-container system and Airflow for the definition of workflows through DAGs, are described, as well as comparison tests with a traditional monolithic approach.
The evidence shows advantages of microservice decomposition in terms of maintainability and pipeline extensibility. At the same time, the additional cost in terms of latency and computational resources is quantified, highlighting the trade-offs between modularity and communication overhead. The paper concludes with an overall assessment of the guiding elements towards the architectural paradigm presented, of any potential that can be detected in cloud environments with platforms such as Kubernetes, and with proposals for further developments.
|
Abstract
Nel contesto della crescente complessità dei flussi di dati aziendali, le classiche soluzioni ETL (Extract, Transform, Load) di tipo monolitico mostrano limiti di scalabilità e di manutenibilità. In risposta a tali sfide, questa tesi propone e realizza un prototipo di architettura ETL basata su un paradigma a microservizi, in cui ciascun componente del processo è incapsulato all'interno di un servizio containerizzato, Il loro comportamento viene poi orchestrato a formare un pipeline tramite la piattaforma Apache Airflow.
L’uso della containerizzazione con Docker e di un formato di scambio dati efficiente qual è Arrow IPC, riduce l’impatto della serializzazione dei dati tra servizi, consentendo al tempo stesso di far “colloquiare” gli stessi tramite APIs ma conservando comunque un buon grado di indipendenza dei componenti. Ciò favorisce la modularità del sistema, poiché un microservizio può essere aggiornato o sostituito senza influenzare l’intero flusso di lavoro, abbracciando una logica di Deploy continuo. La stessa architettura risulta poi di ottenere un alto grado portabilità fra sistemi differenti, nonché in eventuali scenari di produzione anche un'ottima scalabilità, potendo replicare e sostituire indipendentemente ogni singolo componente. D’altro canto, la frammentazione in servizi autonomi introduce un overhead di comunicazione (HTTP/REST) e richiede strumenti di monitoraggio (Prometheus, Grafana) e logging distribuito più evoluti, per garantire la tracciabilità e l’osservabilità dei processi.
Vengono descritte le scelte progettuali e le soluzioni implementative adottate, tra cui Docker Compose per la coordinazione di un sistema multi-container e Airflow per la definizione dei flussi di lavoro attraverso i DAGs, nonché di test di confronto con un approccio monolitico tradizionale.
Le evidenze mostrano vantaggi della scomposizione in microservizi sotto il profilo della manutenibilità e dell’estendibilità della pipeline. Al contempo, viene quantificato il costo aggiuntivo in termini di latenza e risorse computazionali, mettendo in luce i trade-off tra modularità e overhead di comunicazione. L’elaborato si conclude con una valutazione complessiva degli elementi guida verso il paradigma architetturale presentato, di eventuali potenzialità rilevabili in ambienti cloud con piattaforme come Kubernetes, e con proposte di ulteriori sviluppi.
|