Facebook no está solo creado en PHP

Me encanto ver este post en  Puchunguis pero tratare de verlo de un punto de vista objetivo comparando algunos comentarios de personas que estaban erróneas sobre algunos conceptos del gran engranaje que supone ser Facebook.

Muchas personas tienen como idea de que la red social más famosa del mundo Facebook esta creada  solo en  el lenguaje de programación “.PHP” pero lamentablemente mis queridos lectores eso no es así, vamos a documentarnos un poco.

Cuando se creó Facebook llegaron a la conclusión de que PHP no lo puede hacer todo, ya que se trata de un lenguaje interpretado y no es precisamente el lenguaje más rápido que existe, y es así no todas las tareas pueden ser ejecutadas en PHP, han tratado de migrar varias veces a Facebook a  Python lo que no lea resultado ser una tarea tan fácil. Lo importante de esto es que  lo que usan no es PHP aunque tengan un editor con la sintaxis PHP. HipHop traduce todo ese codigo a C, lo  unico que vemos  es solo la sintaxis PHP al escribirlo, nada más.

Pero si nos vamos un poco a lo lógico cuando se habla de millones de personas que manejan  una gran cantidad de recursos e información, todos esos cúmulos tienden a provocar que se ejecuten con una gran lentitud, imagínate la cantidad de datos que se manejan en Facebook, podemos sintetizar que   PHP no es lo mejor del mundo pero queda claro que sí el más fácil de aprender e implementar como lenguaje de programación.

Pero actualmente la plataforma de Facebook tiene en sus ramas.

Sistema operativo Linux ‎:


Estoy brindando los link y las definiciones de cada tecnología para que podamos tener una verdadera experiencia de lo que significa cada cosa.

Apache Thrift.

Thrift es un conjunto de herramientas y librerías software creadas por Facebook para acelerar el desarrollo e implementación de servicios backend eficientes y escalables. El principal objetivo es permitir comunicaciones eficientes y fiables a través de lenguajes de programación mediante la abstracción de porciones de cada lenguaje en una librería común, específicamente Apache Thrift permite a los desarrolladores definir los tipos de datos e interfaces de servicios en un archivo único en lenguaje neutral y generar todo el código necesario para construir clientes RPC y servidores.

Actualmente Thrift soporta los siguientes lenguajes C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk y OCaml. Facebook utiliza esta tecnología para su sistema de búsqueda integrando así un backend desarrollado en C++ con un frontend escrito en PHP.

Facebook utilizo esta tecnología para utilizar las librerías de Java y que en PHP no existen, como por ejemplo la librería para realizar el envío de SMS.

Apache Cassandra

Apache Cassandra es una Base de Datos no relacional, distribuida y basada en un modelo de almacenamiento de Clave-Valor, escrita en Java, además de Facebook, sitios como Reddit y Twitter también usan Cassandra, la usan 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 tener este tipo de base de datos llamada Cassandra.

Apache Hive

Este es un proyecto auspiciado por la Fundación Apache. Entre sus varias funcionalidades destaca una que es fundamental para el funcionamiento de 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.

Scribe Server

Lo que hace Scribe es muy sencillo: es un sistema de distribución y registro de mensajes en los servidores, es tolerante a fallas y capaz de funcionar sobre una gran cantidad de equipos, gracias a Scribe Facebook logra gestionar con mayor facilidad y eficiencia sus miles de servidores.

HipHop para PHP

La parte visible de Facebook está escrita en su mayoría con lenguaje PHP, por lo que su desempeño es crítico para todo el sistema. Siendo un lenguaje interpretado tiene limitaciones de desempeño que los lenguajes compilados no tienen.

Una gran cantidad de peticiones PHP impone un consumo excesivo de CPU, y en Facebook han logrado solucionar el problema con este desarrollo en el que llevaban trabajando más de 3 añosy que permite convertir el código PHP en código C++, que luego se compila con g++ para obtener un código objeto mucho más eficiente en consumo de recursos de lo que era el código PHP original, el resultado es un software de igual funcionalidad, pero optimizado para un alto desempeño. De hecho, Facebook afirma que gracias a HipHop para PHP usa hasta 50% menos CPU que antes, Facebook sería más lento sin la ayuda de HipHop para PHP.

Tornado web Server

Tornado es un framework de servidor Web y está liberado bajo la licencia Apache versión 2, está escrito en Python y está diseñado para permitir el procesamiento de miles de conexiones simultaneas. Facebook no podría “sentirse” en tiempo real sin Tornado.

Protocolo XMPP

Extensible Messaging and Presence Protocol (XMPP) es un protocolo para comunicación en tiempo real, la cual sirve de base para un amplio rango de aplicaciones, incluyendo mensajería instantánea, información de presencia o también llamada “listas de contactos”, charlas con múltiples participantes, voz, video llamadas, colaboración, sindicalización de contenidos y enrutamiento generalizado de datos en XML.

La información  fue tomada de  Aditya Agarwal, el ex-director de ingeniería de Facebook, quien actualmente esta laborando en Dropbox.

Gracias tambien a Puchunguis por toda la informacion.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s