Está en la página 1de 4

Metodologías Agiles

Cesar Efrén Rodriguez Sandoval


ID:765563
Cristian Andrés Acevedo Arias
ID:785966
Ivonne Dayanna Bustos Salamanca
ID: 789316

Teoría de la Computación
NRC:57536

Jannez Milson Urrego Quiroz

Ingeniería de Sistemas

7° Semestre

Corporación UNIMINUTO de Dios

2023
La arquitectura de software de Twitter está diseñada para manejar la enorme base de
usuarios y el impacto de la plataforma. La siguiente es una descripción más detallada de
los principales componentes y funciones de la arquitectura del software de Twitter.
arquitectura basada en microservicios: Twitter utiliza una arquitectura basada en
microservicios, lo que significa que el sistema está dividido en pequeñas unidades
independientes. Cada microservicio maneja tareas específicas como administrar
usuarios, publicar tweets o enviar notificaciones. Esta arquitectura mejora la flexibilidad,
escalabilidad y mantenibilidad del sistema.
Tiene millones de usuarios activos y está abrumado por el volumen de tweets y
solicitudes, por lo que la arquitectura del software está diseñada para ofrecer
escalabilidad y durabilidad. Los servicios más pequeños se pueden escalar
horizontalmente según sea necesario y se pueden agregar servicios adicionales a medida
que aumenta el tráfico. Twitter también utiliza técnicas de almacenamiento en caché y
equilibrio de carga para garantizar un rendimiento óptimo en todo momento.
Bases de datos y almacenamiento: Twitter utiliza una combinación de bases de datos
sociales y no sociales para gestionar los datos. Por ejemplo, los datos del usuario se
almacenan en una base de datos relacional, mientras que los tweets y las interacciones se
almacenan en una ubicación no relacional como Cassandra. Esto proporciona un mayor
control sobre los datos generados y sin procesar mientras mantiene el tamaño y la
disponibilidad del sistema.
Temas y fronteras estatales: Twitter utiliza sus sistemas de mensajería y cola de
eventos para gestionar las comunicaciones en tiempo real. La tecnología permite
mensajería fluida y en tiempo real entre diferentes partes del sistema. Por ejemplo,
cuando un usuario publica un tweet, se envía un evento a través de la barra de estado
para que otros usuarios puedan recibir una notificación inmediata.
Seguridad y privacidad:Dado que la seguridad y la privacidad son importantes en
plataformas como Twitter, la arquitectura del software está diseñada para proteger los
datos de los usuarios. Las medidas de autenticación, autorización y cifrado permiten que
solo los usuarios autorizados accedan a los datos y mantengan su integridad.
Descripción de problemas: X (antes llamado Twitter) a comparación de sus
“competidores” (Facebook, Instagram, TikTok) tiene por así decirlo la ventaja de que en
su forma publica y privada no tiene censura, a comparación de sus “competidores” que
el único lugar donde no tiene cesura es en su forma privada, en su forma publica tiene
mucha censura, por ello mismo el uso masivo de Twitter no tiene la denominada
censura. (requerimiento no funcional, la privacidad que uno puede darle a tu cuenta de
Twitter)
Otro problema que Twitter ayudo a solucionar, que tiene la versatilidad de compartir
pensamientos o comentarios sobre algún tema, de forma seguida con los denominados
“hilos de Twitter” te permite contar una historia o un denominado actualmente momento
del “chisme time”, ademas de ello permite que mas personas se conecten a aquel hilo
para que también puedan compartir sus pensares, algo en lo cual Instagram y Facebook
no han logrado desarrollar. (requerimiento no funcional, la restricción que tu mismo le
puedes dar a tus publicaciones)
Otro problema que Twitter ayudo a solucionar son las publicaciones temporales, al puro
estilo de los mensajes temporales de WhatsApp, Twitter también tiene la opción de
hacer una publicación temporal, que dure publicado solamente un tiempo, apenas se
termine ese tiempo se borrara, a comparación de Instagram o Facebook que lo que
publicas se quedara ahí hasta que tú lo borres. (requerimiento no funcional, la forma de
personalizar el tiempo de publicación de algo)
Hacer recomendaciones para cambiar la arquitectura de software de una plataforma tan
grande y compleja como Twitter es un desafío considerable y requeriría un análisis
exhaustivo de su infraestructura actual, sus desafíos y sus metas a largo plazo.
Algunas mejoras que hemos considerado como equipo de trabajo serían:
Escalabilidad y Rendimiento: Twitter enfrenta desafíos constantes en términos de
escalabilidad y rendimiento debido a su enorme base de usuarios y al flujo constante de
datos. Mejorar la arquitectura para manejar picos de carga de manera más eficiente y
garantizar tiempos de respuesta rápidos sería una prioridad.
Microservicios y Arquitectura Orientada a Servicios (SOA): Adoptar una
arquitectura basada en microservicios podría permitir una mayor modularidad,
flexibilidad y capacidad de escalado independiente de componentes específicos de la
plataforma. La implementación de una arquitectura orientada a servicios también podría
facilitar la integración de nuevas características y la evolución del sistema de manera
más ágil.
Seguridad y Privacidad: Dada la naturaleza de la plataforma y la importancia de la
seguridad y la privacidad de los usuarios, sería crucial fortalecer aún más las medidas de
seguridad y privacidad en todas las capas de la arquitectura, desde la autenticación y la
autorización hasta el cifrado de datos y la protección contra ataques.
Análisis de Datos en Tiempo Real: Twitter genera enormes volúmenes de datos en
tiempo real, desde tweets hasta tendencias y análisis de sentimientos. Mejorar la
capacidad de análisis de datos en tiempo real podría proporcionar insights más
profundos y oportunidades para personalización y recomendaciones más precisas para
los usuarios.
Experiencia del Desarrollador: Facilitar el desarrollo de aplicaciones y servicios sobre
la plataforma de Twitter mediante APIs más robustas, documentación clara y
herramientas de desarrollo avanzadas podría fomentar la innovación y la creación de
nuevas experiencias para los usuarios.
Resiliencia y Tolerancia a Fallos: Mejorar la resiliencia del sistema ante posibles fallos
o interrupciones mediante la implementación de estrategias de tolerancia a fallos,
redundancia de sistemas críticos y prácticas de recuperación ante desastres.

También podría gustarte