Base de datos en la nube
Una
base de datos en la nube es una base de datos que se ejecuta en la nube. Hay
dos modelos de implementación: los usuarios pueden ejecutar la base de datos en
la nube de forma independiente, utilizando una imagen de máquina virtual, o
pueden comprar el acceso a un servicio de base de datos, gestionada por un
proveedor de base de datos en nube. De las bases de datos disponibles en la
nube, algunas son basadas en SQL y algunos utilizan un modelo de datos NoSQL.
Implementación del modelo
Existen
dos métodos principales para ejecutar una base de datos en la nube:
Imagen
de máquina virtual: Las plataformas en la nube permiten a los usuarios comprar
instancias de máquinas virtuales por un tiempo limitado. Es posible ejecutar
una base de datos en estas máquinas virtuales. Los usuarios pueden subir su
imagen propia con una base de datos instalada en ella, o utilizar imágenes
prefabricadas de máquinas que ya incluyen una instalación optimizada de una
base de datos. Por ejemplo Oracle provee una imagen prefabricada con una
instalación de Oracle Database 11g Enterprise Edition on Amazon EC2.
Base de datos como servicio: Algunas plataformas en la nube ofrecen opciones
para el uso de bases de datos como servicio, sin lanzar físicamente una
instancia de máquina virtual para la base de datos. En esta configuración, los
propietarios de aplicaciones no tienen que instalar y mantener la base de datos
por su cuenta. En cambio, el proveedor de servicios de base de datos se encarga
de la instalación y el mantenimiento de la base de datos, y los propietarios de
aplicaciones pagan de acuerdo a su uso.
Por ejemplo, Amazon Web Services provee dos servicios de base de datos como
parte de su oferta en la nube, SimpleDB que almacena pares llave-valor en
formato NoSql y Amazon Relational Database Service que esta basado en SQL con
una interfaz MySql.
Una
tercera opción es administrar el alojamiento de una base de datos en la nube,
donde la base de datos no se ofrece como un servicio, pero el proveedor de la
nube aloja la base de datos y administra en nombre del propietario de la
aplicación. Por ejemplo, el servicio en la nube de Rackspace ofrece alojamiento
gestionado para bases de datos MySQL.
Arquitectura
y características en común
La
mayoría de los servicios de bases de datos ofrecen consolas web, que el usuario
final puede utilizar para aprovisionar y configurar las instancias de la base
de datos. Por ejemplo, la consola web de Amazon Web Services permite a los
usuarios lanzar instancias de bases de datos, crear instantáneas (similar a las
copias de seguridad) de bases de datos y realizar un seguimiento de las estadísticas
de la base de datos.
Los
servicios de las bases de datos consisten en un componente de administración
que controla las instancias de cada base de datos subyacente utilizando una API
de servicios. La API de servicios se expone al usuario final, y permite a los
usuarios realizar operaciones de mantenimiento y ampliar sus instancias de la
base de datos. Por ejemplo, el servicio de Amazon Relational Database provee
una API que permite crear una instancia de una base de datos, modificar los
recursos disponibles de cada instancia, eliminar una instancia, la creación de
una instantánea (similar a una copia de seguridad) de una base de datos y
restauración de una base de datos a partir de una instantánea.
Los
servicios de las bases de datos mantienen la pila del software subyacente,
transparente al usuario - la pila normalmente incluye el sistema operativo,
base de datos y el software de terceros utilizado por la base de datos. El
proveedor de servicios es responsable de la instalación, parches y
actualización de la pila de software subyacente.
Los
servicios de las bases de datos cuidan la escalabilidad y la alta disponibilidad
de la base de datos. Características de escalabilidad difieren entre los
proveedores - algunos ofrecen auto-escala, mientras que otros permiten al
usuario ampliar mediante una API, pero no escalar automáticamente.
Modelo de datos
También
es importante diferenciar entre bases de datos en la nube que son relacionales
en oposición a las no relacionales (NoSQL):
Bases
de datos SQL, son un tipo de base de datos que se puede ejecutar en la nube (ya
sea como una imagen de máquina virtual o como un servicio, dependiendo del
proveedor). Las bases de datos SQL poseen baja escalabilidad, ya que no fueron
nativamente diseñadas para entornos en la nube, aunque los servicios en la nube
de base de datos basado en SQL están tratando de hacer frente a este desafío.
Bases
de datos NoSQL, son otro tipo de base de datos que puede ejecutarse en la nube.
Las bases de datos NoSQL están diseñados para servir cargas pesadas de
lecto-escritura y son capaces de escalar hacia arriba y hacia abajo con
facilidad.
Y por lo tanto son más adecuadas para funcionar de forma nativa en la nube. Sin
embargo, la mayoría de las aplicaciones actuales se construyen en torno a un
modelo de datos SQL, así que trabajar con bases de datos NoSQL con frecuencia
requiere una reescritura completa del código de la aplicación
Diez de las más útiles bases de datos en la nube
Amazon Web Services
Tiene una variedad de servicios de
bases de datos basadas en la nube, incluyendo bases de datos relacionales y
NoSQL. Amazon Relational Database (SDR) ejecuta MySQL, Oracle o instancias de
SQL Server, mientras que Amazon SimpleDB es una base de datos en menor escala
pensada para cargas de trabajo más pequeñas. Por el lado de NoSQL, Amazon
DynamoDB es su base de datos de unidad de estado sólido (SSD) que
automáticamente replica cargas de trabajo en al menos tres zonas de
disponibilidad. El CTO de AWS, Werner Vogels, señala que DynamoDB es el
servicio de más rápido crecimiento en la historia de AWS. Amazon también ofrece
una variedad de servicios auxiliares de gestión de datos, tales como su almacén
de datos denominado Redshift, así como Data Pipeline, que ayuda a que los
usuarios integren datos de múltiples fuentes para facilitar la gestión.
EnterpriseDB
Se centra en las bases de datos de
código abierto PostgreSQL, pero su verdadero reclamo a la fama es su capacidad
para trabajar con las aplicaciones de la base de datos Oracle. Con Postgres
Plus Advanced Server de EnterpriseDB, las organizaciones pueden utilizar las
aplicaciones escritas para bases de datos en las instalaciones de Oracle a
través de EnterpriseDB, que se ejecuta en nubes de Amazon Web Services y HP.
Tiene replicación binaria y copias de seguridad programadas.
Garantia Data
Ofrece un servicio de puerta de enlace
para que los usuarios ejecuten Redis de código abierto y servicios de bases de
datos Memcached NoSQL en memoria en la nube pública de AWS. El uso de software
de Garantia permite la configuración automática de estos datos de código
abierto al ayudar a que los desarrolladores de plataformas escalen nodos, creen
grupos y construyan la tolerancia a fallas.
Google Cloud SQL
El servicio de base de datos en la nube
de Google se centra en dos productos principales: Google Cloud SQL, que Google
describe como una infraestructura de base de datos MySQL completamente
relacional; y Google BigQuery, una herramienta de análisis para ejecutar
consultas en grandes conjuntos de datos almacenados en la nube.
Microsoft Azure
Microsoft utiliza su tecnologia de
servidor de SQL para proporcionar una base de datos relacional, permitiendo que
los clientes accedan a una base de datos SQL ya sea en su nube, o en instancias
de servidor SQL en las máquinas virtuales. Microsoft también hace hincapié en
las bases de datos híbridas que combinan datos tanto en las instalaciones del
cliente como en la nube Azure a través de SQL Data Sync. Microsoft tiene un
servicio de nube alojada en la base de datos NoSQL llamada Tables, mientras que
Blobs (almacenamiento de objeto binario grande), se ha optimizado para archivos
multimedia, como audio y video.
MongoLab
En el mundo NoSQL, hay una variedad de
plataformas de base de datos para elegir, incluyendo Mongob. MongoLab ofrece a
los usuarios el acceso a MongoDB en una variedad de otros importantes
proveedores de nube, incluyendo AWS, Azure y Joyent. Al igual que los otros
tipos de servicios de puerta de enlace, MongoLab también se integra con varias
herramientas de plataformas como servicio (PaaS) en el nivel de aplicación.
MongoLab funciona con entornos compartidos o dedicados, siendo el último
ligeramente más caro.
Rackspace
La base de datos de Rackspace viene en
una nube o en una oferta gestionada a través de Cloud Databases es el nombre de
su producto. Rackspace pone énfasis en la virtualización basada en contenedores
de sus Cloud Databases, que dicen permitir un mayor rendimiento en el servicio
de base de datos en comparación a si se ejecuta por completo en la
infraestructura virtualizada. Cloud Databases también incorpora una red de
almacenamiento SAN y se basa en una plataforma OpenStack. En diciembre pasado,
Rackspace anunció una base de datos NoSQL en su nube del proveedor Cloudant.
SAP
Es una plataforma basada en la
tecnología en memoria. Su base de datos en nube complementa las herramientas de
base de datos que están en las instalaciones de la empresa -incluyendo Sybase-,
y está disponible en la nube de Amazon Web Services. HANA incluye otras
aplicaciones que no son de bases de datos, como herramientas de gestión
empresarial y desarrollo de aplicaciones.
StormDB
Sigue su distribución completa de base
de datos relacional en los servidores de metal, lo que significa que no hay
virtualización de máquinas. Los funcionarios de StormDB afirman que esto
conduce a un mejor rendimiento y a una gestión más sencilla, porque los
usuarios no tienen que elegir el tamaño de las instancias de máquina virtual
que se ejecuta en su base de datos. A pesar de que se ejecuta en ‘bare
metal’, los clientes no tienen que escoger el tamaño de instancias de
máquinas virtuales sobre la que se ejecuta su base de datos, aunque StormDB
promete aislamiento entre las bases de datos de los clientes. StormDB también
fragmenta automáticamente bases de datos en la nube. La compañía se encuentra
actualmente en versión beta gratuita.
Xeround
Es una
herramienta de gestión para la implementación de bases de datos MySQL
fácilmente escalables a través de una variedad de proveedores y plataformas de
nube. Su software permite una alta disponibilidad y escalabilidad, y funciona a
través de una variedad de proveedores de nube incluyendo AWS, Rackspace, Joyent
y HP, así como OpenStack y plataformas Citrix.