Aziende che usano i Microservizi: Netflix

Aziende come Amazon, Netflix e Zalando devono il proprio successo all’adozione di architetture a microservizi. Partite inizialmente da un approccio monolitico, hanno smantellato le proprie applicazioni originali per ottenere incredibili benefici in termini di scalabilità, agilità aziendale e redditività.
Perché passare da architettura monolitica a microservizi
Alle origini, questi pionieri dei microservizi avevano progettato le proprie architetture come un singolo monolite. In questo caso, tutto il codice riferito alle diverse funzioni dell’applicazione è “intrecciato” in un unico blocco, difficile da districare. Come abbiamo spiegato in questo post, ogni modifica o l’aggiunta di un nuovo servizio comporta il rischio di interrompere il funzionamento dell’intera applicazione.
Quando la domanda e la base utenti di un servizio digitale inizia a crescere rapidamente, aumenta il numero di interventi necessari sull’app. Quanti più aggiornamenti e ridimensionamenti si rendono necessari, tanto più ci si avvicina a un punto per cui tenere il passo è impossibile. Con notevoli implicazioni a livello di costi, user experience e business continuity. E’ proprio questo lo scenario che ha spinto diverse big tech a introdurre le architetture a microservizi.
Prima ancora che questo termine esistesse nella community dev, è stato chiaro che questo tipo di architettura fosse fondamentale per poter scalare in certi mercati digitali.
Un esempio pratico: Netflix
Grazie a un’architettura di microservizi basata su funzioni cloud AWS, quella che oggi conosciamo come LA piattaforma di streaming ha potuto automatizzare la manutenzione dei server e ottenere un’incredibile affidabilità. Tra i pionieri nell’utilizzo di questo approccio, ha anche sviluppato internamente una serie di tool, resi in parte disponibili in modalità Open Source.
Dal problema all’opportunità
Nel 1997 Netflix era nata come sito di noleggio DVD: il cloud era ancora un sogno. Dopo poco più di dieci anni, con l’espansione della propria base utenti, la mole crescente di informazioni diventa impossibile da gestire nei propri data center, causando enormi problemi.
“Il nostro viaggio verso il cloud”, spiegano dall’azienda “è iniziato nell’agosto del 2008, quando abbiamo riscontrato un grave danneggiamento del database e per tre giorni non abbiamo potuto spedire i DVD ai nostri abbonati. È stato allora che ci siamo resi conto che dovevamo abbandonare i singoli punti di errore su scala verticale, come i database relazionali nel nostro data center, verso sistemi distribuiti nel cloud altamente affidabili e scalabili orizzontalmente.”
Le fasi della migrazione
In particolare, il passaggio da monolite a microservizi, iniziato nel 2009, ha richiesto due anni di lavoro. Le applicazioni sono state scomposte in centinaia di singoli servizi indipendenti, ciascuno riferito a una specifica funzione. Autenticazione dell’utente, suggerimento di contenuti, codifica video, riproduzione, fatturazione e così via.
Il primo passo è stato quello di migrare sui server cloud AWS la propria piattaforma di codifica video non-customer-facing (ossia una parte della propria tecnologia non rivolta ai clienti), come microservizio indipendente. Gradualmente, Netflix ha poi convertito in microservizi anche i propri sistemi customer-facing.

Questa scelta ha portato la piattaforma a diventare una delle prime aziende cloud-native con un’architettura a microservizi. Oggi è in grado di trasmettere circa 6 miliardi di ore di video settimanali a oltre 220 milioni di iscritti in tutto il mondo. I vantaggi di ripensare tutta l’architettura in questi termini sono stati diversi, vediamo i principali.
Quali vantaggi ha ottenuto Netflix nel passaggio ai microservizi
- Scalabilità: è stata ottenuta una scalabilità senza precedenti, in grado di supportare milioni di richieste simultaneamente in tutto il mondo.
- Agilità: la nuova architettura ha permesso di testare e introdurre nuove funzioni e aggiornamenti, riducendo il time-to-market e favorendo continue release e relativi test. Un aspetto imprescindibile per qualsiasi realtà innovativa. Ancora di più per una come Netflix, sempre proiettata su nuovi contenuti e format di intrattenimento inediti
- Ridondanza: per far fronte ad errori e malfunzionamenti, Netflix distribuisce i propri microservizi su più zone di disponibilità nella regione del cloud provider. Ogni regione AWS è costituita da un minimo di tre zone di disponibilità isolate e fisicamente separate all’interno di un’area geografica. Questo permette di garantire ovunque un servizio ininterrotto, mentre l’azienda fa fronte alla risoluzione dei problemi sul singolo microservizio.
- Elasticità: grazie alla flessibilità del cloud, Netflix può gestire i costi in modo più efficiente e basandosi sull’effettiva domanda dei propri servizi
- User experience: grazie a questo approccio, combinato ad algoritmi di AI e ML, Netflix può facilmente tenere traccia delle attività degli utenti, della loro cronologia e di altri dati per offrire raccomandazioni in tempo reale, migliorandone l’esperienza. Inoltre, può monitorare la popolarità dei propri contenuti, per produrre film e serie che le persone vogliono davvero guardare
Cosa ci insegna il caso di Netflix
In definitiva, il passaggio ai microservizi su cloud ha consentito all’azienda di cambiare modello di business, diventando ciò che è oggi. E definendo un nuovo modello, la subscription economy.
Scomporre l’architettura monolitica di un’azienda in microservizi è un lavoro complesso, che richiede competenze avanzate. Oggi però è sia semplificato che nettamente accelerato da approcci ormai consolidati come lo Strangler Fig Pattern.
In ELEVA, ad esempio, lo applichiamo così:
- Analizziamo con l’azienda il monolita
- Individuiamo qualcosa di non business critical
- Creiamo uno o più microservizi, trasformando l’architettura gradualmente
- Facciamo coesistere monolita e microservizi, monitorando il funzionamento del servizio
- Eliminiamo il vecchio
- Ripetiamo fino a quando ha senso scomporre
Questo approccio funziona non solo per giganti come Netflix, ma per qualsiasi dimensione aziendale e del software. E può essere la chiave di volta per permettere al proprio business di scalare.