Come il Gruppo infrastrutture guida il futuro delle nostre attività in Roblox
-
Il nostro Gruppo infrastrutture progetta, costruisce e gestisce i sistemi di archiviazione, calcolo, rete, sicurezza e produttività ingegneristica che alimentano la piattaforma globale di Roblox.
-
Questi sistemi operano su scala, supportando 77,7 milioni* di utenti attivi giornalieri, exabyte di contenuti distribuiti e oltre 250 milioni di connessioni simultanee, il tutto su più di 135.000 server.
-
Tutto il lavoro del gruppo è volto a ottimizzare l'affidabilità e l'efficienza dei nostri sistemi e ad aiutare i nostri ingegneri a essere il più produttivi possibile.
Ogni secondo di ogni giorno, gli ingegneri di produzione di Roblox possono utilizzare più di 2.000 servizi attivi sulla nostra infrastruttura cloud interna globale. La nostra piattaforma supporta milioni di operazioni di lettura e scrittura, gestisce terabyte di throughput ed elabora decine di milioni di richieste HTTP. Quando i nostri 77,7 milioni* di utenti attivi giornalieri accedono a Roblox, lo fanno attraverso più di 250 milioni di connessioni simultanee.
Tutto questo costituisce la scala dei sistemi tecnologici di Roblox e il dominio del nostro Gruppo infrastrutture. Conosciuto come Infra, il gruppo progetta, costruisce e gestisce i sistemi di archiviazione, calcolo, rete, sicurezza e produttività ingegneristica della nostra azienda, nonché i nostri centri dati. L'obiettivo di Infra è offrire sistemi modulari, affidabili e facili da usare. In particolare, il gruppo privilegia tre metriche chiave:
-
Disponibilità: l'affidabilità dei nostri sistemi.
-
Costo del servizio: l'efficienza dei nostri sistemi.
-
Produttività: la produttività garantita agli ingegneri di Roblox che costruiscono sulla base dell'infrastruttura.
Come spiega Max Ross, vicepresidente del gruppo Infra: "Tutto ciò che facciamo ha lo scopo di incrementare uno o una combinazione di questi tre elementi: disponibilità, costo del servizio e produttività."
Tutto ciò che facciamo ha lo scopo di incrementare uno o una combinazione di questi tre elementi: disponibilità, costo del servizio e produttività.
Risolvere nuovi problemi ogni giorno
Quando più di un milione di utenti si unisce a un'esperienza popolare di Roblox dopo un grande aggiornamento, un fenomeno noto come "mandria inferocita", i nostri creatori non devono preoccuparsi. Questo perché il lavoro di Infra è garantire che gli ingegneri dei prodotti Roblox realizzino una piattaforma capace di offrire ai nostri utenti l'esperienza migliore e più stabile. Ciò significa che il team Infra gestisce sistemi complessi e risolve nuovi problemi ogni giorno.
Perché? Questo perché noi non colleghiamo decine di milioni di utenti a una postazione centralizzata di elaborazione delle transazioni, un problema che è ampiamente riconosciuto. Al contrario, li connettiamo tra loro in tempo reale e in tutto il mondo. Complessivamente, le migliaia di servizi di Infra vengono eseguiti su oltre 135.000 server in due centri dati principali, svariati centri dati periferici in tutto il mondo e alcuni provider cloud pubblici.
Disponibilità: l'affidabilità dei nostri sistemi
Un fattore importante per il successo della nostra attività è il tempo trascorso dagli utenti su Roblox e sappiamo che esiste un rapporto diretto tra l'affidabilità di un'infrastruttura e il tempo di permanenza di un utente.
Vogliamo mantenere un tempo di attività mensile degli utenti del 99,99%, quindi i nostri sistemi non devono interrompere più dello 0,01% delle ore di utilizzo. E i nostri ingegneri di prodotto si aspettano che la nostra infrastruttura cloud interna funzioni bene almeno quanto qualsiasi cloud pubblico. "La nostra infrastruttura deve funzionare nel modo più fluido possibile", afferma il direttore tecnico Danny Yuan, "in modo che gli altri ingegneri possano realizzare prodotti in grado di soddisfare i nostri utenti".
La nostra infrastruttura deve funzionare nel modo più fluido possibile in modo che gli altri ingegneri possano realizzare prodotti in grado di soddisfare i nostri utenti.
Uno dei modi in cui stiamo perseguendo questo obiettivo è avvicinando l'osservabilità e la connettività di rete alle applicazioni che alimentano le esperienze di Roblox. Stiamo implementando servizi sidecar di Envoy Proxy accanto a ogni istanza di servizio e stiamo testando l'uso di eBPF per osservare lo stato fondamentale delle connessioni tra i proxy e i servizi esterni. Questo ci aiuta a riconoscere e, cosa fondamentale, a ridurre i cali di pacchetti, spiega il direttore tecnico Rob Cameron.
Il blackout di Halloween
Molti degli sforzi di Infra per l'affidabilità derivano da ciò che abbiamo imparato durante il blackout a cascata di 73 ore avvenuto nel 2021. Quel momento di alcuni anni fa si è rivelato fondamentale per il nostro approccio alla costruzione di infrastrutture resilienti e per la nostra necessità di pianificare a breve e lungo termine. "È stato un momento di arresto totale", spiega Ross, "l'unica cosa a cui dobbiamo pensare fino a quando non riusciremo a garantire a tutti i membri di Roblox che non accadrà mai più."
Da un singolo monolite di Infra a 34 celle
Costo di servizio (efficienza)
Al giorno d'oggi, le aziende tecnologiche costruiscono raramente una propria infrastruttura cloud, dato che i fornitori di cloud pubblici offrono strumenti essenziali come la rete, la gestione della flotta e così via.
Tuttavia, per le nostre dimensioni e per la nostra natura decentralizzata, è più conveniente mantenere un cloud privato. Cerchiamo sempre di individuare e superare le sfide che derivano dalla manutenzione di sistemi complessi come questo.
Per essere certi di ridurre i costi nel modo desiderato, dobbiamo riflettere sulla progettazione dei sistemi. Il nostro cloud privato globale richiede un'attenzione particolare all'efficienza, per consentirci di investire maggiormente nel supporto alla nostra community di creatori e utenti.
Il nostro obiettivo è rendere più semplice per gli ingegneri di prodotto realizzare funzioni eseguibili in modo efficiente su scala. Allo stesso tempo, stiamo inventando una strumentazione di produzione semplificata che consenta a un piccolo team di gestire un'infrastruttura su larga scala. "Le persone esterne a Infra probabilmente non lo sanno", afferma il Direttore tecnico Michael Wolf "ma stiamo completamente reinventando quasi ogni parte della nostra infrastruttura."
Ciò significa passare da una configurazione bare metal a un'architettura containerizzata su base Linux con un piano di controllo comune per i data center centrali e periferici. Di conseguenza, gli ingegneri di Roblox avranno a disposizione un enorme nuovo archivio di strumenti software open-source. E sarà più facile gestire più carichi di lavoro contemporaneamente sulle stesse macchine.
"Non abbiamo paura di affrontare sfide impegnative," spiega il direttore tecnico Andy Wilcox riguardo alla recente transizione di Infra verso nuovi sistemi di telemetria, calcolo e distribuzione. Si tratta di aspetti fondamentali che siamo in grado di affrontare grazie all'incredibile volontà della nostra organizzazione ingegneristica.
Non è qualcosa che può avvenire dal giorno alla notte. Ci vorranno anni, dato che non possiamo semplicemente riavviare Roblox. Le nostre macchine devono rimanere attive e funzionanti. È necessario un processo manuale di riscrittura del software e di adattamento a nuovi strumenti. "È come cambiare le gomme a una macchina", spiega Wolf "mentre si sta già guidando in autostrada."
Produttività
Ogni giorno, il nostro team di ingegneri affronta con efficienza grandi problemi su scala e ricava il massimo possibile dai nostri sistemi.
Affinché questo accada, raccogliamo regolarmente dati quantitativi e qualitativi sulla produttività dei nostri ingegneri. Questo aiuta a identificare i blocchi che possono essere superati tramite soluzioni di terze parti o i nostri strumenti ad hoc.
Un esempio è una dashboard rilasciata a marzo per risolvere i problemi degli ingegneri con il nostro processo di revisione del codice. Lo strumento aiuta gli ingegneri a tenere traccia delle richieste pull che richiedono la loro revisione in base ai vari criteri da noi definiti. Inoltre, uniforma le attività di revisione del codice e consente di programmare le notifiche. Dall'adozione di questa dashboard, i tempi di unione per le richieste pull p75 sono diminuiti del 30%.
E naturalmente, il massimo della produttività ingegneristica è un'infrastruttura stabile e modulare su cui costruire, quindi investiamo sempre a lungo termine nei nostri sistemi di basso livello.
Questo riflette due dei principali valori di Roblox: guardare al futuro e ottenere risultati. In quanto gruppo infrastrutture che mette al centro il cliente, abbiamo un approccio pragmatico per rendere i nostri clienti produttivi e di successo. Se hanno bisogno di qualcosa che noi non offriamo come servizio gestito, possiamo valutare se integrare le soluzioni dei fornitori con i nostri strumenti interni nel nostro cloud privato.
Ma anche se questo tipo di soluzioni a breve termine può essere allettante, devono essere bilanciate da un'ingegneria lungimirante.
La ricompensa è data dal fatto che massimizzare la produttività va a vantaggio dell'azienda e ci permette di portare a termine i progetti per raggiungere gli obiettivi aziendali.
Una cultura che incoraggia l'esplorazione
Il nostro obiettivo è connettere un miliardo di persone con civiltà e sicurezza, perciò ci saranno sempre sfide tecniche impegnative da affrontare. Ne abbiamo già superate tante e abbiamo imparato molto. Ma il nostro sguardo è puntato su un'infrastruttura ancor più modulare, oltre che sul ridurre la complessità dei nostri sistemi.
Questi obiettivi contrastanti offriranno infinite nuove lezioni negli anni a venire, soprattutto man mano che gestiremo carichi di lavoro sempre maggiori con l'IA. E sappiamo per certo che, se vogliamo raggiungere questi obiettivi, i sistemi di Infra dovranno evolversi significativamente nel tempo.
Per gli ingegneri Infra, ogni progetto è un potenziale punto di trasformazione per l'azienda e il lavoro di ognuno è importante. "Infra è un'organizzazione in cui le persone possono fare qualcosa di importante che conta davvero per Roblox e i nostri utenti," afferma Wolf, "e in cui nulla è davvero off limits."
Approccio incentrato sul cliente
Fondamentalmente, il nostro lavoro è aiutare gli altri ingegneri di Roblox a essere più efficienti, sia oggi che in futuro, cercando di imparare in fretta e di fornire soluzioni basate su ciò che abbiamo appreso.
Affrontiamo questa sfida con determinazione. "Voglio fare in modo di fornire valore aggiunto a Roblox oggi, questo trimestre e quest'anno", afferma Ross. "Voglio anche essere certo che stiamo costruendo delle fondamenta che ci permetteranno di essere in ottima forma per i prossimi 5-10 anni."
* A partire dai 3 mesi terminati il 31 marzo 2024