viernes, 14 de noviembre de 2014

Infografía del Big Data para el 2015

En la siguiente entrada os presento la siguiente infografía sobre el Big Data en el 2015, recogida de la página del centro de Innovación del BBVA : https://www.centrodeinnovacionbbva.com/infografia/big-data-es-hora-de-generar-valor-de-negocio-con-los-datos y la idea de generar valor de negocio en la información disponible actualmente en las empresas.Recordad que según el IDC existe una oportunidad US$ 1.6 trillones en ingresos a lo largo de los próximos cuatro años,relacionada con este sector. (Fuente: http://gestion.pe/tecnologia/big-data-nueva-moneda-mundo-negocios-2110577) hay que aprovecharla!!


jueves, 11 de septiembre de 2014

Open Stack: Plataforma de Cloud Computing Software Libre

En esta nueva entrada, de acuerdo a la filosofía de este blog de apoyo al software libre, vamos a hablar de un plataforma de Cloud Computing  open source: Open Stack como vamos a describir, esta plataforma ofrece funcionalidades de cloud computing muy interesantes.

En primer lugar describimos esta solución:  se trata de una plataforma en software libre para cloud computing que proporciona una infraestructura como servicio (IaaS), cumpliendo con las necesidades de los proveedores de nubes públicas y privadas, independientemente de su tamaño, siendo bastante fácil de implementar y muy escalable.
Este proyecto está distribuido bajo los términos de la licencia Apache. El proyecto está gestionado por la Fundación OpenStack, una persona jurídica sin fines de lucro creada en septiembre de 2012 para promover el software OpenStack y su comunidad.
Más de 200 empresas se unieron al proyecto entre las que destacan AMD, Brocade Communications Systems, Canonical, Cisco, Dell, Ericsson, Groupe Bull, HP,IBM, InkTank, Intel, NEC, Rackspace Hosting, Red Hat, SUSE Linux, VMware y Yahoo!.

La tecnología consiste en una serie de proyectos relacionados entre sí que controlan pools de control de procesamiento, almacenamiento y recursos de red a través de un centro de datos, todos administrados a través de un panel de control que permite a los administradores controlar mientras potencia a sus usuarios proveyendo los recursos a través de una interfaz web.

Características de Open Stack
  • Los módulos tienen muchas características comunes para poder integrarse fácilmente.
  • Están desarrollados en Python
  • Algunos de ellos utilizan AMQP para el intercambio de mensajes
  • Incluyen una API RESTful para la comunicación entre componentes o externa (p. ej. clientes)
  • Autenticación basada en tokens gestionada a través del componente Keystone
  • Base de datos propia e independiente


Componentes de Open Stack
OpenStack tiene una arquitectura modular con varios nombres para sus componentes:
OPENSTACK IDENTITY SERVICE (KEYSTONE)
  • Directorio centralizado que almacena información de:
  • Usuarios
  • Proyectos (tenants)
  • Roles
  • Servicios y sus endpoints
  • Información almacenada en SGBDR o LDAP
  • Primer componente a instalar

OPENSTACK IMAGE SERVICE (GLANCE)
·         Gestiona las plantillas de imágenes de los sistemas
·         Gestiona las instantáneas de las instancias
·         Puede utilizar diversos formatos:
    • raw
    • qcow2 (Qemu/KVM)
    • vhd (Hyper-V)
    • ami (Amazon)
    • vdi (VirtualBox)
    • vmdk (VMware)
OPENSTACK COMPUTE (NOVA)

·         Componente principal de OpenStack
·         Gestiona las instancias de imágenes, dónde deben ejecutarse y el acceso mediante consola
·         Soporta diferentes hipervisores (recomendados KVM o Xen):
·         KVM/QEMU
·         Xen
·         Hyper-V
·         VMware ESXi
·         LXC
·         Docker
·         Permite incluso el aprovisionamiento de máquinas físicas mediante Baremetal/Ironic

OPENSTACK OBJECT STORAGE (SWIFT)

·         Sistema de almacenamiento redundante y escalable
·         El almacenamiento de objetos permite el almacenamiento masivo de datos no estructurados de forma bastante económica
·         Hoy en día ampliamente utilizado por aplicaciones web
·         Swift incluye su propia API y otra compatible con Amazon S3
·         Normalmente es utilizado por Glance para almacenar imágenes
·         Es independiente del resto de componentes

OPENSTACK BLOCK STORAGE (CINDER)

·         Los volúmenes son dispositivos de bloques que se crean de forma independiente de la instancia y pueden asociarse y desasociarse de ella cuando se precise
·         Cinder es equivalente al componente Amazon EBS
·         Los volúmenes se crean en el nodo de almacenamiento (por defecto con LVM) y se conectan a la instancia que se desee mediante algún protocolo de redes de almacenamiento (iSCSI es el más utilizado)
·         Cinder incluye controladores para gran cantidad de dispositivos de almacenamiento del mercado
·         Cuando nova termina una instancia borra todo el almacenamiento local asociado a ella, pero no los volúmenes, por lo que estos reciben el nombre de almacenamiento permanente.
·         Podemos pensar en los volúmenes como discos externos que se conectan o desconectan de las instancias, aunque se trate de un mecanismo completamente diferente

