La Arquitectura de Software de WhatsApp
En esta página:
Las populares aplicaciones como WhatsApp suele usar arquitecturas especiales.
Esto se debe a que al día mueven millones de datos de los usuarios en el mundo.
En este artículo te compartiré La Arquitectura de Software de WhatsApp, vamos con ello.
La arquitectura de WhatsApp ha ido creciendo con el paso de los años.
En un principio su arquitectura no era tan compleja.
Los cambios actuales, requerimientos de los usuarios y otros factores han ido haciendo su arquitectura más sofisticada.
Pila de Tecnologías que usa WhatsApp (Front-End)
Whatsapp cuenta con diferentes aplicaciones o clientes de usuario.
Una versión web, la aplicación móvil (Android y iOS) y una aplicación desktop (Windows y Mac).
WhatsApp Web
Su versión web esta creada esencialmente con HTML, CSS y JavaScript.
Para hacer sus funciones reactivas, hace uso de la librería React de Meta.
Para una carga rápida de los contenidos en los mensajes, hace uso de Jetpack Site Accelerator.
Jetpack Site Accelerator es un proovedor de tecnología CDN y otras herramientas.
Su certificado SSL usa HSTS (HTTP Strict Transport Security).
Maneja sus estados con la librería Redux.
Hace uso de WebRTC para la comunicación de audio y video en tiempo real.
El diseño de su interfaz (UX/UI) fue creado por un equipo interno de la propia compañía Meta.
Aplicación Móvil
La aplicación para Android esta creada usando el lenguaje de programación Kotlin.
Mientras que la aplicación para iOS esta creada con el lenguaje de programación Swift.
El diseño de las interfaz (UX/UI) de la aplicación para Android fue creada con Material Design.
Y el diseño de las interfaz (UX/UI) de la aplicación para iOS fue creada con Swift UI.
Aplicación Desktop
La aplicación de escritorio para Windows ha sido creada usando el lenguaje de programación C# (C Sharp).
Y la versión de escritorio para macOS ha sido creada con el lenguaje de programación Swift.
El diseño de las interfaz (UX/UI) para Windows fue desarrollada con Windows components.
Y el diseño de las interfaz (UX/UI) para macOS fue desarrollada con Swift UI.
En la siguiente imagen puedes ver el stack de tecnología Front-End de WhatsApp:
Ahora veamos como esta compuesto WhatsApp en el lado del servidor.
Pila de Tecnologías que usa WhatsApp (Back-End)
En su infraestructura backend, usan tecnologías modernas y también clásicas.
Su servidor usa el lenguaje de programación Erlang como principal lenguaje.
El sistema operativo de su servidor es FreeBSD.
Como maquina virtual usa BEAM (basada en Erlang).
Usa la base de datos Mnesia (basada en Erlang).
Para su servidor web multimedia usa YAWS.
También usa PostgreSQL para almacenar los perfiles de usuarios, contactos y datos multimedia (audio, video, etc.).
La aplicación Android y iOS usan SQlite DB para almacenar datos específicos.
En la siguiente imagen puedes ver el stack de tecnología Back-End de WhatsApp:
Ahora veamos como funcionan ambas pilas.
Arquitectura de Software de WhatsApp
Cada tecnología ha sido seleccionada por especialistas e ingenieros con años de experiencia en el desarrollo de software.
Se hicieron análisis de los usuarios y como usan los contenidos de manera persistente.
Los mensajes en WhatsApp usan la tecnología XMPP (Extensible Messaging and Presence Protocol).
Estos mensajes primero son enviados a un servidor Ejabberd personalizado de WhatsApp que se ejecuta en BEAM y FreeBSD.
El servidor Ejabberd guarda los mensajes en una base de datos de Mnesia y se coloca en una cola o queue para ser enviado en el momento oportuno.
En la siguiente imagen puedes ver como funciona la Arquitectura de Software de WhatsApp:
Así es como funciona la arquitectura de software de WhatsApp.
Conclusión
En este artículo has conocido La Arquitectura de Software de WhatsApp.
Tu también puedes llegar a crear este tipo de infraestructuras, solo investiga y pon en practica lo aprendido.
Recuerda que la practica hace al maestro.
Nota(s)
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
- Arq. de Software
- 20-04-2024
- 24-04-2024
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)