L'infrastruttura che supporta esperienze da record

Raggiungere nuove vette ogni fine settimana su Roblox

La capacità di Roblox di scalare e supportare decine di milioni di utenti che giocano contemporaneamente in milioni di esperienze uniche non deriva da una sola innovazione. È la somma di una cultura dell'innovazione più ampia e di mille piccoli dettagli curati con attenzione in tutta l'azienda. È così che abbiamo costruito l'infrastruttura che attualmente supporta un traffico da record per molte delle esperienze su Roblox. Una di queste esperienze, Grow a Garden, ha recentemente battuto il Guinness World Records per il maggior numero di giocatori simultanei in un videogioco, con 21,6 milioni di utenti che giocavano contemporaneamente. E nel frattempo, la piattaforma Roblox ha continuato a stabilire nuovi record di picco di utenti simultanei (come ha fatto negli ultimi due decenni), superando di recente i 30 milioni di giocatori contemporanei.

Roblox affronta sfide uniche nel costruire e mantenere infrastrutture per milioni di esperienze create dai creatori, tra cui Dress to Impress, Adopt Me e Dead Rails, che richiedono metodologie di ingegneria innovative. La piattaforma supporta decine di aggiornamenti orari e oltre 30 milioni di utenti simultanei, grazie a un'infrastruttura che si adatta rapidamente ai picchi di traffico imprevisti. Questa infrastruttura deve essere in grado di gestire situazioni di traffico intenso, con oltre 21 milioni di utenti che si collegano contemporaneamente a una singola esperienza (mentre gli aggiornamenti del codice provengono da creatori indipendenti). Gli ingegneri di Roblox creano soluzioni innovative mettendo in discussione le idee tradizionali e ispirandosi ai nostri quattro valori fondamentali.

Infrastruttura a Roblox

Gli ingegneri Roblox gestiscono 24 centri dati periferici in tutto il mondo, che gestiscono i server di gioco. Quando un utente si unisce a un'esperienza, viene abbinato al data center più vicino e all'istanza più appropriata all'interno del centro per ridurre al minimo la latenza. Gestiamo inoltre due data center principali, molto più grandi, che si occupano di servizi centralizzati come il sito web, gli algoritmi di raccomandazione, i filtri di sicurezza, l'economia virtuale e la piattaforma di pubblicazione, indispensabili per il funzionamento dei centri dati periferici. Una rete privata globale interconnette tutti i data center periferici ai data center principali, con i data center periferici che fungono da firewall per proteggere i servizi in esecuzione nel data center principale.

Adotta una visione lungimirante: previsione proattiva della capacità

In un mondo ideale, i creator non dovrebbero mai preoccuparsi della capacità: l'infrastruttura dovrebbe essere invisibile per loro, dovrebbe lavorare dietro le quinte. Quando un creatore pubblica un'esperienza su Roblox, il nostro compito è garantire la capacità necessaria, a prescindere dal numero di giocatori che parteciperanno. All'inizio, pianificavamo la capacità annualmente per l'anno successivo o al massimo per i due anni seguenti. Ma negli ultimi anni, esperienze di successo come Dress to Impress, Fisch, Dead Rails e Grow a Garden ci hanno portato a ripensare le nostre linee guida per la pianificazione della capacità.

Rimanendo fedeli al nostro impegno verso il futuro, anticipiamo le esigenze di capacità con un margine di due anni, bilanciando la domanda degli utenti con un utilizzo efficiente dei server. Il nostro ciclo di pianificazione prevede l'acquisizione di data center, l'aggiornamento dell'hardware dei server e il networking fisico, con nuovi data center come quello in Brasile pianificati con anni di anticipo. Il team di rete mantiene anche una capacità "oscura" per garantire un funzionamento continuo nonostante problemi come i tagli ai cavi di rete.

