¿Cómo funciona una red back-end de WhatsApp, qué tipo de estructura de red se utiliza?

WhatsApp Messenger: más de mil millones de personas en más de 180 países usan WhatsApp para mantenerse en contacto y son las tecnologías las que realmente han hecho que WhatsApp sea tan poderoso que se ha convertido en parte de nuestras vidas.

WhatsApp en el backend usa todas estas tecnologías

  • Erlang
  • FreeBSDYaws
  • lighttpd
  • PHP
  • Parches personalizados para BEAM (BEAM es como JVM de Java, pero para Erlang)
  • XMPP personalizado

Entonces, ¿cómo funciona realmente?

  • El servidor de WhatsApp se implementa casi por completo en Erlang . Los sistemas de servidor que realizan el enrutamiento de mensajes de fondo se realizan en Erlang. Un gran logro es que la cantidad de usuarios activos se gestiona con una huella de servidor realmente pequeña. El consenso del equipo es que se debe en gran parte a Erlang.
  • El servidor de WhatsApp ha comenzado desde ejabberd. Ejabberd es un famoso servidor Jabber de código abierto escrito en Erlang. Originalmente elegido porque es abierto, tuvo excelentes críticas de los desarrolladores, facilidad de inicio y la promesa de la idoneidad a largo plazo de Erlang para grandes sistemas de comunicación. Los siguientes años se dedicaron a reescribir y modificar bastantes partes de ejabberd, incluido el cambio de XMPP a un protocolo desarrollado internamente, la reestructuración de la base del código y el rediseño de algunos componentes centrales, y realizar muchas modificaciones importantes en Erlang VM para optimizar el rendimiento del servidor
  • Un indicador principal del estado del sistema es la longitud de la cola de mensajes . La longitud de la cola de mensajes de todos los procesos en un nodo se supervisa constantemente y se envía una alerta si se acumulan más allá de un umbral preestablecido. Si uno o más procesos se atrasa, se alerta, lo que da un puntero al siguiente cuello de botella para atacar.
  • Los mensajes multimedia se envían cargando la imagen, el audio o el video para enviarlos a un servidor HTTP y luego enviando un enlace al contenido junto con su miniatura codificada Base64 (si corresponde).
  • Algunos códigos generalmente se envían todos los días. A menudo, es varias veces al día, aunque en general se evitan las horas pico de tráfico. Erlang ayuda a ser agresivo para obtener soluciones y características en la producción. La carga en caliente significa que las actualizaciones se pueden enviar sin reinicios ni cambios de tráfico. Los errores generalmente se pueden deshacer muy rápidamente, nuevamente cargando en caliente. Los sistemas tienden a estar mucho más flojos, lo que hace que sea muy fácil implementar los cambios de forma incremental.
  • ¿Qué protocolo se usa en la aplicación Whatsapp? Conexión SSL a los grupos de servidores de WhatsApp. Todos los mensajes se ponen en cola en el servidor hasta que el cliente se vuelve a conectar para recuperar los mensajes. La recuperación exitosa de un mensaje se devuelve al servidor de WhatsApp que reenvía este estado al remitente original (que verá eso como un icono de “marca de verificación” al lado del mensaje). Los mensajes se borran de la memoria del servidor tan pronto como el cliente ha aceptado el mensaje
  • ¿Cómo funciona internamente el proceso de registro en Whatsapp? Inicialmente, WhatsApp solía crear un nombre de usuario / contraseña basado en el número IMEI del teléfono. Esto se cambió y WhatsApp ahora usa una solicitud general de la aplicación para enviar un PIN único de 5 dígitos. Luego, WhatsApp enviará un SMS al número de teléfono indicado (esto significa que el cliente de WhatsApp ya no necesita ejecutarse en el mismo teléfono). Según el número de pin, la aplicación solicita una clave única de WhatsApp. Esta clave se utiliza como “contraseña” para todas las llamadas futuras. (esta clave “permanente” se almacena en el dispositivo). Esto también significa que registrar un nuevo dispositivo invalidará la clave en el dispositivo anterior.
  • El servicio push de Google se usa en Android.
  • Los desarrolladores pueden crear prototipos de una característica y ponerla en práctica durante cientos de millones de usuarios de la noche a la mañana.

¡Así es como funciona WhatsApp!

Espero que ayude 🙂

Querido Ganesh

Aunque no soy un experto en el mercado de temas en redes o sus estructuras, compartiré lo que sé sobre el back-end de Whats App. El back-end de Whats App es compatible con la tecnología No SQL y actualmente utiliza Hadoop para el back-end, Spark & ​​pig para el análisis y la colmena para el almacenamiento de datos.

Espero que esto ayude.