¿Cómo son los backends de la red publicitaria y qué tecnologías usan para mantener esta gran cantidad de solicitudes?

Los backends del servidor de anuncios son generalmente canalizaciones de datos gigantes como backends de análisis, con la complejidad adicional de tener que tomar decisiones en tiempo real (por ejemplo, seleccionar qué anuncio mostrar, ejecutar una subasta, optimizar para la próxima vez, etc.).

Vea mi respuesta a una pregunta similar aquí:

¿Cuál es la pila tecnológica de las redes publicitarias?

La pila tecnológica para los diferentes sistemas de anuncios que he creado sigue un patrón similar:

1. Consumidores de datos ‘inteligentes’: servidores rápidos basados ​​en HTTP que aceptan información GET o POST de scripts en navegadores o aplicaciones, que pueden usar scripts incrustados para tomar decisiones rápidas e inmediatas. Mi herramienta de elección en este momento es OpenResty.

2. Cola: canalización de datos que contiene información hasta que esté lista para ser vaciada a la base de datos. He utilizado Redis para guardar esta información para los datos que necesitan mantener el estado durante varios segundos o minutos, RabbitMQ como cola general o Kafka para una cola que actúa más como una pista de auditoría para sus datos.

3. Oyente: Dependiendo de su propósito, se pueden construir oyentes para enriquecer los datos para un propósito específico, como agregar datos de orientación geográfica a la dirección IP. Además, Samza se puede utilizar como marco para crear oyentes.

4. Cassandra: el almacén de datos se puede utilizar para escribir aplicaciones pesadas. Es difícil extraer datos de Cassandra (es un almacén de valores clave), por lo que es un tanque de almacenamiento adecuado para los datos antes de que una aplicación de nivel superior como Spark o Presto pueda analizar sus datos.

5. Redshift: almacén de datos donde el análisis ad-hoc se puede hacer usando SQL, que es el lenguaje conocido por la mayoría de los analistas de datos y científicos.

El objetivo principal de un sistema publicitario es usar tecnologías que puedan escalar horizontalmente (agregando hardware adicional) y usar escuchas que puedan dividirse en servicios cada vez más específicos. Tenga en cuenta que no es extraño crear un sistema que pueda procesar millones de anuncios por segundo.