Cómo escalar servicios en línea para millones de usuarios sin perder datos vitales

El portal europeo de juegos de apuestas bet365 habla sobre cómo el lenguaje de programación Erlang y el almacén de datos NoSQL Riak lo ayudan a manejar millones de transacciones a la vez.

football-soccer.jpg

El sistema de apuestas de bet365 durante los eventos deportivos puede manejar hasta dos millones de clientes a la vez.

Imagen: Shutterstock

La necesidad de escalar los servicios en línea para mantener el ritmo de la creciente demanda es un desafío familiar para las empresas modernas.

El portal de juegos de apuestas en línea bet365 puede manejar hasta dos millones de apuestas al mismo tiempo y atender a un número cada vez mayor de clientes significaba que la empresa con sede en el Reino Unido estaba dedicando gran parte de su tiempo a reelaborar sistemas basados ​​en el lenguaje de programación Java.

“Debido a que seguimos creciendo a ese ritmo, tuvimos que rediseñar constantemente muchos de nuestros sistemas principales, no para entusiasmar a nuestros clientes y construir nuevos productos que generen ingresos, solo para manejar la carga”, dijo Dan Macklin, jefe de I + D en bet365.

La compañía, que procesó más de £ 26.500 millones en apuestas durante el último año financiero, necesitaba resolver lo que Macklin llama el “dilema de la innovación a escala”.

“Todo su equipo está cambiando constantemente el mismo software para la escala, por lo que ya no puede hacer ninguna innovación, y cuando lo hace, le preocupa ‘¿Puede escalar?'”.

Para distribuir mejor la carga, bet365 eligió construir sistemas clave en el lenguaje de programación Erlang y mantener los datos consistentes, cuando se distribuyeron en muchas máquinas diferentes, se decidió por el almacén de datos NoSQL Riak.

Erlang es un lenguaje de programación creado por la firma sueca de telecomunicaciones Ericsson hace casi tres décadas para ayudar a construir aplicaciones de telefonía. El lenguaje fue diseñado para admitir el enrutamiento a gran escala de llamadas telefónicas y manejar fallas sin colapsar, por lo que es una buena opción para construir sistemas similares en la actualidad.

“Elegimos Erlang por simplicidad, confiabilidad y escalabilidad. Si nos fijamos en lo que sucedía con los interruptores telefónicos en la década de 1990, hay algunos paralelismos que se pueden establecer con los sistemas web modernos de hoy”.

Uno de esos sistemas fue la mensajería Push de bet365 que muestra a los apostadores las probabilidades cambiantes cuando hacen apuestas durante un evento deportivo, conocido como apuestas en juego. Para funcionar, el sistema necesita entregar información actualizada a hasta dos millones de clientes a la vez.

“El objetivo es hacer llegar la información de apuestas, los cambios de precio y de puntaje, a todos esos clientes lo más rápido posible con una latencia mínima”, dijo Macklin.

Erlang ayuda a bet365 a transmitir probabilidades actualizadas al dividir el trabajo que debe llevarse a cabo en millones de tareas que se pueden ejecutar en paralelo. En pocas palabras, a nivel técnico, Erlang puede manejar cientos de miles de procesos aislados y livianos en cada servidor de 32 núcleos. Estos procesos se ejecutarán simultáneamente y si uno de estos procesos falla, se reiniciará automáticamente sin afectar a sus vecinos. Como dice Macklin, “con Erlang simplemente dejas que se bloquee”.

“En lugar de tener grandes interrupciones en el sitio cuando hay un problema, terminamos con problemas manejables mucho más finos con los que podemos lidiar”.

Es un ejemplo de lo que se llama un problema embarazosamente paralelo, donde el trabajo que debe hacerse puede dividirse en muchas tareas que pueden llevarse a cabo en conjunto. No solo eso, sino que cada tarea es independiente entre sí, no teniendo que esperar a que se complete ninguna otra tarea.

La habilidad técnica de Erlang para manejar este tipo de tareas es la razón por la cual WhatsApp de Facebook usa Erlang para manejar las decenas de miles de millones de mensajes enviados por el servicio cada día.

“Erlang es un lenguaje muy pequeño con confiabilidad y escalabilidad incorporados como base fundamental”, dijo Macklin.

“Hemos descubierto que podemos ejecutar las cosas mucho más en paralelo, usar más CPU en la caja y, debido a que la semántica de concurrencia se realiza a través del envío de mensajes, simplifica enormemente el software que estamos escribiendo”.

El código compacto y modular habilitado por Erlang ha resultado en una “reducción masiva” en el tamaño de las aplicaciones en comparación con Java, lo que a su vez ha permitido a bet365 “reducir enormemente las pruebas”.

La facilidad con la que Erlang maneja problemas vergonzosamente paralelos también lo llevó a ser seleccionado para construir un nuevo sistema que maneje la oferta de retiro de dinero de bet365, que permite a las personas reclamar dinero de una apuesta antes de que termine el evento en el que apostaron.

