Aplicación Bookshelf con Ruby

Bookshelf es una aplicación web de muestra escrita en Ruby que muestra cómo usar diversos productos de Google Cloud Platform, incluidos los siguientes:

  • Entorno flexible de Google App Engine
  • Google Cloud SQL
  • Google Cloud Datastore
  • Google Cloud Storage
  • Google Cloud Pub/Sub

En este tutorial, se analizan en detalle la aplicación Bookshelf y la forma de implementar cada una de las funciones de la aplicación con la utlización de tecnologías y servicios conocidos proporcionados por Cloud Platform.

La aplicación de muestra Bookshelf se basa en el framework de la aplicación web Ruby on Rails. Sin embargo, los conceptos y las tecnologías analizados son relevantes independientemente del framework que utilices. Podrías implementar esta aplicación en otro framework web de Ruby basado en Rack (por ejemplo, Sinatra).

Captura de pantalla de la aplicación Bookshelf en la que se muestran controles y portadas de libros

La aplicación de muestra Bookshelf almacena una colección de títulos de libros. Quien tenga acceso a la aplicación puede añadir libros a la lista. La aplicación de muestra ofrece las siguientes funciones:

  • Los usuarios pueden ver la lista de libros, y añadirle o quitarle libros.
  • Los usuarios pueden editar la información de los libros.
  • Los usuarios pueden subir imágenes de portada para los libros.
  • Los usuarios pueden iniciar sesión con sus cuentas de Google y ver los libros que han añadido a la lista.

Objetivos

  • Clonar o descargar la aplicación de muestra.
  • Compilar la aplicación y ejecutarla en la máquina local.
  • Desplegar la aplicación en App Engine.
  • Examinar el código de muestra.
  • Aprender cómo almacena la aplicación los datos estructurados.
  • Aprender cómo almacena la aplicación datos binarios en Google Cloud Storage.
  • Aprender cómo autentica la aplicación a los usuarios.
  • Aprender cómo la aplicación crea registros de eventos visibles en la consola de Google Cloud Platform.
  • Aprender cómo utiliza la aplicación Google Cloud Pub/Sub para enviar tareas a un trabajador en segundo plano.

Costes

En este tutorial, se utilizan componentes facturables de Cloud Platform, incluido Google Compute Engine.

Los nuevos usuarios de Cloud Platform pueden optar a una prueba gratuita.

Este tutorial consta de varios pasos. Cada paso está documentado en su propia página. La última página del tutorial incluye instrucciones para eliminar los recursos, de modo que ya no se te cobre por los servicios de Cloud Platform. Si prefieres no completar todos los pasos del tutorial, consulta las instrucciones para eliminar recursos en la última página.

Antes de empezar

  1. Usa la consola de GCP para configurar el proyecto de Google Cloud Platform:
    1. Crea un nuevo proyecto de GCP, crea una aplicación de App Engine y habilita la facturación en ese proyecto:
      Ir a App Engine

      Cuando se te solicite, selecciona la región donde deseas ubicar tu aplicación de App Engine y habilita la facturación. El Panel de control se abre después de haber creado el proyecto en GCP.

    2. Habilita las API de Cloud Datastore, Cloud Pub/Sub, Cloud Storage JSON, Stackdriver Logging y Google+.

      Habilita las API

  2. Descarga, instala e inicializa el SDK de Google Cloud:
    Descargar el SDK
  3. Adquiere las credenciales locales para poder autenticarte en los servicios de Google Cloud Platform:
    gcloud auth application-default login
  4. Verifica que el proyecto predeterminado sea correcto:
    gcloud config list
    Si el ID del proyecto que figura en el resultado no es el proyecto que pretendías utilizar en este tutorial, introduce el siguiente comando para establecer el proyecto:
    gcloud config set project [YOUR_PROJECT_ID]
    donde [YOUR_PROJECT_ID] es el ID del proyecto que creaste o elegiste para este tutorial.
  5. Clona el repositorio de muestra:

    git clone https://github.com/GoogleCloudPlatform/getting-started-ruby.git

    También puedes descargar la muestra como un archivo ZIP y extraerla.

En este tutorial se da por hecho que estás familiarizado con Ruby on Rails y que tienes instalado Ruby 2.0.0 o una versión posterior. Para ejecutar el comando gem, necesitas RubyGems, que está incluido en Ruby. También debes tener Bundler instalado. Como es habitual al desarrollar con Ruby, la instalación de paquetes de Ruby en este tutorial requiere compilar código C y vincularlo con las bibliotecas del sistema. Asegúrate de tener un entorno de desarrollo adecuado configurado para tu sistema operativo concreto. Esto incluye un compilador de C, un enlazador y archivos de encabezado para las bibliotecas del sistema.

Estructura del tutorial

El tutorial de Bookshelf incluye varias secciones que muestran cómo la aplicación de muestra usa varios servicios de Cloud Platform.

En la sección de datos estructurados del tutorial se explica cómo la aplicación almacena información de los libros en una base de datos SQL o NoSQL. En la página web de la aplicación se puede ver un formulario en el cual el usuario puede introducir el título, el autor, la descripción y la fecha de publicación de un libro. La aplicación almacena la información de todos los libros que añade en una base de datos, de modo que se pueda recuperar más tarde para verla o editarla. En este paso del tutorial, puedes elegir entre tres bases de datos: Cloud SQL, Cloud Datastore o PostgreSQL. Podrás continuar una vez que hayas finalizado este paso con una de las bases de datos.

En la sección sobre Cloud Storage de este tutorial se explica cómo la aplicación de muestra almacena datos binarios en Cloud Storage. En la página web de la aplicación, el usuario puede especificar una imagen de portada para cada libro. La aplicación almacena dichas imágenes en un segmento de Cloud Storage.

En la sección sobre autorización de este tutorial se explica cómo la aplicación proporciona un flujo de inicio de sesión para el usuario. Cuando un usuario inicia sesión, cualquier libro añadido se asocia a ese usuario concreto. Los usuarios que hayan iniciado sesión solo ven sus propios libros.

En la sección sobre registros de este tutorial se explica cómo la aplicación escribe los registros que se pueden ver en la consola de Google Cloud Platform. Los registros de este tipo pueden proporcionar información de diagnóstico durante el desarrollo de la aplicación.

La sección sobre Pub/Sub del tutorial muestra cómo usa Cloud Pub/Sub la aplicación para enviar tareas a un trabajador en segundo plano. El trabajador recopila información de la API de Google Libros y actualiza la información del libro en la base de datos.