Spain Cloud Computing
http://spaincloudcomputing.blogspot.com
Resumen:
La nueva necesidad
surgida a partir del aumento de la cantidad de datos que se generan
en las aplicaciones informáticas, han supuesto un reto para los
responsables de gestionar las bases de datos que dan soporte a un
entorno empresarial. Por un lado el aumento del volumen de datos con
los que trabajar, y por otro lado la necesidad de cruzar estos datos
de manera que se genere información que aporte valor a la empresa,
han obligado a buscar nuevas formas de procesar la información, una
de ellas son las siglas inglesas OLAP (Online Analitical Analytical
Processing), o lo que es lo mismo, procesamiento analítico en línea.
Esta nueva técnica se emplea para ganar rapidez de respuesta en las
consultas sobre bases de datos (BD). Estos sistemas suelen emplearse
en la lógica de muchas empresas, es lo que se denomina Business
Intelligence.
Desde el punto de vista
de la infraestructura necesaria para dar soporte a estos sistemas,
existen variadas posibilidades, desde las tradicionales como es
desplegar un entorno a nivel local, hasta las más novedosas como
pueden ser las que se despliegan en un entorno Cloud Computing.
Sistemas OLAP:
Los sistemas OLAP,
literalmente significan procesamiento analítico en línea. Se
utilizan para poder realizar consultas multidimensionales de una
forma más óptima, ya que designa un conjunto de técnicas software
para el análisis interactivo y veloz de grandes cantidades de datos,
que permiten analizar los datos de una manera más compleja. Por
ejemplo esta tecnología es la base empleada en los Data Warehouse o
Almacenes de Datos. Permitiendo por ejemplo al negocio analizar
resultados de las ventas, métricas para valorar el alcance de una
campa de marketing, etc.
El origen de los sistemas
OLAP se encuentra en los sistemas OLTP, que significan procesamiento
de transacciones en línea. Pero a diferencia de su predecesor, OLAP
se marca como objetivo funcional la investigación y búsqueda de
variables que permitan obtener conclusiones sobre una amplia cantidad
de datos. Frente a los sistemas OLTP cuyo objetivo principal es
garantizar la integridad y la seguridad de las transacciones. La
principal característica que potencia a OLAP es que lo más rápido
a la hora de ejecutar sentencias SQL de tipo Select, frente a OLTP
que es mejor opción para operaciones Insert, Delete o Update.
La creación de bases de
datos OLAP, consiste en efectuar una fotografía de la información
(por ejemplo, de una BD relacional) en un determinado momento y
transformar este caso individual en datos multidimensionales. De
manera que permite obtener resultados en tiempo más reducido con
respecto a las mismas operaciones efectuadas sobre otros tipos de
bases de datos.
Las estructuras OLAP
creadas con el objetivo de ofrecer el valor de un dato en un momento
concreto, se denominan “Cubos multidimensionales”. Existen
diferentes vías para crear estos cubos, pero la forma más común de
hacerlo es mediante los esquemas denominados de Estrella, que
facilita la definición de jerarquías y de mediciones calculadas. En
el centro se colocan los hechos, que agrupa los principales elementos
sobre los que se construirá la consulta, y a partir de ella se
reparten las dimensiones que especificarán como serán agregados los
datos. El cálculo de las posibles combinaciones de estas
agregaciones forma una estructura OLAP que puede contener todas las
respuestas para cada combinación individual.
Un sistema OLAP permite estudiar una gran cantidad
de datos, ver los datos desde diferentes perspectivas y apoyar los
procesos de decisión de una organización.
Sistemas Cloud Computing:
Bajo el término de Cloud
Computing o Computación en la Nube, nos referimos a los sistemas que
centran su actividad en ofrecer servicios de un proveedor a sus
clientes. Generalmente el proveedor satisface las necesidades
Hardware o Software de sus clientes, logrando así, que el cliente
solo deba preocuparse por el negocio, de manera que la
infraestructura de tecnologías de la información que necesite para
dar soporte a su actividad, no se convierta en una limitación.
El origen del Cloud
Computing se encuentra en el Grid Computing, pero pretende ir un
paso más allá, ya que en una arquitectura Grid tendríamos una
infraestructura capaz de dar soporte a una demanda concreta, pero
inflexible ante picos de demanda e infrautilizada cuando baje esta
demanda. El Cloud en cambio, tiene como pilar, garantizar que el
cliente tiene a cada momento los recursos que necesita. Con el Cloud
se impone el concepto de pay-as-you-go, que se refiere a pago por
uso, solo se paga por los recursos utilizados, lo cual evita al
cliente los gastos de desplegar una infraestructura, mantenerla y
evolucionarla.
Generalmente la
clasificación del Cloud Computing según el tipo de servicios se
divide en tres apartados.
- SaaS (Software como Servicio): Consiste en la utilización de aplicaciones o programas instalados sobre un servidor remoto, y que el usuario se conecta a ellos desde su navegador el cual conecta con un servidor web, de manera que el usuario no precisa de ninguna instalación en su equipo y por tanto tampoco tiene dependencia de ellos.
- PaaS (Plataforma como Servicio): En lugar de contratar el uso de un software determinado, en este caso el proveedor ofrece todo el conjunto de herramientas que podrían necesitar su clientes para implementar sus propios programas. Es decir, se ofrece una plataforma de desarrollo que integra todo lo necesario.
- IaaS (Infraestructura como Servicio): Estos servicios están centrados en la parte más relativa al Hardware, aunque también podrían incluir elementos Software. Los clientes podrán contratar los recursos Hardware-Software que necesiten y que den soporte a su negocio, de manera que los servidores, redes... que precise para poder llegar a todos sus clientes, serán provistos de manera externa, y además el solo deberá pagar por lo que consuma, de manera que abarata costes dado que se evita infrautilizar recursos. También garantiza la continuidad del negocio ante picos de demanda que no estuvieran contemplados.
Estas son las tres
clasificaciones clásicas del Cloud Computing pero existen más, una
que resulta especialmente interesante para el objeto de este trabajo
es la conocida como DaaS (Data as a Service). Con este servicio
vienen provistos vía web el almacenamiento y las operaciones de
gestión sobre Bases de Datos, de manera que para el usuario será
como si pudiera almacenar los datos en un disco local.
Sistemas OLAP y el Cloud:
La propuesta de este
trabajo es estudiar las relaciones, productos y ventajas que se
podrían obtener, mediante la combinación de sistemas OLAP en un
entorno de Cloud Computing.
Actualmente en el mercado
del Cloud Computing existe un gran abanico de posibilidades en lo
referido a las Bases de Datos, su gestión, integración y
mantenimiento. Como se ha explicado en el punto anterior, dentro de
los diferentes modelos de servicio, el relativo a los datos cuenta
con una denominación propia, el DaaS (Datos como servicio), en
realidad el DaaS se considera una extensión del SaaS. Ya que toda la
parte relativa al almacenamiento y gestión de datos se considera
software.
Las posibilidades que
pueden surgir de implantar una infraestructura en el que un sistema
OLAP esté alojado en un proveedor de servicios en Cloud, es enorme.
Por un lado supone un ahorro considerable y por otro lado supone
disponer de los datos desde cualquier parte.
Es un ahorro ya que de
entrada el cliente de estos servicios se ahorra desarrollar una
infraestructura en la que alojará su sistema de bases de datos. A
menudo, una organización cuya lógica de negocio reside en el valor
de sus datos, genera una gran cantidad de estos para posteriormente
analizarlos y sacar conclusiones para tomar decisiones empresariales.
Esto hace que el volumen de datos con los que trabajan es alto,
además necesitaran cruzar estos entre varias bases de datos. Si el
despliegue de toda la infraestructura que da soporte a estas
circunstancias, debe correr de mano del cliente, supone un gran
desembolso económico en ellas, además si busca seguridad,
seguramente tendrá replicados los datos y necesitará de una
arquitectura aun más compleja, y por tanto más cara. Además deberá
mantenerla, necesitará contratar expertos y personal cualificado.
Frente a todo esto. El proveedor Cloud será el encargado de
implementar él la infraestructura, de mantenerla y de correr con los
gastos de todo ello. Mientras que el cliente solo pagará por las
operaciones que realice sobre ellos. También supone un ahorro el
hecho de que al pagar el cliente solo por los recursos que consume,
no asume el coste añadido de tener una infraestructura planificada
sobre una demanda habitual, pero que ante picos de demanda
inesperados (pensemos en una promoción que lleva a cabo la empresa)
no serán capaces de asumir todos los posibles clientes, ya que su
infraestructura no es flexible y no podrá evolucionar, en el caso
extremo, mientras la demanda sea inferior que el tope que es capaz de
asumir la infraestructura se estarán infrautilizando recursos, y por
tanto perdiendo dinero. Por tanto el Cloud puede asegurar la
continuidad del negocio, y además al precio exacto en función de la
demanda que tenga. Estos conceptos quedan reflejados en la siguiente
gráfica.
Como se ha dicho, otra de
las ventajas de un sistema OLAP en un entorno Cloud es la ubicuidad.
El Cloud da la posibilidad de acceder e interactuar con los datos
desde cualquier lugar, ya que bastará un navegador que lance las
peticiones de BD. Lo cual hace que cualquier empleado disponga en
cualquier momento de la información que necesite. Además el Cloud
ofrece el servicio centralizado, de manera que si disponemos de
varias BD para el usuario será transparente y no tendrá que
preocuparse con cada una de ellas. Como ejemplo si se trata de una
organización que desarrolla su negocio en un marco internacional, y
cruza varias bases de datos de diferentes países, será el proveedor
de servicios el encargado de hacer que esto se produzca, y para los
usuarios será transparenta la forma en la que este proceso se lleve
a cabo.
Por último, un punto muy
fuerte por el que decantarse por el Cloud suponga una buena elección,
es que muchos proveedores han desarrollado herramientas específicas
para la minería de datos. Es decir, cuando disponemos de un gran
volumen de datos, y queremos que estos datos tengan valor, que cobren
sentido, hay que llevar a cabo operaciones que permitan descartar
información relevante de otra más superflua, pues son estas
operaciones las que en muchos casos, ya vienen implementadas o
podrían implementar bajo demanda los productos de Cloud.
Opciones OLAP en el
mercado Cloud:
El mercado Cloud ofrece
una gran variedad de servicios relativos a las Bases de Datos, a
menudo agrupa los servicios en dos bloques, servicios de Base de
Datos Relacional, y servicios de Bases de Datos No Relacionales. Las
primeras se refieren a las bases de datos tradicionales, con una
estructura fija, con tablas y con las relaciones entre estas, y que
se consultan con SQL. Las No relacionales son las que se conocen como
NoSQL, y en ellas no hay estructuras fijas y usan su propio lenguaje
de consulta. Se detallan un poco más sus características en la
siguiente imagen.
Dentro de estas dos
categorías de servicios de Bases de Datos. Vamos a fijarnos por un
lado para BD Relacional en proveedores que ofrecen servicios de bases
de datos del modelo entidad relación.
En el caso de las BD
conocidas como NoSQL, los datos no tienen una definición de
atributos fija. Son una forma de estructurar los datos muy
interesante ya que somo no siguen una estructura fija, los datos se
almacenan en “bruto”, por tanto cuando hay que almacenar gran
cantidad de información, se almacena granularmente y generalmente
mediante técnicas de minería de datos se puede obtener la
información que interesa. La estructura está dividida en nodos,
cada uno opera sobre una porción de datos, reúne los resultados y
los devuelve al cliente. Aumenta el rendimiento y los recursos,
añadiendo recursos según demanda. Las consultas son más rápidas
ya que las operaciones son directamente sobre memoria, volcando los
datos cada cierto tiempo. Además generan redundancia en diferentes
nodos. Pueden manejar gran cantidad de datos, lo que se conoce como
Big Data y que va estrechamente relacionado con la minería de datos.
- Microsoft: En Windows Azure, el proveedor de servicios de Miscrosoft, existe el servicio “MS SQL”, en el cual permite desplegar un entorno de Base de Datos para el modelo relacional, que trabaja igual que la aplicación de escritorio de Microsoft SQL Server. Permitiendo crear cubos de datos. En lo relativo a NoSQL, Microsoft no tiene un servicio específico para ello, si bien permite almacenes de tablas NoSQl. Existe la opción de contratar versiones Web, Business y Premium, y para cada una de ellas permite un máximo de almacenamiento de información y su precio oscila entre 346.29€/mes y 692.58€/mes para la versión Premium, que admite más de 150Gb de almacenamiento. Estas tecnologías son empleadas por Samsung para su Smart TV.
- Amazon: En el caso de Amazon, que actualmente es el que domina el mercado del Cloud, y a su vez es el que va marcando las pautas desarrollando nuevos servicios, ofrece una gran cantidad de productos para BD. Se puede contratar el servicio denominado “Amazon Relational DB” que ofrece una BD relacional donde poder implementar un cubo de un sistema OLAP. Tambien tiene para las aplicaciones de escritorio el “SQL Server Express” que permite crear escritorios virtuales que contienen BD relacionales de manera que el usuario podrá llevar a cabo operaciones conectándose a este escritorio remoto, que tendrá la configuración necesaria. De cara a los servicios de BD NoSQL, tiene el producto “Amazon Simple DB”. Para usar el Cloud de Amazon existe la opción de registrarse gratis durante un periodo de prueba o bien una opción Premium. El precio varía en función de cada producto, entorno a 0,275$/Gb que se almacene al mes. La famosa red social de profesionales LinkedIn emplea estos servicios.
- Google: Los productos Cloud de Google se conocen como “Google App Engine”. En principio para los sistemas OLAP, Google es una buena opción ya que ofrece muchos servicios orientados a estas nuevas formas de estructurar la información de BD. Para BD relacionales existe un servicio llamado “Google Cloud SQL”. En Engine el producto Cloud para NoSQL es “Big Table”. Un producto muy interesante que ofrece este proveedor es el “Big Query”, que está pensado expresamente para el Big Data (Alta cantidad de datos). Ofertan versión de prueba y Premium con un coste entorno a 0,26€/Gb por mes. La desarrolladora de videojuegos Ubisoft gesiona sus datos con App Engine.
- Mongo DB: Mongo es un proveedor de servicios centrado únicamente en los servicios de BD, aparte de proveer BD tradicionales destaca sobre todo por las no relacionales. Para los casos de Big Data, este proveedor almacena las grandes cantidades de valores en tablas similares a las “Hashtable” de Java, donde establece tablas clave-valor. Otra opción que ofertan es sobre BD no estructuradas, mapean la información simulando una estructura similar a la que tendría una BD de SQL. Una característica muy importante es que es Open Source, con dos tipos de licencias, no comercial y para un uso comercial. La empresa Foursquare emplea BD de este tipo.
- Rackspace: Rackspace es una empresa de servicios Cloud, para las BD tiene el servicio “MySQL Cloud Database”, para las del tipo relacional y con las que crear el cubo. Además tiene el servicio “Big Data Platform” que como su nombre indica es para realizar consultas sobre BD con gran volumen de datos. Al tratarse de un proveedor especializado, no hay un precio concreto ya que depende de diversos factores. Si bien ofrece una versión de prueba es necesario una versión de pago para acceder a la mayoría de su funcionalidad.
A modo de resumen, la
mayoría de proveedores de servicios de Bases de Datos para Cloud
Computing, se podrían clasificar en el siguiente cuadro:
Conclusiones:
Los sistemas OLAP que
optimizan y aceleran las consultas sobre bases de datos, permiten
cruzar información entre diferentes bases de datos para dotar de más
lógica a las consultas, lo cual en entornos empresariales permite la
toma de decisiones en función de los datos consultados a la BD. Los
sistemas OLAP en combinación con la computación en el Cloud, pueden
ser una herramienta importante en el futuro, ya que ambas se
complementan y fruto de ello son más potentes. Además al nivel de
empresas que gestionan un gran volumen de datos, migrar sus sistemas
de Bases de Datos a un sistema Cloud puede suponer un ahorro
importante, además de permitir acceder a la información desde
cualquier punto.
Además y a pesar de que
la tecnología en Cloud es relativamente nueva, existen ya en el
mercado una amplia oferta de proveedores de servicios especializados
en servicios de bases de datos, con productos muy especificos.
José Ramón Gil
Cotaina.