FOSDEM 2019: Netflix e FreeBSD

Il 2 ed il 3 febbraio si è svolto a Bruxelles il FOSDEM, evento annuale dedicato al software free ed Open Source.

Per l’occasione, Netflix ha tenuto un talk in merito al loro utilizzo di FreeBSD che, per chi ancora non lo sapesse, è l’OS su cui si basa tutta la piattaforma di streaming, grazie alle sue eccellenti performance network.

In dettaglio, Netflix si è affidata a FreeBSD per costruire la sua Content Delivery Network (CDN), chiamata Open Connect.

Una CDN è un gruppo di server distribuiti geograficamente che lavorano insieme per fornire in tempi rapidi dei contenuti. Una CDN ben configurata permette anche di evitare attacchi che potrebbero causare disservizio (ad esempio DDOS).

Netflix, invece di utilizzare software commerciale, ha preferito farsi una CDN tutta sua, con tanto di hardware “custom”. L’hardware varia leggermente tra appliance e storage ma in sostanza:

  • Motherboard: Supermicro
  • RAM: Micron
  • CPU: Intel
  • HDD (dove presenti): HGST
  • SDD: SanDisk
Una delle appliance di Open Connect

La cosa davvero singolare è che Netflix ha basato (e continua a basare) tutta l’infrastruttura sulla CURRENT di FreeBSD che, a dispetto del nome che potrebbe trarre in inganno qualcuno, non è la versione STABLE, bensì quella di sviluppo!

Dunque, un commit sulla versione CURRENT, di solito, viene deployato sulla CDN di Netflix in circa 5-15 settimane, cercando di tenere sincronizzati Open Connect e FreeBSD almeno una volta al mese.

Usare una development in production suona effettivamente piuttosto inquietante (almeno alle orecchie di un sistemista) ma Netflix assicura che ci sono dei buoni motivi:

  • iniziare ad utilizzare prima le nuove feature
  • meglio accorgersi prima di un bug che dopo
  • minori conflitti durante i merge
  • costi di merging notevolmente ridotti

Anche Netflix, così come Google con Debian, si impegna a caricare in futuro tutto il codice possibile per aiutare lo sviluppo di FreeBSD e le sue derivate

Non siete ancora convinti che i sistemi *nix facciano davvero la differenza?

Using FreeBSD and commodity parts, we achieve 90 Gb/s serving TLS-encrypted connections with ~55% CPU on a 16-core 2.6-GHz CPU.

Usando FreeBSD ed alcune sue componenti, raggiungiamo 90Gb/s servendo connessioni crittografate TLS, utilizzando il ~ 55% di una CPU a 16-core 2.6-GHz.

Tags: , ,