OPENSTACK NETWORKING (NEUTRON)
·         Componente encargado de la configuración de redes virtuales
·         El nombre original de neutron era quantum, pero se tuvo que cambiar por problemas de copyright
·         Neutron incluye un buen número de complementos: OpenvSwitch, Cisco, Nicira, etc.
·         Neutron gestiona múltiples redes de forma independiente gracias al uso de linux network namespaces que permite que múltiples routers virtuales compartan un dispositivo de red físico
·         Neutron también se encarga de la gestión de los grupos de seguridad y de las IPs flotantes

OPENSTACK DASHBOARD (HORIZON)
·         Panel de control web de OpenStack desarrollado en Django

·         No incluye toda la funcionalidad de la API de cada componente, pero sí los métodos más utilizados.



domingo, 1 de junio de 2014

Principales Tecnologias de Big Data II

En el anterior artículo mencionábamos, dentro de la tecnologías clave en el BIG DATA, las bases de datos NoSQL. Las bases de datos NoSQL son sistemas de almacenamiento de información que no cumplen con el esquema entidad-relación al que todos nos acostumbramos desde las primeras asignaturas de bases de datos en las carreras de informática. Mientras que las tradicionales bases de datos relacionales basan su funcionamiento en tablas, joins y transacciones ACID, las bases de datos NoSQL no imponen una estructura de datos en forma de tablas y relaciones entre ellas (no imponen un esquema pre-fijado de tablas), en ese sentido son más flexibles, ya que suelen permitir almacenar información en otros formatos como clave-valor (similar a tablas Hash), Mapeo de Columnas, Documentos o Grafos.

A día de hoy existen unos 150 sistemas de bases de datos NoSQL. Elegir uno de ellos puede ser muy difícil, ya que ninguno ha obtenido todavía la fama que sí han conseguido las bases de datos relacionales.

Existen diferentes formas para clasificar las bases de datos NoSQL, pero nosotros vamos a basarnos  en su orientación al uso: orientadas a documentos,   orientadas a columnas,  de clave-valor y en grafo. 

Orientadas a documentos
Son aquellas que gestionan datos semi estructurados. Es decir documentos. Estos datos son almacenados en algún formato estándar como puede ser XML, JSON o BSON. Dentro de las bases de datos NoSQL orientadas a documentos destaca MongoDB.

MongoDB
MongoDB es un sistema de base de datos multiplataforma orientado a documentos, de esquema libre. Como ya os expliqué, esto significa que cada entrada o registro puede tener un esquema de datos diferente, con atributos o “columnas” que no tienen por qué repetirse de un registro a otro. Está escrito en C++, lo que le confiere cierta cercanía a los recursos de hardware de la máquina, de modo que es bastante rápido a la hora de ejecutar sus tareas. Además, está licenciado como GNUAGPL 3.0, de modo que se trata de un software de licencia libre. Funciona en sistemas operativos Windows, Linux, OS X y Solaris.
MongoDB se basa en el principio de almacenar los datos en una estructura tipo llave-valor; MongoDB por su lado se enfoca específicamente en que los valores de estas llaves (llamadas colecciones) son estructuras tipo JSON (llamados documentos), es decir objetos Javascript, lenguaje sobre el cual se basa esta solución de base de datos. Esto facilitará su manipulación a muchos que ya conozcan el lenguaje.
MongoDB posee varias estrategias de manejo de datos que la han posicionado donde se encuentra hoy en día, tales como sus procesos de división de datos en distintos equipos físicos o también conocido como clusterización, también el caso similar de documentos muy grandes que superen el límite estipulado de 16MB se aplica una estrategia llamada GridFS que automáticamente divide el documento en pedazos y los almacena por separado, al recuperar el documento el driver se encarga de armar automáticamente el documento nuevamente.
Usos MongoDB
§  Aplicaciones que almacenan grandes cantidades de datos o datos complejos.
§  Por ejemplo para aplicaciones con estructuras complejas como blogs (post, comentarios, rollbacks,etc) o aplicaciones de analítica (Google analytics).
Características de MongoDB:
§  Ausencia de transacciones · Esto le permite a MongoDB ser más rápida y escalable a nivel horizontal.
§  Escalabilidad horizontal  En sistemas tradicionales RDBMS, para mejorar el rendimiento de la base de datos se adquiría una máquina más potente (escalado vertical). En MongoDB funciona mejor el escalado horizontal (incrementar número de máquinas)
§  Almacenamiento Orientado a documentos (BSON)  JSON es más que una gran forma de intercambiar información, es también una excelente forma de almacenarla. MongoDB almacena todo un registro en un mismo documento. · No hay necesidad de especificar estructura alguna y sus documentos pueden cambiarse individualmente. · MongoDB usa BSON (Binary-JSON),un formato abierto basado en JSON que permite manejar datos binarios, · Con el uso de BSON MongoDB es muy rápida en la búsqueda, indexación, almacenamiento y recuperación de la información  BSON es fácil y rápidamente transformable en cualquier tipo de dato nativo de cualquier lenguaje de programación.
§  Soporte a Querys dinámicas · Como en las bases de datos tradicionales, MongoDB también acepta la ejecución de queries dinámicas (a diferencia de otras como CouchDB)
§  Indexación de Documentos · Todos los documentos son automáticamente indexados con una clave llamada _id. · Esta clave nos asegura que cada documento es único, · MongoDB permite indexar documentos embebidos (se puede crear un índice en un código postal)
§  Indices Geoespaciales  Permite la indexación de la información basado en la localización. · Permite crear consultas del tipo: “cuantos artículos se encuentran a cierta distancia de un determinado conjunto de coordenadas”,
§  Analisis de Rendimiento de Queries  MongoDB provee una herramienta para el análisis de consultas que permite determinar el rendimiento de nuestras consultas o conocer posibles defectos en su estructura o simplemente mejorar el tiempo de respuesta de las mismas.
§  Replicación de Datos · MongoDB provee mecanismo llamado replicación maestro-esclavo, con lo que solo una base de datos está activa para escritura en un momento dado. · Todas las peticiones de escritura se realizan en la base de datos maestra y esta las pasa a la réplica (esclavo). · Si la bd principal falla la esclava ocupa su lugar. · MongoDB implementa el concepto de réplica a pares de modo que cuando falla se determina cuál de las 2 bases de datos (maestro-esclavo) es la que tomará el control para continuar prestando el servicio.

