Un dispositivo de almacenamiento de datos que usa memoria no volátil tales como flash, o memoria volátil como la SDRAM, para almacenar datos, en lugar de los platos giratorios magnéticos encontrados en los discos duros convencionales.
Un dispositivo de almacenamiento de datos que usa memoria no volátil tales como flash, o memoria volátil como la SDRAM, para almacenar datos, en lugar de los platos giratorios magnéticos encontrados en los discos duros convencionales.
TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION IIChristian Garcia Gamio
FUNCIONALIDAD EN FACEBOOK, LA MARAVILLA DE ADMINISTRAR ENORME CANTIDAD DE DATOS DE LA MANERA MAS EFECTIVA Y DESARROLLANDO NUEVAS SOLUCIONES EN SU PLATAFORMA.
2. HISTORIA DE FACEBOOK
• Mark Zuckerberg creó Facebook en el periodo en que fue estudiante de
la Universidad de Harvard. Cuando esta red social empezó a ganar en popularidad,
Mark abandonó sus estudios en Harvard. La compañía actualmente tiene sus
oficinas centrales en Menlo Park, California. En 2003 Zuckerberg lanzó en la
universidad un sitio web llamado Facemash. donde reunía varias fotografías y
nombres de estudiantes de Harvard, este sitio estuvo disponible solo por algunas
horas y por este suceso fue llevado ante los directivos de la Universidad, quienes
culparon a Mark por haber sustraído datos e imágenes del sistema informático de la
institución; suspendieron a Mark de clases, quien luego se alejó de la universidad al
año siguiente para crear Facebook
3. HISTORIAS
• A mediados de 2007 lanzó las versiones en francés, alemán y español traducidas por
usuarios de manera no remunerada, principalmente para impulsar su expansión fuera
de Estados Unidos, ya que sus usuarios se concentran en Estados Unidos, Canadá
y Reino Unido. Facebook cuenta con más de 1350 millones de miembros, y traducciones a
70 idiomas.
• Su infraestructura principal está formada por una red de más de 50 000 servidores que
usan distribuciones del sistema operativo GNU/Linux usando LAMP.
• En febrero de 2014 los responsables de Facebook anunciaron la compra del servicio de
mensajería móvil WhatsApp por 16 000 millones de dólares.
• El 9 de abril de 2012 se anunció que Facebook adquirió Instagram por 1000 millones
de dólares.
4. SISTEMA DISTRIBUIDO DE FACEBOOK
• 1. Linux
Aquí sería más preciso decir que se trata del ecosistema Linux, en particular de LAMP:
• Linux, el sistema operativo que administrar 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,
• Y PHP, el lenguaje de programación que automatiza la creación de páginas web.
• Facebook no sería posible sin Linux.
5. CÓMO ESTÁ PROGRAMADO FACEBOOK?
• El front end de Facebook se entrega principalmente a través de PHP (con cientos de
bibliotecas personalizadas), que se ejecuta en algo similar o igual a HipHop para
PHP (HHVM)
• HHVM fue creado como el sucesor de la máquina de ejecución HipHop for PHP, el
cual es un transpilador de PHP-a-C++, también creado por Facebook.
• También hay algo de HTML5 y JavaScript en el front end para que puedas
interactuar con el sitio constantemente sin tener que volver a cargar la página.
6. HHCM
• HHVM (conocido como HipHop Virtual
Machine) es una máquina
virtual de código abierto basado
en compilador Just-in-Time (JIT), el cual
sirve como un motor de ejecución para
los lenguajes PHP y Hack. Usando el
principio del compilador JIT, ejecuta
código PHP o Hack en código Bytecode
HipHop intermedio, el cual es entonces
traducido en código máquina,
optimizado, y ejecutado nativamente.
7. HAYSTACK
• El sistema de alto rendimiento desarrollado por Facebook para almacenar y
recuperar objetos, utilizado por Facebook para almacenar y recuperar fotos. Hay (en
junio de 2010) 20.000.000.000 de fotos en Facebook, cada una en 4 resoluciones
distintas…. Además hay que tener en cuenta que de esas se recuperan 1.200.000
fotos cada segundo.
8. BIGPIPE
• Un sistema dinámico para
servir páginas web (desarrollado
por Facebook) que permite la
división de cada página en
sección (ellos los llaman
“pagelets”) para optimizar su
rendimiento. Cada sección de la
página web se recupera por
separado (y muchas ocasiones en
paralelo) con la ventaja de si
una parte de la web está
desactivada o rota, el usuarios
sigue viendo el resto sin
problemas.
9. CASSANDRA
• Además de Facebook, sitios como Reddit y Twitter también usan Cassandra para
almacenar los datos de los usuarios de forma estructurada y distribuida. Se dice que
Cassandra pertenece a una segunda generación de bases de datos, a un paradigma
llamado NoSQL. Facebook hizo público el código de Cassandra al tiempo que lo
entregó a la comunidad Apache en el 2008.
• Facebook no podría escalar sin Cassandra.
10. CARACTERÍSTICAS DE CASSANDRA
• Descentralizado
• Todos los nodos del clúster tiene el mismo rol. No hay un único punto de fallo. Los datos se distribuyen a través del clúster
(por lo que cada nodo contiene datos diferentes). No existe un nodo maestro por lo que cada nodo puede dar servicio a
cualquier solicitud.
• Soporta replicación y replicación de múltiples data center
• Las estrategias de replicación son configurables .22 Cassandra está diseñado como un sistema distribuido, para el
despliegue de un gran número de nodos a través de múltiples centros de datos. La arquitectura distribuida de Cassandra
está diseñado para desplegarse sobre múltiples data center, tener redundancia y recuperarse ante desastres.
• Escalabilidad
• El rendimiento de leer y escribir aumenta linealmente a medida que se añaden nuevos nodos. Se pueden agregar nuevos
nodos sin necesidad de interrumpir la ejecución de la aplicación.
• Tolerancia a fallos
• Los datos se replican automáticamente a múltiples nodos para recuperarse frente a fallos. Cassandra soporta replicación a
través de múltiples datacenter. Se puede reemplazar nodos que presenten fallos sin tiempo de inactividad o interrupción de
la aplicación.
11. HADOOP Y HIVE
• Hadoop es un sistema que permite realizar cálculos sobre cantidades ingentes de
datos. Facebook lo utiliza para las estadísticas. Hive está desarrollado por Facebook
y permite ejecutar consultas SQL contra Hadoop. Ambos proyectos son open-source y
se usan en multitud de sitios webs grandes como Yahoo y Twitter
• 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.
• Facebook no podría ofrecer su servicio de búsqueda sin Hive.
12. THRIFT
• 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.
• Facebook no podría crear servicios de software a la velocidad que requiere sin la
ayuda de Thrift.
13. VARNISH
• Es un acelerador HTTP que puede
actuar como distribuidor de cargas y
que también puede cachear contenido
que puede ser servido de forma
espectacularmente rápida. Facebook
usa Varnish para mostrar fotos y fotos
de perfil, con una carga de miles de
millones de peticiones diarias.
14. SCRIBE
• Lo que hace Scribe es muy sencillo: es un sistema de distribución y registro de
mensajes en los servidores, tolerante a fallas y capaz de funcionar sobre una gran
cantidad de equipos.
• Facebook gestiona con mayor facilidad sus miles de servidores gracias a Scribe.
15. ALMACENAMIENTO
• Facebook cuenta con almacenamiento de datos único y tiene problemas de acceso
que nadie más en el mundo tiene. Por lo tanto, tenemos sistemas de nadie más en el
mundo tiene, y nadie más en el mundo debería estar al tanto de cómo funcionan a
menos que trabajen en ellos dicho esto, diseñamos un montón de nuestro propio
hardware (véase el Open Compute Project, iniciado por FB) para ser lo más eficiente
y rentable posible. Utilizamos balanceadores de carga para asegurarnos de que las
máquinas que están libres asuman más carga. Si el equipo se cae, se pone un
repuesto -Chris Scholz, un Ingeniero de Sistemas que trabaja para Facebook
16. BALANCEADOR DE CARGA
• Un Balanceador de carga
fundamentalmente es un dispositivo de
hardware o software que se pone al
frente de un conjunto de servidores que
atienden una aplicación y, tal como su
nombre lo indica, asigna o balancea las
solicitudes que llegan de los clientes a los
servidores usando algún algoritmo
(desde un simple round-robin hasta
algoritmos más sofisticados)
17. OPEN COMPUTE PROJECT
• El proyecto OCP (Open Compute Project) tiene la misión de diseñar el servidor más
eficaz para el almacenamiento de datos de la llamada informática escalable. Todos
los centros de datos de la compañía Facebook son 100% de OCP.
18. CENTROS DE
DATOS DE
FACEBOOK
• Central de Prineville en
Oregon
• El centro de Prineville
en Oregon, es un
gigante eficaz de
ahorrar el 52% de
energía en comparación
con otra instalación
similar. Fue construido
con 950 kilómetros de
cable.
19. A GRANJA DE SERVIDORES DE FACEBOOK EN
LULEA, SUECIA
• 27.000 metros cuadrados
• Equivalente a 6 estadios de
futbol