1. CURSO: LENGUAJE DE PROGRAMACION II
ALUMNO: LUIS MIGUEL CONDORI LOPEZ
PROFESOR: EDDIE CHRISTIAN MALCA
VICENTE
2. 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.
3. 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.
4. • 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 los
usuarios de forma estructurada y distribuida.
Cassandra pertenece a una segunda generación
de bases de datos, bajo un paradigma
denominado NoSQL. Facebook hizo público el
código de Cassandra al tiempo que lo entregó a
la comunidad Apache en el 2008.
5. Este es un proyecto auspiciado por la Fundación
Apache. Entre sus varias funcionalidades destaca
una fundamental para Facebook: el análisis de
grandes conjuntos de datos sobre los cuales es
posible inquirir, buscar información en ellos.
Podría decirse que Thrift es un kit de herramientas,
uno especializado en la interoperabilidad de
lenguajes de programación. A través de Thrift
Facebook ha combinado el uso de lenguajes tan
distintos entre sí como C++, Java, Python, PHP, Ruby,
Haskell, y más, a lo largo de todos sus equipos de
desarrollo.
6. Es un sistema de distribución y registro de mensajes
en los servidores, tolerante a fallos y capaz de
funcionar sobre una gran cantidad de equipos.
La parte visible de Facebook está escrita en su mayoría
con lenguaje PHP, por lo que su funcionamiento es
crítico para todo el sistema. Siendo un lenguaje
interpretado tiene limitaciones que los lenguajes
compilados no tienen. HipHop for PHP es un
transformador de código PHP en código C++, por lo
que 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 usa
hasta 50% menos CPU que antes.
7. 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.
8. • 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 su
infraestructura y que nos estamos
acostumbrando en ver en las grandes redes
sociales: Cassandra, Hadoop, Lucene, Pig. En
muchos de ellos Twitter los ha
esponsorizado.
• Memcached para manejar la caché y escalar el
creciente tráfico de la plataforma. De ahí ha salido un
interesante proyecto abierto que han liberado
recientemente, Twemcache, ajustando sus
necesidades a la base de Memcached.
9. • 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 mueve
Twitter con millones de peticiones en cortos espacios de tiempo.
• Zipkin ayuda a recolectar los tiempo de respuestas de las peticiones
de la API de Twitter.
• Scalding es una librería de Scala que hace más sencillo escribir los
jobs de MapReduce en Hadoop integrándose perfectamente con la
Scala y la JVM.
• Apache Mesos para construir aplicaciones distribuidas y compartir
recursos entre data center.
• No tan relacionada con la infraestructura, pero si uno de los proyecto
proveniente de Twitter tenemos a Bootstrap que nos permite crear
ágiles páginas HTML5 con componentes potentes.
Creaciones liberadas por twitter:
10. Instagram es una aplicación
gratuita para iPhone o para
dispositivos móviles Android,
que te permite tomar
fotografías y modificarlas con
efectos especiales, para luego
compartirlas en redes sociales,
como Facebook.
11. Python ha sido el lenguaje elegido y Django el framework
a utilizar para llevarlo a la web. Este servicio web ha sido
liberado utilizando gunicorn como servidor WSGI y
NGINX para manejar las peticiones utilizando un
esquema de balanceo de cargas
PostGreSQL ha sido el almacén principal de la mayoría de
los datos creados por los usuarios. El equipo de desarrollo
comenta que hace un año venían trabajando en cómo
almacenar 90 likes por segundo. Actualmente se almacenan
más de 10,000 likes por segundo y la tecnología para
almacenar esta información no ha cambiado. Una vez más
podemos contemplar el gran poder de PostGreSQL frente a
otros motores de base de datos.
12. Instagram utiliza ampliamente Redis como su
segundo aliado en el almacenamiento de datos, es el
motor que mueve a su sistema de feeds principal, así
como el sistema de sesiones que es utilizado por
Django.