viernes, 23 de mayo de 2014

Principales Tecnologias de Big Data I

BIG DATA ya no es una promesa o una tendencia BIG DATA está aquí  y está provocando cambios profundos en diversas industrias.El análisis de todos los datos disponibles está creando un elemento de disrupción, es necesario tener en cuenta que el análisis de grandes volúmenes de datos , de diversas fuentes a gran velocidad y con una enorme flexibilidad puede ser un valor fundamental y diferenciador.

Se dice que el concepto de BIG DATA se basa en las cinco V que es necesario conocer:

  • Volumen:  se procesan grandes volúmenes de datos donde se convierte en un reto el capturar, almacenar y procesar la información.
  • Variedad:  todo tipo de datos estructurados y no estructurados (imágenes, videos, música, por ejemplo) obtenidos desde muy diversas fuentes.
  • Velocidad: Alta velocidad para procesar los datos, considerando además el volumen de información que se genera en redes sociales y demás plataformas digitales.
  • Veracidad: determinar la validez y calidad de los datos para determinar lo que sirve para establecer una estrategia.
  • Valor: Es fundamental tener acceso a grandes volúmenes de datos, pero a menos que podamos convertirlo en valor resulta inútil. Así que usted puede discutir con seguridad que el "valor" es la más importante V de Big Data. Es tan fácil caer en la trampa de moda y embarcarse en iniciativas de datos grandes y sin una comprensión clara de los costos y beneficios. que se olvida que hay que buscar el valor que se genera con los datos para el consumidor final, mediante el  diseño y desarrollo tanto de estrategias de comunicación personalizadas como de productos que cubran las necesidades básicas del target.

Respecto a las tecnologías que se utilizan en el mundo BIG DATA existen una serie de términos con los que nos empezamos a familiarizar y que pasamos a describir a continuación:
  • Bases de Datos NoSQL : acrónimo de Not Only SQL)  donde podemos destacar:
    • MongoDB: www.mongodb.org/ Orientada a documentos JSON, madura base de datos NoSQL ampliamente adoptada por la comunidad de usuarios de Big Data.
    • Apache Cassandra http://cassandra.apache.org/  Base de datos NoSQL creada por Facebook. Un matrimonio exitoso entre Google BigTable y Amazon Dynam 
    • Neo4j Graph Database:  http://www.neo4j.org/  Base de datos de grafos lista para ser implantada en soluciones empresariales y con un maduro ecosistema.
  • Apache Hadoop Implementación open-source de MapReduce, un paradigma para desarrollar programas de procesamiento de datos masivos en modo batch.
  • Apache Hive es un data warehouse construida en la base de Hadoop a fin de proporcionar resumenes de datos, consultas y análisis. Aunque inicialmente desarrollado por Facebook, Apache Hive está utilizado y desarrollado por otras empresas como Netflix.  Hive también se incluye en “Amazon Elastic MapReduce” en Amazon Web Services.
  • Apache Pig es una plataforma para el análisis de grandes conjuntos de datos que consta de un lenguaje de alto nivel para expresar programas de análisis, junto con la infraestructura para la evaluación de los mismos. La característica sobresaliente de los programas de Pig es que su estructura es susceptible a la paralelización, lo que a su vez le permite manejar enormes cantidades de información.
En los siguientes artículos profundizaremos más sobre cada una de estas herramientas.