Riassunto analitico
Il cloud in questi anni è diventato molto popolare e le applicazioni di oggi stanno raggiungendo livelli di complessità e sofisticazione sempre più elevati. Per questi motivi stanno diventando popolari nuove figure che aiutino a semplificare e gestire i processi di sviluppo. Questa posizione fa uso di strumenti e automazioni ed è ricoperta dal DevOps Engineer. Questa figura si inserisce tra lo sviluppatore (Dev) e le operazioni (Ops) tentando di aumentare l'intera produttività del team.
In questa tesi si propone una soluzione che applica i principi di DevOps ad una situazione aziendale, con l'obiettivo di automatizzare l'esecuzione di tasks ricorrenti. L'incastro di diverse tecnologie, ognuna responsabile della risoluzione di una parte del problema, rendono l'obiettivo raggiungibile. Si parla di Apache Airflow usato come orchestratore e schedulatore di tasks, installato su un cluster Kubernetes, monitorato tramite Prometheus e Grafana con infrastruttura definita e applicata tramite Terraform. Bitbucket inoltre è utilizzato per automatizzare il processo di aggiornamento e mantenimento dell'infrastruttura.
Si è ottenuto un sistema, che possa eseguire centinaia di tasks altamente configurabili nel cloud ridimensionandosi in base all'utilizzo, tentando di ridurre al minimo lo spreco di risorse. Inoltre si esplorerà una soluzione alternativa che fa uso di pratiche GitOps per la gestione e aggiornamento delle componenti installate nel cluster Kubernetes.
|