“Ese es un problema muy difícil porque para las actualizaciones de cuotas tenemos que calcular todos esos cambios de cuotas para cada apuesta abierta que tenemos en el sistema”.

Sin embargo, Erlang no es una bala de plata, mientras que resuelve problemas vergonzosamente paralelos con facilidad, hay idiomas cuyo rendimiento se adapta mucho mejor a tareas tales como la combinación de números o la creación de una interfaz de usuario. Alrededor del 10 por ciento de los 300 desarrolladores de bet365 ahora usan Erlang, y Macklin dice que si bien su sintaxis desconocida era inicialmente contraproducente para los desarrolladores provenientes de Java, aquellos que hicieron el cambio consideran que es un lenguaje “estimulante intelectual”.

Protegiendo datos vitales

Más allá de encontrar una manera de crear aplicaciones que pudieran escalar fácilmente con la demanda, bet365 necesitaba que sus datos fueran igualmente flexibles.

bet365 utiliza Microsoft SQL Server como su base de datos principal, pero cuando los datos deben manipularse en masa, la empresa utiliza cada vez más el almacén de datos NoSQL Riak.

“Con respecto a SQL, sin fragmentación, tomamos las cosas lo más alto posible y descubrimos que con Riak podemos construir sistemas simples que se ejecutan a la escala que necesitamos. Es una gran inversión decidir fragmentar su infraestructura SQL porque cuesta mucho dinero y agrega mucha complejidad “.

bet365 utiliza Riak para apuntalar su sistema de retiro de efectivo y en algunos de sus procesos de transacción. Si bien muchas bases de datos NoSQL diferentes ofrecen escalabilidad, Macklin dijo que bet365 eligió Riak debido a las garantías que brinda sobre la precisión de los datos.

“La parte más difícil es equilibrar la escalabilidad con la corrección”, dijo.

“En varios escenarios, desea asegurarse de no perder la mitad de sus datos”.

Macklin dice que el enfoque que muchos almacenes de datos NoSQL de la competencia adoptan para resolver los problemas de acceso a los datos puede provocar tal pérdida. Estos problemas pueden surgir cuando varias máquinas intentan actualizar los mismos datos al mismo tiempo o cuando los servidores de bases de datos se vuelven inaccesibles.

“Cuando la red se cure sola y vuelva a unirse, dirá ‘Oh, ¿qué fue lo último que se escribió? Escribiré eso’ y habrá perdido una gran cantidad de datos”.

Riak, por el contrario, ofrece caracteristicas que le permiten configurarse para actualizar automáticamente el sistema con los datos correctos en caso de tales problemas. En la mayoría de los casos, puede resolver con éxito estos inconvenientes, según Macklin.

“Obtiene el beneficio de escribir una arquitectura sin sincronización que arroja datos a una base de datos NoSQL y, en caso de concurrencia o falla, para la mayoría de los casos de uso que tenemos, se curará automáticamente.

“No es para absolutamente todo, pero creo que el principal punto de venta de Riak es que te permite correr a gran escala y también ofrecen cierto grado de corrección”.

Los sistemas basados ​​en Erlang de bet365 pueden manejar aproximadamente cinco veces más usuarios que sus predecesores y con los Juegos Olímpicos a poco más de un año de distancia, no pasará mucho tiempo antes de que tengan la oportunidad de ver cómo se enfrentan bajo una carga muy pesada.

“En un negocio como el nuestro, tenemos picos masivos y queremos que la experiencia del usuario en la cima de ese pico sea realmente buena”.

Regístrese para recibir el boletín de TechRepublic UK.

Otras lecturas

Recent Articles

‘Terraria’ 1.4 Journey’s End finalmente está disponible para dispositivos móviles y brinda una gran cantidad de contenido nuevo y mejoras a un juego increíble:...

Durante el fin de semana, Re-Logic anunció que Terraria ($ 4.99) en dispositivos móviles recibirán la actualización masiva de contenido...

La hija de Vijay Sethupathi recibe amenazas de violación después de que el actor se retira de la película

En un acto de absoluta desvergüenza, deshonra y vulgaridad, un usuario de...

Shelby SuperCars (SSC) Tuatara alcanza las 331 mph para convertirse en el auto de producción más rápido del mundo

El Shelby SuperCars (SSC) Tuatara ha establecido un nuevo récord de velocidad máxima de autos de producción, alcanzando las 331 mph. De hecho, parece...

Conviértete en un mejor escritor con estas herramientas en línea

Todo el mundo puede escribir, pero ¿puedes escribir tú? (Glenn Carstens-Peters / Unsplash /)Escribir oraciones claras y buenas es más difícil de lo que...

Adobe Photoshop cambia el cielo en 5 segundos, convierte tu ceño fruncido en una sonrisa

CERCAPhotoshop durante años ha sido amado por los fotógrafos por torcer un poco la realidad al poner los ojos en cuencas que estaban cerradas,...

Related Stories

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí