Autore

Sommario

Il progetto ha lo scopo di studiare, approfondire e testare le potenzialità della tecnologia Traefik, con particolare riguardo al funzionamento e alla sua integrazione all'interno di uno scenario distribuito.
Traefik è un progetto open source nato come reverse proxy in ambienti microservice-based, in grado di integrarsi con i principali orchestratori di container, quali Docker Swarm e Kubernetes al fine di sviluppare web services scalabili e dinamici.
Il suo utilizzo come reverse proxy (Traefik Proxy) consente di esporre solamente un punto dell'applicazione all'esterno, il quale rimarrà in ascolto delle richieste di vari client ed eseguirà routing poi ad uno o più nodi della rete che saranno in grado di soddisfarle, sulla base di specifiche regole di routing. Traefik si pone come ingress controller per Kubernetes e load balancer tra i vari nodi della rete o cluster aprendo anche alla possibilità di svolgere canary e blue-green deployment. Inoltre sono presenti estensioni al classico Proxy, quali Traefik Mesh e Traefik Pilot. Il primo offre un servizio di mesh all'interno di un cluster Kubernetes, mentre il secondo è un servizio di controllo e gestione per le istanze Traefik in ambienti di produzione.

La prima parte del progetto sarà focalizzata sulla comprensione delle funzionalità di Traefik dal punto di vista teorico della funzionalità stessa, con particolare riferimento ad uno scenario applicativo web-based distribuito.
Ci si concentrerà poi su come queste funzionalità sono implementate da Traefik nella pratica con esempi e attraverso il setup e lo sviluppo di real-world scenarios. Per fare ciò si utilizzerà Docker e un orchestratore (Docker Swarm o Kubernetes). Durante il progetto quindi, si cercherà di familiarizzare anche con queste tecnologie e le conseguenti integrazioni con Traefik.
Verrà testata l'affidabilità della tecnologia con riguardo alla scalabilità e alla fault-tolerance,  Si cercherà di capire inoltre, cosa differenzia Traefik da altri reverse proxy attualmente in uso, quando convenga utilizzare la tecnologia e quando invece no, riportando i pregi ed i difetti dell'applicativo.

Materiale

    

Course

— a.y.

2020/2021

— credits

6

— cycle

2nd cycle

— language

wit.gif

Teachers

— professor

Andrea Omicini

— tutors

Giovanni Ciatto

Context

— university

Alma Mater Studiorum-Università di Bologna

— campus

Cesena

— department / faculty / school

DISI

— 2nd cycle

8614 Ingegneria e scienze informatiche 

URLs & IDs

AMS page
course on Virtuale
virtual room
course timetable

— course ID

58260

Partita IVA: 01131710376 - Copyright © 2008-2021 APICe@DISI Research Group - PRIVACY