Articoli

L’architettura di Netflix: come distribuire enormi quantità di dati in maniera reliable e sicura

Hai mai pensato a come fa Netflix ad essere così affidabile, perfetto nelle performance, eccellente nella velocità di ricerca, flessibile nelle richieste di picco quando tutti vogliono guardare la stessa serie?

Ebbene l’architettura di Netflix è sicuramente una delle più complesse in circolazione ma è anche un esempio da seguire per comprendere quali tecnologie si possono utilizzare per risolvere problemi strategici quando si devono processare enormi quantità di dati.

Gli ingegneri di Netflix aggiornano spesso un proprio blog, dove è possibile trovare tantissimi articoli di alto livello tecnico dove vengono descritte alcune soluzioni integrate all’interno della piattaforma, e un portale su Github per condividere con tutta la community i progetti open-source che ha sviluppato.

Le tecnologie in uso nell’architettura di Netflix

Evitando di farti leggere tutto il blog di Netflix, di seguito, ti indichiamo quali sono le tecnologie che usa Netflix e per risolvere quale problema:

  • Mobile & Web: si sfrutta il native language con Swift(Apple) e Kotlin(Android, anche se Kotlin è comunque un linguaggio multipiattaforma) per avere migliori integrazioni e performance nell’ambito mobile, ed il framework React per la modularità e la capacità di costruire eccellenti Web Application.
  • Comunicazione tra FrontEnd e BackEnd: grazie a GraphQL si rende super efficiente la comunicazione tra server e FrontEnd migliorando sensibilmente la User Experience(UX).
  • BackEnd Services: qui le cose si iniziano a fare più complesse e trovano spazio ZUUL( un L7 application gateway sviluppato direttamente da Netflix che ha capacità di dynamic routing, monitoring, resiliency e security), Eureka(un altro servizio realizzato da Netflix al fine di effettuare il discovery, load balancing e failover di middle-tier server) ed il popolare framework Spring Boot al fine di avere un solido ambiente di sviluppo di Web Services e Micro Web Services di tipo Representational State Transfer (RESTful).
  • Databases: anche qui la complessità è elevata e si trovano EV cache( un sistema avanzato di caching realizzato da Netflix), Cassandra ( il famoso database NoSQL di Apache), CockroachDB ( un servizio di database SQL di terze parti con massima affidabilità).
  • Messaging/Streaming: per inviare, processare e mantenere l’architettura in modalità event-driven si utilizza Apache Kafka.
  • Video Storage: Netflix si è affidato ad Amazon utilizzando il servizio S3 di AWS e sfruttando l’Internet Service Provider(ISP) attraverso il proprio servizio Open Connect per “localizzare” lo streaming dei video.
  • Data processing: anche qui le cose sono complesse e sono integrati prodotti come Apache Flink e Apache Spark per processare i dati ed avviare anche funzionalità di machine learning. A questi si aggiungono Tableau per la visualizzazione e AWS Redshift per avviare processi di data driven decision making.
  • Continuous Integration/ Continuous Delivery (CI/CD): Netflix implementa al massimo il concetto di DevOps e sfrutta moltissime tecnologie e servizi come JIRA, Confluence, PagerDuty, Jenkins, Gradle, Chaos Monkey, Spinnaker, solo per citarne i più importanti.

Contattaci subito e senza impegno per sfruttare le tecnologie di Netflix all’interno dei tuoi progetti.

Quali tecnologie di Netflix posso utilizzare in azienda?

La risposta è ovvia: tutte! Ma le scelte architetturali sono sempre figlie delle esigenze di business, dei piani strategici ed economici aziendali, dell’organizzazione aziendale, del budget a disposizione, degli investimenti già fatti e di tantissime altre variabili che devono essere tenute in considerazione.

Certamente guardando l’architettura di Netflix puoi ben comprendere che esiste una soluzione tecnologica avanzata per qualsiasi problema. Analizzare quindi se la tecnologia in uso in Netflix sia la migliore per il tuo caso d’uso è sempre da fare perchè ogni azienda ha esigenze diverse ed il mercato tecnologico ha tutti i prodotti e servizi che possono essere “fit for purpose” e “fit for use”.

L’ampio e variegato panorama delle tecnologie non permette, dall’altro canto, di fare scelte inconsapevoli o semplicemente dettate dalle mode del momento perché tali scelte si traducono spessissimo in fallimenti dei progetti ed in perdite economiche. Per questo consigliamo sempre di affidarsi ad un Solution Architect che ti può aiutare ad effettuare scelte architetturali in linea con le tue esigenze di business.

Contattaci subito e senza impegno per sfruttare le tecnologie di Netflix all’interno dei tuoi progetti.

Glue Labs e le tecnologie di Netflix

Abbiamo utilizzato ed implementato la gran parte delle tecnologie di Netflix in architetture complesse, in ambienti sensibili e critici integrandole con i sistemi già in uso in azienda. Grazie alle competenze specialistiche maturate in tantissimi settori e con numerosi Clienti ti forniamo assistenza e supporto, consulenza tecnica e realizziamo architetture che ti permettono di gestire un enorme flusso di dati con garanzia 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.