Cómo el grupo de infraestructura impulsa el futuro de todo lo que hacemos en Roblox

  • Nuestro grupo de infraestructura diseña, construye y opera los sistemas de almacenamiento, computación, redes, seguridad e ingeniería de productividad subyacentes que impulsan la plataforma global de Roblox.

  • Esos sistemas funcionan a escala y soportan 77.7 millones* de usuarios activos diarios, exabytes de contenido entregado y más de 250 millones de conexiones simultáneas, todo en más de 135 000 servidores.

  • Todo lo que hace el grupo tiene como objetivo maximizar la confiabilidad y eficiencia de nuestros sistemas y ayudar a nuestros ingenieros a ser lo más productivos posible.

Cada segundo de cada día, los ingenieros de producto de Roblox pueden utilizar más de 2000 servicios que se ejecutan en nuestra infraestructura global interna en la nube. Nuestra plataforma soporta millones de lecturas y escrituras, maneja terabytes de rendimiento y procesa decenas de millones de solicitudes HTTP. Cuando nuestros 77.7 millones* de usuarios activos diarios llegan a Roblox, lo hacen en más de 250 millones de conexiones simultáneas.

Todo esto es la escala de los sistemas tecnológicos en Roblox, y el dominio de nuestro grupo de infraestructura. El grupo, conocido como Infra, diseña, construye y opera los sistemas de almacenamiento, computación, redes, seguridad e ingeniería de productividad de nuestra empresa, así como nuestros centros de datos. Infra tiene como objetivo ofrecer sistemas escalables, confiables y fáciles de utilizar. Por encima de todo, el grupo valora tres métricas clave:

  • Disponibilidad: la confiabilidad de nuestros sistemas

  • Costo de servicio: la eficiencia de nuestros sistemas

  • Productividad: lo productivo que es que los ingenieros de Roblox construyan sobre la infraestructura

Como lo expresa el líder del grupo de Infra, el vicepresidente de ingeniería Max Ross, “todo lo que hacemos tiene como objetivo avanzar una o alguna combinación de esas tres cosas: disponibilidad, costo de servicio y productividad”.

Resolver problemas nuevos todos los días

Cuando más de un millón de usuarios se unen a una experiencia Roblox después de una actualización grande, se presenta un fenómeno conocido como “thundering herd”, pero nuestros creadores pueden descansar tranquilos. Eso es porque el trabajo de Infra es garantizar que los ingenieros de productos de Roblox puedan construir una plataforma que ofrezca a nuestros usuarios la mejor experiencia y la más estable. Y eso significa que el equipo de Infra se enfrenta cada día a sistemas complejos y resuelve problemas novedosos.

¿Por qué? Porque no estamos conectando decenas de millones de DAU a una ubicación centralizada de procesamiento de transacciones, un problema ampliamente comprendido. En lugar de eso, los estamos conectando entre sí en tiempo real y a nivel mundial. En total, los miles de servicios de Infra se ejecutan en más de 135 000 servidores en dos centros de datos centrales, numerosos centros de datos perimetrales en todo el mundo, y algunos proveedores públicos de nube.

Disponibilidad: la confiabilidad de nuestros sistemas

Un factor importante en el éxito de nuestro negocio es el tiempo que los usuarios pasan en Roblox, y sabemos que hay una línea directa entre la infraestructura confiable y un usuario que permanece más tiempo.

Queremos un 99.99 por ciento de tiempo de actividad del usuario cada mes, lo que significa que nuestros sistemas no podrían interrumpir más de 0.01 por ciento de horas de interacción. Y nuestros ingenieros de producto esperan que nuestra infraestructura interna en la nube funcione al menos tan bien como cualquier nube pública. “Nuestra infraestructura debe funcionar lo más fluida posible”, dice el director técnico Danny Yuan, “para que otros ingenieros puedan construir productos que deleitarán a nuestros usuarios”.

Una forma en la que buscamos esto es mediante la introducción de la observabilidad y la conectividad de red más cerca de las aplicaciones que impulsan las experiencias de Roblox. Desplegamos sidecares de Envoy proxy junto a cada instancia de servicio y experimentamos con eBPF para observar el estado subyacente de las conexiones entre proxies y servicios externos. Esto nos ayuda a entender y, de manera crucial, reducir las caídas de paquetes, como explica el director técnico Rob Cameron.

El apagón de Halloween

Muchos de los esfuerzos de confiabilidad de Infra se derivan de lo que aprendimos durante nuestro apagón en cascada, de 73 horas de duración en 2021. Ese momento hace unos años terminó siendo un momento decisivo en nuestro enfoque para construir una infraestructura resiliente y para nuestra necesidad de planificar a corto y largo plazo. “Fue un momento tipo paren las prensas”, dice Ross, “solo podíamos pensar en asegurarle a todo el mundo en Roblox que nunca volvería a suceder”.

De un solo monolito Infra a 34 células

Costo de servicio (Eficiencia)

En estos días, las empresas de tecnología rara vez construyen su propia infraestructura de nube, ya que los proveedores de nube pública ofrecen herramientas esenciales como redes, gestión de flotas y así sucesivamente.

Pero a nuestra escala y con nuestra naturaleza descentralizada, es más rentable para nosotros mantener una nube privada. Siempre estamos identificando y superando los desafíos que surgen del mantenimiento de sistemas complejos como este.

