Google brinda una solución de almacenamiento unificada que soporta cualquier tipo de carga de trabajo, desde backups con acceso mensual o anual hasta transmisión de datos de alta demanda (por ej: Spotify utiliza Google Storage). Se dice unificada porque usa una única API integrada para su gestión sin diferencias por clase o tipo.

gcloud storage.PNG

Es una solución escalable hasta el nivel de exabytes, diseñado para hasta 99.95% de durabilidad y alta disponibilidad. Provee gran seguridad ya que encripta los datos automaticamentes al ser almacenados y permite al cliente utilizar llaves de encriptación propias. Además de disfrutar de las bondades de IAM provee otro sistema de control de acceso de tipo de listas de chequeos.

El almacenamiento se organiza en buckets, son los contenedores donde se almacena los datos como tal. Poseen nombres globales únicos y deben pertenecer a una zona y a una clase determinada. Las clases son:

  • Multi-regionales. La opción para la mayoría de los proyectos, optimizados para redundancia geográfica y menos latencia para el usuario final.
  • Cuando se necesita acceso más rápido en una zona determinada, ej: análisis de datos.
  • Acceso poco frecuente al almacenamiento, una vez al mes.
  • Acceso muy poco frecuente al almacenamiento, una vez al año. Es la opción más económica pero sólo si se cumple con la frecuencia de acceso establecida.

storage classes.PNG

Dada sus características, el almacenamiento de Google Cloud es ideal para el almacenamiento y transmisión de imágenes y audio/video donde la baja latencia y el rendimiento son fundamentales. Puede ser usado como repositorio integrado para análisis de datos y machine learning. Posee buenas alternativas para almacenamiento de backups y sistemas de recuperación de desastres y se puede activar opciones de versionamiento y de gestión de ciclo de vida.

Bajo el menú de almacenamiento también se encuentra los distintos tipos de base de datos y herramientas asociadas a ellas.

storage and db portfolio.PNG

La plataforma brinda dos variantes de almacenamiento de datos: SQL y NoSQL, cada una con sus propias características.

Bigtable.

Base de datos columnar NoSQL basada en Apache Hbase, por lo tanto, soporta Hadoop, Spark, clientes Hbase, etc. Está diseñada para compañías con grandes volúmenes de datos y complejos procesos de análisis que requieran altas velocidades de procesamiento, ej aplicaciones de BI o IoT. Requiere que se configure un cluster para su funcionamiento y solo permite un único índice (row key), por este motivo también se conoce como tabla hash persistente. No replica los datos entre distintas zona o regiones, lo que significa que es más rápida, eficiente y económica. El modelo de facturación se base en tamaño de almacenamiento, tráfico y cantidad de nodos en el cluster.

DataStore.

También NoSQL. Es la opción de base de datos por defecto de App Engine. Esta optimizada para proveer gran velocidad transaccional a aplicaciones y facilitar su implementación. Esta diseñada para escalamiento automático y posee muchas de las funcionalidades de las bases de datos estándar, pero con las características relacionales de una base de datos NoSQL. La escritura es mas lenta por la replicación sincrónica, pero es mucho mas versátil en transacciones y consultas ya que permite índices secundarios y soporta transacciones ACID. Aunque presenta algunas características OLTP, también tiene sus limitaciones, por ejemplo: no soporta operaciones join, no se puede usar subQuery para realizar filtrado y no se puede filtrar con operado <> por más de una propiedad.

Cloud SQL.

Soporta MySQL y PostgreSQL, brinda la posibilidad de seleccionar entre dos generaciones: primera y segunda, esta última es mas económica en la mayoría de los casos, permite el uso de proxy, tiene mejor rendimiento y capacidad de almacenamiento y permite configuraciones de alta disponibilidad (replicas). El usuario sólo debe seleccionar el tipo de máquina, disco duro, forma de pago y la plataforma se encarga de todas las tareas de administración (replicas, patch, disponibilidad, rendimiento, etc). Tiene algunas ventajas sobre el uso de un gestor de base de datos en una VM, por ej: replicación de datos automática, facilidad para realizar backups y establecer conectividad para otros servicios e la nube e incluso externos.

Spanner.

Tiene características similares a Cloud SQL pero con posibilidad de escalamiento horizontal, lo que permite un volumen muy elevado de transacciones, del orden de 10000 escrituras y 100000 lecturas por segundos y aún así soporta ACID updates. Lo que resultaría imposible de conseguir la opción SQL estándar. Este nivel de rendimiento viene con costos elevados y algunas limitaciones para su implementación: No soporta todas las funcionalidades RDBMS, es obligatorio usar el API de Spanner por lo que cambiar de proveedor de base de datos implica cambiar gran parte del código fuente.

La selección óptima de cada herramienta se puede determinar mediante el siguiente diagrama:

storage selection.PNG

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

%d