Proyecto integrador. Las TIC en la sociedad S4.pptx
Cloud Bigtable Google base datos NoSQL
1.
2. Cloud Bigtable es el servicio de base de datos de
Big Data NoSQL de Google. Se trata de la misma
base de datos que utilizan muchos de los
principales servicios de Google, como la
Búsqueda, Analytics, Maps y Gmail.
Bigtable está diseñado para administrar cargas
de trabajo colosales con baja latencia y alto
rendimiento uniformes, así que es la elección
ideal para aplicaciones analíticas y
operacionales, incluidos el Internet de las Cosas,
los análisis de usuarios y los análisis de datos
financieros.
GO
Es un lenguaje
rápido, compilado
estáticamente, que se
siente como un
lenguaje interpretado
de forma dinámica.
Material Design
es un sistema unificado que
combina teoría, recursos y
herramientas para crear
experiencias digitales.
AngularJS
Le permite escribir aplicaciones web del
lado del cliente como si tuviera un
navegador más inteligente. Le permite usar
buenos viejos HTML (o HAML, Jade y
amigos!).Sincroniza automáticamente los
datos de su UI (vista) con sus objetos de
JavaScript (modelo) mediante el enlace de
datos bidireccional.
3. De acuerdo con Lucie Lozinski:
Uber trabaja con MySQL y PostgreSQL como bases de
datos, con una plétora de servicios para gestionar su
información.
Los lenguajes que utilizan son:
Javascript
Python
Node.js
Go
Java
C
C++.
4. 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,
PHP, el lenguaje de programación que
automatiza la creación de páginas web.
2. Cassandra
Facebook usa 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
5. 3. Hive
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.
4. 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. 5. Scribe
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.
6. 6. HipHop for 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. 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.
Facebook sería más lento sin la ayuda de HipHop para PHP.
7. Tornado
Este es otro kit de herramientas de software, en este
caso especializado en los servicios web escalables -
-es decir, los que crecen sin afectar el desempeño o
las funciones del sistema--. En particular, es capaz
de gestionar miles de conexiones web de forma
simultánea y veloz. Está escrito en el lenguaje
Python y su diseño está basado en el que tiene
FriendFeed.
7. Youtube utiliza la base de
datos MySQL con
sharding para manejar
muchos registros. Debe
almacenar usuarios, listas
de reproducción, canales,
metadatos de video, etc.
en Mysql Database.
HTML5 es un lenguaje de
marcado utilizado para
estructurar y presentar
contenido en la World Wide
Web.
Modernizr es una biblioteca de
JavaScript que está diseñada para
detectar funciones HTML5 y CSS3
en varios navegadores.
OpenSearch es una colección de
formatos simples para compartir
resultados de búsqueda.
8. Twitter se basa en el lenguaje de programación Scala y
utiliza un framework conocido como Bootstrap para la
interfaz de usuario.
Bootstrap es un proyecto de código abierto y ha sido
lanzado al público para su posterior desarrollo. La
integración de Twitter en páginas web y aplicaciones es
fácilmente posible a través de la API de Twitter.Apache Aurora
Twitter opera a través de decenas de
miles de maquinas, con cientos de
ingenieros que implementan software
diariamente. En este tipo de ambientes
la automatización es critica. Es un
software que mantiene servicios
ejecutándose.
Cuando una maquina presente una falla
Aurora reprograma automáticamente
los servicios los servicios que
previamente se estaban ejecutando en
9. No podía faltar un clásico como
Memcached para manejar la caché y
escalar el creciente tráfico de la
plataforma. De ahí ha salido un
interesante proyecto abierto que ha
liberado recientemente, Twemcache,
El abanico de 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.
MySQL usada
principalmente para
almacenar los Tweets. Ellos
han desarrollado sus
propias modificaciones
para ajustarlo a lo que
realmente necesitan. En él
se ha prestado especial
atención en la optimización
y en el rendimiento, claves
para el servicio.
10. Whatsapp, la aplicación de mensajería mas
popular del mundo, fue programado en
lenguaje Erlang (anntiguo pero muy usado y
considerado perfecto para el mundo de las
comunicaciones de mensajería).
Erlang es un lenguaje de programación
concurrente (u orientado a la
concurrencia) y un sistema de ejecución
que incluye una máquina virtual (BEAM) y
bibliotecas (OTP).
11. Instagram usa Ubuntu Linux 11.04 en sus instancias
en Amazon EC2, las cuales manejan según las
necesidades de demanda.
Usan Django en Amazon High-CPU Extra
Large pasando de tan sólo unas maquinas a alcanzar ya
más de 25.
Usan como servidor WSGI a Gunicorn al
ser Gunicorn más fácil de configurar, y menos intensivo
con la CPU.
Y para la ejecución de comandos en varias instancias en
paralelo se usan Fabric que es capaz de desplegar en
cuestión de segundos cual ejecución.
12. Muy interesante la configuración de Instagram y
comprobar el uso intensivo que hacen de Python y
las instancias de Amazon. Un conjunto de
herramientas que habrá que echar un vistazo más
en detalle pero que ha logrado que esta Startup
pueda escalar un tremendo tráfico en poco más de
un año.
Uno de los pilares de Instagram son los
datos de las fotografías y los usuarios. La
base de datos que se usa es PostgreSQL.
Afirman que tiene 12 clúster de instancias de
memoria Quadruple Extra-Large y sus 12
replicas en distintos lugares.
13. La interfaz de escritorio de Spotify esta totalmente
construida en JavaScript (con algunos elementos
generados mediante Handlebars y LESS). Si nos
referimos a las aplicaciones desarrolladas para
Android y iOs se utilizo el lenguaje C++.