Toda la información relacionada con las instancias que se manejan en Google Cloud SQL se almacena, de forma que es posible acceder a dicha información y visualizarla. De esta forma, se puede ver un resumen completo de la instancia, o centrarse en un aspecto en concreto, como las operaciones o los datos de una instancia.
Para ver el resumen de una instancia, se accede a la información de dicha instancia en la consola de administración.
¾
¾ Google Cloud SQL API [42]
Google Cloud SQL ofrece una API REST para administrar las instancias de forma programada. Se define con todos los conceptos que se han introducido a lo largo de las distintas operaciones que han de llevarse a cabo para manejar este servicio. Cada uno de estos conceptos se define como un recurso de la API, cada uno de los cuales soporta diferentes métodos para acceder y poder trabajar con ellos.
39
Para usar la API, es necesario crear correctamente el formulario de la petición, autorizar esa petición como un usuario autenticado y procesar después la respuesta recibida. De forma indirecta, también se está usando esta API cuando se está usando el SDK de Google Cloud, una de las librerías de cliente de lenguaje, como el caso de Python, Java o PHP o cuando se accede a la consola de desarrollo. Para poder usar la API, es necesario tenerla habilitada. Para asegurarlo, se puede acceder a la consola de desarrollo, seleccionar el proyecto que debe usar la API y comprobar el apartado de API y Autorizaciones, y comprobar que esta API tiene como estado ON.
En la página de especificación [43] se pueden encontrar los métodos específicos para cada uno de los recursos, así como cada una de las URIs sobre las que se deben realizar las peticiones. Se incluye en la especificación una pequeña descripción de estos métodos y de los parámetros que se usan en las peticiones.
2.2.2.- Google Cloud Storage
Google Cloud Storage es un servicio web que permite almacenar datos en la nube de Google, al igual que el caso anterior. Google Cloud Storage permite almacenar los datos con una gran confiabilidad, rendimiento y disponibilidad. Este servicio también puede emplearse para distribuir grandes cantidades de datos a los usuarios mediante descarga. Si la aplicación necesita almacenar archivos para ser visualizados y gestionados en la nube, se puede usar el SDK de Google Drive [44] para gestionar la información. Su concepción está orientada sobre todo a este aspecto, al
almacenamiento de ficheros junto a una pequeña información de cada uno de esos ficheros que ayude a identificarlos de forma rápida. De hecho, el término dato se asocia, en este caso, al de fichero.
El almacenamiento en este servicio web gira en torno a tres conceptos principales:
x Proyectos: todos los datos pertenecen a proyectos, que consisten en un conjunto de usuarios, de APIs, una forma de facturación, un sistema de autenticación y opciones de autenticación para esas APIs. Un usuario puede tener uno o varios proyectos bajo su control. x Buckets: son los contenedores en los que se almacenan los datos. Estos contenedores se
pueden usar para organizar y controlar el acceso a esos datos pero no se pueden anidar, al contrario que los directorios. Es posible crear tantos contenedores como sean necesarios. x Objetos: son las piezas individuales de datos que se almacenan en Google Cloud Storage.
Estos objetos tienen dos componentes: el dato y el metadato. El dato suele ser un archivo
que queremos almacenar en Google Storage, mientras que el metadato es una colección de
pares clave-valor que describen algunas cualidades del objeto. Estos objetos pertenecen a un contenedor y no pueden compartirse entre contenedores. Un contenedor puede contener tantos objetos como se desee.
40
Entre las principales características de Google Cloud Storage se pueden citar las siguientes: x Alta capacidad y escalabilidad: los objetos soportados pueden llegar a ser de terabytes e
incluir un alto número de contenedores.
x Fuerte consistencia de datos: cuando se produce una escritura, la posibilidad de encontrar el dato actualizado en la siguiente lectura es muy alta para operaciones de actualización o de borrado. Las operaciones de actualización son atómicas, esto es, el objeto actualizado no estará disponible hasta que todo el objeto está completamente actualizado.
x Manejo de proyectos de la consola de desarrollo: desde la consola se pueden añadir miembros al proyecto, manejar la facturación, gestionar la autenticación y trabajar con otras APIs. Es posible tener varios proyectos y cada uno de ellos puede tener su propia instancia de Google Cloud Storage.
x Clase de almacenamiento: cuando se crea un contenedor hay que elegir una clase de almacenamiento, la que más se ajuste a los datos que se van a almacenar. Hay diferentes clases que se introducirán más adelante.
x Localización de contenedores: es posible especificar dónde se van a almacenar geográficamente los contenedores. Las opciones pueden ser Asia, Europa o Estados Unidos.
x APIs REST: Google Cloud Storage proporciona dos interfaces de programación para el modelo REST, que son la API XML y la API JSON. Los métodos permitidos son GET, POST, PUT, HEAD y DELETE en cada una de ellas.
x Autenticación OAuth 2.0: OAuth 2.0 es el protocolo de autenticación y autorización para interactuar con la API.
x Descargas autenticadas desde navegador: estas descargas se pueden habilitar para cuentas de Google, bien haciendo uso de las ACLs basadas en las cuentas de Google o bien dando al usuario la URL cifrada del entorno del proyecto.
x Soporte para compartir recursos: Google Cloud Storage usa ACLs para controlar el acceso a los objetos y a los contenedores. Estas ACLs se pueden configurar para poder compartir los objetos y los contenedores de forma pública, con un grupo de Google, un dominio de Google o cuentas específicas de Google.
Para usar este servicio, lo primero que hay que hacer es activar el servicio para el proyecto [45]. Tras ello, la gestión del servicio se puede realizar de dos formas distintas: bien por medio de la
consola de desarrollo de Google [46] o bien desde la línea de comandos, en cuyo caso se utilizará la herramienta gsutil [47]. Por último, existe una tercera opción para gestionar el servicio. Esta tercera opción es la vía programática, y es en la que se usa un determinado lenguaje de
41
programación para establecer la comunicación entre la aplicación y el servicio. Dependiendo del lenguaje y la librería que se usen, la aplicación se ajustará a la interfaz para XML o a la interfaz para JSON, dependiendo de los requisitos que tenga que cumplir la aplicación.
Una vez que hemos tomado estas decisiones, es necesario activar Google Cloud Storage si no se ha activado anteriormente, crear el primer contenedor para almacenar los objetos, subir los primeros datos a almacenar y establecer el control de acceso. Con esto se tendría la funcionalidad mínima implementada para la aplicación, pero en la documentación de Google se puede encontrar un pequeño tutorial para aprender a manejar el servicio [48], que será introducido brevemente a continuación.
¾
¾ Guía de desarrolladores
A continuación se presentan los conceptos y técnicas que necesarias para usar de forma efectiva el servicio [49], así como algunos detalles acerca de las reglas de nombrado que se deben seguir para los nombres de los contenedores.
Se mencionarán algunos aspectos más de este servicio, pero solo aquellos que se hayan estudiado en relación a lo necesario para el proyecto o a los aspectos que se tuvieron en cuenta para elegir entre un modelo u otro.