Tecnologias detras de las Redes sociales

12
CURSO: LENGUAJE DE PROGRAMACION II ALUMNO: LUIS MIGUEL CONDORI LOPEZ PROFESOR: EDDIE CHRISTIAN MALCA VICENTE

Transcript of Tecnologias detras de las Redes sociales

CURSO: LENGUAJE DE PROGRAMACION II

ALUMNO: LUIS MIGUEL CONDORI LOPEZ

PROFESOR: EDDIE CHRISTIAN MALCA

VICENTE

Un servicio de red social es un medio de comunicación

social que se centra en establecer un contacto con otras

personas por medio de la internet.

Están conformadas por un conjunto de equipos, servidores,

programas, conductores, transmisores, receptores y por

supuesto, personas que comparten alguna relación,

principalmente de amistad, mantienen intereses y

actividades en común, o están interesados en explorar los

intereses y las actividades de otros.

Facebook es un sitio web de redes

sociales creado por Mark Zuckerberg y

fundado por Eduardo Saverin.

A continuación comentare sobre

algunos programas de código libre y

abierto, excepto Linux e Hive, el resto

son originales de los desarrolladores de

Facebook.

• Linux, el sistema operativo que administra los

recursos de cada servidor en Facebook.

• Apache, el servidor de páginas web.

• MySQL, el manejador de bases de datos, el que

almacena de forma estructurada los datos de

los usuarios.

• PHP, el lenguaje de programación que

automatiza la creación de páginas web.

• Cassandra para almacenar los datos de losusuarios de forma estructurada y distribuida.Cassandra pertenece a una segunda generaciónde bases de datos, bajo un paradigmadenominado NoSQL. Facebook hizo público elcódigo de Cassandra al tiempo que lo entregó ala comunidad Apache en el 2008.

Este es un proyecto auspiciado por la FundaciónApache. Entre sus varias funcionalidades destacauna fundamental para Facebook: el análisis degrandes conjuntos de datos sobre los cuales esposible inquirir, buscar información en ellos.

Podría decirse que Thrift es un kit de herramientas,uno especializado en la interoperabilidad delenguajes de programación. A través de ThriftFacebook ha combinado el uso de lenguajes tandistintos entre sí como C++, Java, Python, PHP, Ruby,Haskell, y más, a lo largo de todos sus equipos dedesarrollo.

Es un sistema de distribución y registro de mensajesen los servidores, tolerante a fallos y capaz defuncionar sobre una gran cantidad de equipos.

La parte visible de Facebook está escrita en su mayoríacon lenguaje PHP, por lo que su funcionamiento escrítico para todo el sistema. Siendo un lenguajeinterpretado tiene limitaciones que los lenguajescompilados no tienen. HipHop for PHP es untransformador de código PHP en código C++, por loque el resultado es un software de igual funcionalidad,pero optimizado para un alto desempeño. De hecho,Facebook afirma que gracias a HipHop for PHP usahasta 50% menos CPU que antes.

En principio Twitter es una red social, como lo es

Facebook, MySpace, MSN Live Messenger y otras. Pero lo

que la diferencia de las demás es la limitación para dejar

mensajes. Twitter permite a sus usuarios enviar y leer

textos de una longitud máxima de 140 caracteres

denominados como “tweets”. El envío de estos mensajes

se puede realizar tanto por el sitio web de Twitter, (o

aplicaciones web llamadas clientes), como también desde

teléfonos celulares. Estas actualizaciones se muestran en

la página de perfil del usuario.

• MySQL usada principalmente para almacenar los Tweets. Ellos han

desarrollado su propio fork para ajustarlo a la necesidades, por

supuesto, abierto a la comunidad. En él se ha prestado especial

atención en la optimización y en el rendimiento, claves para el

servicio.

• Proyectos Apache usados en suinfraestructura y que nos estamosacostumbrando en ver en las grandes redessociales: Cassandra, Hadoop, Lucene, Pig. Enmuchos de ellos Twitter los haesponsorizado.

• Memcached para manejar la caché y escalar elcreciente tráfico de la plataforma. De ahí ha salido uninteresante proyecto abierto que han liberadorecientemente, Twemcache, ajustando susnecesidades a la base de Memcached.

• Lago es un generador de carga para testear el tráfico en producción.Es un herramienta fundamental para el entorno en el que se mueveTwitter con millones de peticiones en cortos espacios de tiempo.

• Zipkin ayuda a recolectar los tiempo de respuestas de las peticionesde la API de Twitter.

• Scalding es una librería de Scala que hace más sencillo escribir losjobs de MapReduce en Hadoop integrándose perfectamente con laScala y la JVM.

• Apache Mesos para construir aplicaciones distribuidas y compartirrecursos entre data center.

• No tan relacionada con la infraestructura, pero si uno de los proyectoproveniente de Twitter tenemos a Bootstrap que nos permite crearágiles páginas HTML5 con componentes potentes.

Creaciones liberadas por twitter:

Instagram es una aplicacióngratuita para iPhone o paradispositivos móviles Android,que te permite tomarfotografías y modificarlas conefectos especiales, para luegocompartirlas en redes sociales,como Facebook.

Python ha sido el lenguaje elegido y Django el frameworka utilizar para llevarlo a la web. Este servicio web ha sidoliberado utilizando gunicorn como servidor WSGI yNGINX para manejar las peticiones utilizando unesquema de balanceo de cargas

PostGreSQL ha sido el almacén principal de la mayoría delos datos creados por los usuarios. El equipo de desarrollocomenta que hace un año venían trabajando en cómoalmacenar 90 likes por segundo. Actualmente se almacenanmás de 10,000 likes por segundo y la tecnología paraalmacenar esta información no ha cambiado. Una vez máspodemos contemplar el gran poder de PostGreSQL frente aotros motores de base de datos.

Instagram utiliza ampliamente Redis como susegundo aliado en el almacenamiento de datos, es elmotor que mueve a su sistema de feeds principal, asícomo el sistema de sesiones que es utilizado porDjango.