Para asegurarnos de obtener el ahorro de costos deseado, debemos ser cuidadosos con el diseño del sistema. Nuestra nube privada global exige una gran atención a la eficiencia para que podamos invertir más en apoyar a nuestra comunidad de creadores y usuarios.

Nos esforzamos por facilitar a los ingenieros de productos la creación de características que puedan funcionar con eficiencia a escala. Al mismo tiempo, estamos inventando herramientas de producción optimizadas que permiten a un equipo pequeño operar una infraestructura a gran escala. “Las personas que no pertenecen a Infra pueden no tener esto muy en cuenta”, dice el director técnico Michael Wolf. “Estamos reinventando dramáticamente casi todas las partes de nuestra infraestructura”.

Eso significa evolucionar desde una configuración bare-metal a una arquitectura en contenedores basada en Linux, con un plano de control común tanto en los centros de datos principales y en los periféricos. Como resultado, los ingenieros de Roblox podrán utilizar un enorme archivo nuevo de herramientas de software de código abierto. Y será más fácil ejecutar varias cargas de trabajo simultáneamente en las mismas máquinas.

“No tenemos miedo de afrontar grandes desafíos”, dice el director técnico Andy Wilcox, aludiendo a la reciente transición de Infra a las nuevas pilas de telemetría, computación y despliegue. “Estas son cosas fundamentales que podemos abordar como una organización de ingeniería con apetito para tomarlas”.

No sucederá de la noche a la mañana. Nos llevará años, pues no podemos simplemente reiniciar Roblox. Nuestras máquinas deben seguir funcionando. Esto requiere un proceso manual de reescritura del software y adaptación a las nuevas herramientas. “Es como cambiar las llantas de un coche”, dice Wolf, “mientras manejas por la autopista”.

Productividad

Cada día, nuestro equipo de ingenieros aborda con eficacia grandes problemas a escala y saca el máximo partido de nuestros sistemas.

Para ello, recopilamos regularmente datos cuantitativos y cualitativos sobre la productividad de nuestros ingenieros. Esto ayuda a identificar los cuellos de botella que pueden mejorarse con soluciones de terceros o con nuestras propias herramientas personalizadas.

Un ejemplo es un panel que publicamos en marzo para abordar los puntos débiles de nuestro proceso de revisión del código. La herramienta ayuda a los ingenieros a realizar un seguimiento de las PR que requieren su revisión en función de numerosos criterios que definimos. También unifica las tareas de revisión de código y permite programar notificaciones. Desde la amplia adopción de este panel, nuestro tiempo de fusión de P75 PR se redujo en un 30 por ciento.

Por supuesto, la característica de productividad de ingeniería definitiva es una infraestructura estable y escalable sobre la que construir, por lo que siempre estamos haciendo inversiones a largo plazo en nuestros sistemas de bajo nivel.

Esto refleja dos de los principales valores de Roblox: Tener una visión a largo plazo y hacer las cosas. Como grupo de infraestructura centrado en el cliente, somos pragmáticos sobre cómo hacer que nuestros clientes sean más exitosos y productivos. Si necesitan algo que no ofrecemos como servicio gestionado, podemos pensar en integrar soluciones de proveedores junto con nuestras herramientas internas en nuestra nube privada.

Pero si bien las soluciones a corto plazo de “mantener las luces encendidas” pueden ser a menudo tentadoras, deben equilibrarse con una ingeniería orientada hacia el futuro.

La recompensa es que maximizar la productividad beneficia a la empresa al tiempo que nos permite llevar a cabo proyectos para cumplir con los objetivos de negocio.

Una cultura que alienta la exploración

Como nuestro objetivo es conectar a mil millones de personas con civilidad y seguridad, siempre habrá grandes desafíos técnicos que abordar. Resolvimos muchos y aprendimos de eso. Pero nuestros ojos están puestos en una infraestructura aún más escalable mientras trabajamos en disminuir la complejidad de nuestro sistema.

Estas desafiantes metas presentarán innumerables lecciones nuevas para los próximos años, especialmente a medida que asumamos el aumento de las cargas de trabajo de IA. Sabemos con certeza que el logro de nuestros objetivos significa que los sistemas de Infra deben evolucionar significativamente a lo largo del tiempo.

Para los ingenieros de Infra, cada proyecto es un punto de transformación potencial para la compañía, y el trabajo de todos es importante. “Infra es una organización donde la gente puede hacer un gran trabajo que sea muy importante para Roblox y nuestros usuarios”, dice Wolf, “y donde nada está fuera de los límites”.

Mentalidad centrada en el cliente

En última instancia, nuestro trabajo es ayudar a otros ingenieros de Roblox a ser más eficaces, hoy y en el futuro, con un mandato para aprender rápidamente las lecciones y ofrecer soluciones derivadas de ellas.

Estamos enfrentando ese desafío de frente. “Quiero asegurarme de que le entreguemos algo de valor a Roblox hoy, este trimestre y este año”, dice Ross. “También quiero asegurarme de que estemos construyendo los cimientos que nos tenga en un buen lugar para los próximos 5 a 10 años”.

* Contando los tres meses anteriores al 31 de marzo de 2024