La capacità che Roblox ha oggi si basa su previsioni fatte due anni fa, quando non potevamo prevedere che le esperienze sarebbero passate da sconosciute a enormemente popolari nel giro di poche settimane. Giochi popolari come Grow a Garden e Dress to Impress, che hanno più che raddoppiato il numero di giocatori simultanei da 13,9 milioni ad aprile a 30,6 milioni a giugno 2025, non esistevano quando sono state fatte queste previsioni sulla capacità. Ad esempio, a marzo 2025, Dead Rails ha raggiunto 1 milione di utenti simultanei, utilizzando tutta la capacità della CPU disponibile.

Imparando da questi picchi di popolarità, siamo passati a un ciclo di pianificazione più agile. Per supportare costantemente il numero record di giocatori su Roblox, il team di ingegneri segue un rigoroso ciclo settimanale di pianificazione, test e ottimizzazione della capacità. Il lunedì è dedicato alle revisioni degli incidenti, mentre il martedì si passa alla pianificazione della capacità. Durante la settimana, si svolgono continui chaos test. Il giovedì ci si concentra sulla revisione della capacità per eventuali aggiornamenti di grandi dimensioni che i nostri creatori ci hanno segnalato. Il venerdì vengono fornite ulteriori risorse cloud per garantire che la piattaforma sia pronta per il picco di utilizzo del fine settimana. Durante la settimana, continuiamo a rilasciare funzionalità completamente nuove e non blocchiamo la distribuzione continua da parte di tutti gli ingegneri.

Rispetta la community: capacità senza sforzo per i creatori

La limitazione è un concetto molto accettato in informatica. Ma questa è la leva più abusata e incompresa del settore. Quando i nuovi ingegneri entrano a far parte di Roblox, le loro prime soluzioni spesso prevedono frasi come: "Se solo potessimo dire ai nostri creatori di modificare questa configurazione o rallentare i loro eventi...". Gli ingegneri veterani di Roblox spiegano con gentilezza il nostro valore di rispetto per la comunità, sottolineando che non imponiamo ai nostri creatori cosa fare.

Ad esempio, la maggior parte dei sistemi di gioco ha una soluzione semplice per il matchmaking quando milioni di giocatori fanno clic su Play contemporaneamente. Limitano le connessioni, fanno aspettare i giocatori o li inviano a server casuali saltando l'algoritmo di matchmaking. In Roblox, facciamo il contrario. Abbiamo riprogettato i nostri sistemi di matchmaking per gestire orde di giocatori scatenati. Alla sua massima capacità, questo sistema analizza fino a 4 miliardi di possibili combinazioni di unione al secondo. Anni fa, abbiamo fissato l'obiettivo di 10 milioni di partecipazioni in 10 secondi e continuiamo ad andare verso tale obiettivo.

Per evitare limitazioni dovute alla capacità, stiamo sperimentando il cloud bursting come parte della nostra transizione verso un'infrastruttura cellulare, consentendo una scalabilità dinamica ed efficiente in termini di calcolo. Questa architettura gestisce i picchi di domanda abbinando gli utenti alle celle dei data center on-premise e cloud edge. Stiamo lavorando per un avvio e uno smontaggio completamente automatizzati dei data center edge basati su cloud che sono completamente astratti per l'algoritmo di matchmaking.

Un altro esempio è il nostro sistema di filtraggio del testo, che alla sua massima capacità gestisce 250.000 richieste al secondo. È un'ampia inferenza di modelli capace di gestire 250.000 token con finestre di contesto in continua espansione. E con oltre 300 pipeline di inferenza IA in produzione, i proprietari di servizi Roblox investono molto tempo nella ricerca del mix ideale di profili di inferenza tra GPU e CPU. Anche in condizioni di picco, gli ingegneri di Roblox rispettano la comunità dando priorità alla libertà dei creatori e alla sicurezza degli utenti.

Datti da fare: stress del sistema per la resilienza

