Architettura Microservizi Airbnb. Jessica Tai, responsabile dell’ingegneria di Airbnb, ha recentemente parlato alla QCon di come l’architettura di Airbnb sia cambiata nel corso degli anni e abbia seguito lo sviluppo dell’azienda.
L’architettura a microservizi di Airbnb ha attraversato le seguenti fasi:
- Monolite (2008-2017)
Nei primi anni, dalla sua nascita nel 2008 fino a circa il 2017, Airbnb ha operato su un’architettura monolitica, utilizzando principalmente un monolite Ruby on Rails. Inizialmente questa configurazione è stata utile all’azienda, in quanto permetteva agli ingegneri full-stack di gestire le funzionalità end-to-end all’interno di un unico repository. Tuttavia, con la rapida crescita di Airbnb e l’ingresso in una fase di iper-crescita, i limiti del monolite sono diventati sempre più evidenti. L’applicazione è diventata sempre più complessa e strettamente accoppiata, con conseguenti problemi di scalabilità (come la delimitazione dei team sulla base di codice). Inoltre, uno dei problemi più critici era la lentezza delle implementazioni, che passavano da pochi minuti a diverse ore o addirittura a un giorno, danneggiando gravemente la produttività degli sviluppatori. Tutto ciò ha influenzato la decisione di Airbnb di passare a un’architettura a microservizi. - Microservizi (2017-2020)
La categorizzazione dei servizi ha segnato questo passaggio in quattro tipi distinti:
- Servizio di recupero dati per la lettura/scrittura di dati
- Business logic service per combinare i dati da più fonti
- Workflow per l’orchestrazione di vari servizi.
Una strategia chiave in questa transizione è stata la chiara proprietà di ogni servizio, con team specifici responsabili dei singoli servizi. Questa ristrutturazione ha portato a una configurazione più specializzata dei team, che si è allontanata dall’approccio full-stack per passare a team focalizzati sul backend e su servizi di dati specifici. Nonostante i vantaggi di una maggiore scalabilità e velocità di sviluppo, dopo qualche anno Airbnb ha dovuto affrontare nuove sfide nella gestione della complessità e delle dipendenze di molti servizi. Il problema principale era che per realizzare una funzionalità end-to-end era necessario conoscere diversi servizi, quindi dovevano essere coinvolti più team, che dovevano avere le stesse priorità, il che richiedeva tempo per la gestione.
Micro + Macroservizi (2020 – oggi)
In risposta a queste sfide emergenti, intorno al 2020 Airbnb ha evoluto la sua strategia verso un modello ibrido che combina micro e macroservizi. Questo approccio era incentrato sull’unificazione delle API attraverso un’interfaccia GraphQL, con un aggregatore centrale di dati al centro (macroservizio). I servizi di backend sono stati ristrutturati per interagire attraverso questa interfaccia GraphQL, semplificando il flusso dei dati e le interazioni con i servizi. Ciò significa che i servizi di backend ricevono i dati dal servizio aggregatore (chiamato blocco di servizio), che poi comunica con altri microservizi per ottenere i dati. Troviamo una rappresentazione dell’ Architettura Microservizi Airbnb nell’immagine sotto.

Innovaformazione, scuola informatica specialistica promuove la cultura dello sviluppo software a microservizi fra aziende e privati. Nell’offerta formativa rivolta esclusivamente alle aziende, trovate l’elenco Corsi Microservizi al seguente LINK.
INFO: info@innovaformazione.net – Tel. 3471012275 (Dario Carrassi)
Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:
Articoli correlati
Cosa è Laminas
Strumenti AI per sistemisti
Integrare l’AI nei propri software
Body Rental SAP
Cosa è ChatGPT Atlas