Con la nostra pianificazione, creiamo strumenti e algoritmi in grado di supportare gli aggiornamenti più entusiasmanti dei creator. Ma dobbiamo essere sicuri che questi sistemi possano resistere anche ai picchi più grandi o alle interruzioni di un singolo servizio. Le informazioni raccolte durante i periodi di utilizzo di picco su oltre 1.600 microservizi aiutano a individuare i servizi che necessitano di ulteriori stress test.

Fedeli al nostro valore di "darsi da fare", ogni giorno prendiamo alcuni di questi servizi e ne limitiamo la capacità in produzione. Osserviamo gli attributi e li correggiamo prima del fine settimana. Questo processo è noto come il test della capacità effettiva (TACO) del martedì. Il nostro team di affidabilità si occupa anche della verifica continua della capacità (C3). Ogni team di ingegneri utilizza una dashboard C3 per prevedere e gestire la capacità della CPU dei propri servizi. Ciò consente ai proprietari dei servizi di imparare continuamente dall'ultimo picco per aumentare o diminuire la capacità per il picco successivo. Abbiamo anche introdotto un sistema che traccia i modelli di chiamata nel motore principale di Roblox per le nuove versioni. Questo ci aiuta a essere meglio preparati durante un aggiornamento.

Nonostante tutta questa preparazione, capita ancora occasionalmente di affrontare situazioni in cui l'imprevedibilità dei modelli di traffico può portare un singolo servizio o flusso di prodotti a bloccare l'intera piattaforma. Ad esempio, la pipeline di analisi di 2 trilioni di eventi potrebbe registrare un aumento del traffico del 30% a causa di un aggiornamento popolare. È qui che i nostri meccanismi di resilienza, come il controllo adattivo della concorrenza (ACC), l'interruttore automatico e i tentativi di eliminazione, entrano in azione per proteggere la piattaforma. Quest'anno abbiamo anche creato una piattaforma di chaos testing per rafforzare la resilienza e la scalabilità della nostra infrastruttura, iniettando errori in modo casuale, esaurendo le risorse e terminando in modo casuale i processi in produzione.

Assumersi la responsabilità: tutti al lavoro

Passiamo tutta la settimana a testare e prepararci per questi grandi aggiornamenti del fine settimana. Ma quando arriva il weekend, abbiamo ancora del lavoro da fare. Prima degli aggiornamenti del fine settimana, gli ingegneri di Roblox lavorano insieme per monitorare le modifiche imminenti e stimare la capacità rimanente, aggiungendo risorse cloud extra quando necessario per gestire milioni di giocatori in più attraverso data center virtuali periferici.

Il venerdì decidiamo se è necessario aggiungere ulteriore capacità con risorse cloud. Questo processo fornisce una chiara indicazione al nostro team di cloud ibrido per aumentare la capacità extra in modo da gestire milioni di giocatori in più. In ogni momento, i nostri 24 data center periferici fisici sono operativi, ma dopo tutti i test potremmo decidere di avere bisogno di ulteriori data center periferici. Non è possibile installare e configurare server in 12 ore, quindi collaboriamo con i nostri partner cloud per creare più data center virtuali periferici. Li testiamo il venerdì e poi siamo pronti per il fine settimana.

Nel vero spirito di assunzione di responsabilità, tutti, compresi i nostri dirigenti di alto livello, fanno turni di reperibilità, anche nei fine settimana. L'aumento di milioni di utenti il sabato può spesso innescare centinaia di avvisi. I team affrontano preventivamente questi avvisi, permettendoci di gestire le sfide durante un importante aggiornamento o un picco storico della piattaforma.

Come spesso si dice, Leonardo da Vinci affermò: \"L'apprendimento non esaurisce mai la mente\". Ogni picco ci ha spinto a imparare e sviluppare nuove tecniche per rendere la nostra infrastruttura più solida e invisibile. I nostri creatori pubblicano o aggiornano e, grazie alla magia di un'infrastruttura invisibile, decine di milioni di utenti iniziano a godere di un'esperienza completamente nuova quasi immediatamente. Siamo eternamente grati ai nostri creatori e utenti per averci sfidato a superare i limiti dell'informatica.