Este tutorial va dirigido a personas que no tengan experiencia en el desarrollo de aplicaciones en la nube, como ingenieros o desarrolladores web, y que quieran aprender los conceptos básicos del desarrollo de aplicaciones en el entorno de Google Cloud.
Objetivos
- Aprender los aspectos básicos de las herramientas de Google Cloud, como la consola de Google Cloud y
gcloud
. - Desplegar una aplicación en el entorno estándar de App Engine.
- Conservar los datos con Firestore.
- Almacenar archivos subidos en Cloud Storage.
- Monitorizar la aplicación con la suite de operaciones de Google Cloud.
Para ver otros tutoriales sobre cómo desarrollar aplicaciones en lenguajes específicos, consulta la siguiente guía:
Costes
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Las instrucciones de este documento están diseñadas para que el uso de los recursos se mantenga dentro de
los límites del nivel Siempre gratuito
de Google Cloud.
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Para crear una base de datos de Firestore en modo nativo, sigue estos pasos:
-
En la consola de Cloud, ve a la página del visualizador de Firestore.
Ir al visualizador de Firestore - En la pantalla Selecciona un modo de Cloud Firestore, haz clic en Seleccionar modo nativo.
- Selecciona una ubicación para tu base de datos de Firestore. La opción que configures será la ubicación predeterminada de los recursos de Google Cloud para tu proyecto de dicha plataforma. Esta ubicación se usa para los servicios de Google Cloud de tu proyecto que requieren un ajuste de ubicación. Concretamente, para tu segmento de Cloud Storage predeterminado y tu aplicación de App Engine.
- Haz clic en Crear base de datos.
-
En la consola de Cloud, ve a la página del visualizador de Firestore.
-
Enable the App Engine Admin, Cloud Storage, Cloud Logging, and Error Reporting APIs.
-
En Cloud Shell, abre el código fuente de la aplicación.
Ir a Cloud ShellCloud Shell te ofrece acceso a tus recursos de Google Cloud mediante la línea de comandos directamente desde el navegador.
- Para descargar el código de muestra y cambiarlo en el directorio de la aplicación, haz clic en Continuar.
-
En Cloud Shell, configura la herramienta
gcloud
para usar tu nuevo proyecto de Google Cloud:# Configure gcloud for your project gcloud config set project PROJECT_ID
Sustituye PROJECT_ID por el ID del proyecto de Google Cloud que has creado con la consola de Cloud.
La herramienta de línea de comandos
gcloud
es la forma principal de interactuar con tus recursos de Google Cloud desde la línea de comandos. En este tutorial, usarás la herramientagcloud
para desplegar y monitorizar tu aplicación.
Ejecutar la aplicación
- Instala las dependencias de la aplicación con
bundler
:bundle install
- Ejecuta el servidor Rails:
GOOGLE_CLOUD_PROJECT=PROJECT_ID bundle exec rails server -p 8080
Sustituye PROJECT_ID por el ID del proyecto de Google Cloud que has creado. - En Cloud Shell, haz clic en Vista previa web y selecciona Obtener vista previa en puerto 8080 para que se abra una ventana nueva con tu aplicación en ejecución.
Desplegar la aplicación en App Engine
Google Cloud te ofrece diferentes opciones para ejecutar tu código. En este ejemplo, usarás App Engine para desplegar una aplicación escalable en Google Cloud. Esta plataforma te permite centrarte en escribir código, ya que no tienes que gestionar servidores ni configurar los despliegues. Además, se escala automáticamente para adaptarse a los picos de tráfico repentinos.
El archivoapp.yaml
es el archivo de configuración principal para desplegar tu aplicación en App Engine:
- En la ventana de terminal, despliega la aplicación en App Engine con la herramienta
gcloud
:# on the command-line gcloud app deploy
- Introduce la siguiente URL en el navegador web:
https://PROJECT_ID.REGION_ID.r.appspot.com
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto de Google CloudREGION_ID
: un código que App Engine asigna a tu aplicación
Para obtener más información sobre el despliegue en App Engine, consulta la página del entorno de ejecución de Ruby 2.5.
Conservar los datos con Firestore
No puedes almacenar información en tus instancias de App Engine, ya que se perderá si se reinician las instancias y no se mantendrá al crear otras. En su lugar, debes usar una base de datos que todas tus instancias utilicen para las operaciones de lectura y escritura.
Google Cloud te ofrece varias opciones para almacenar tus datos. En este ejemplo, vas a usar Firestore para almacenar los datos de cada libro. Firestore es una base de datos NoSQL de documentos totalmente gestionada y sin servidor que permite almacenar y consultar datos. Se escala automáticamente para adaptarse a las necesidades de tu aplicación y no consume ningún recurso cuando no la usas. Ahora vamos a añadir tu primer libro.
- Introduce la siguiente URL en el navegador web:
https://PROJECT_ID.REGION_ID.r.appspot.com
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto de Google CloudREGION_ID
: un código que App Engine asigna a tu aplicación
-
Para crear un libro en tu aplicación desplegada, haz clic en Add book.
- En el campo Title, introduce
Moby Dick
. - En el campo Author, introduce
Herman Melville
. -
Haz clic en Save, y se habrá creado una entrada en tu aplicación Bookshelf.
- En la consola de Cloud, haz clic en Actualizar refreshpara actualizar la página de Firestore. Los datos aparecerán en Firestore. La aplicación Bookshelf almacena cada libro como un documento de Firestore con un ID único, y estos documentos se guardan a su vez en una colección de Firestore. En este tutorial, la colección se llama "books".
Firestore almacena los libros mediante la biblioteca de cliente de Firestore. A continuación se incluye un ejemplo de cómo obtener un documento de Firestore:
Para obtener más información acerca del uso de Firestore, consulta el artículo sobre cómo añadir datos a Firestore.
Almacenar archivos subidos en Cloud Storage
Ahora que has añadido un libro, ha llegado el momento de añadir una imagen de portada. No puedes almacenar archivos en tus instancias, y una base de datos no es la opción adecuada para los archivos de imagen. En su lugar, te recomendamos que uses Cloud Storage.
Cloud Storage es el almacén de blobs principal de Google Cloud. Puedes usarlo para alojar los recursos de la aplicación que quieras compartir en Google Cloud. Para ello, debes crear un segmento de Cloud Storage (un contenedor básico para tus datos).
- En la consola de Cloud, ve a la página Navegador de Cloud Storage.
- Haz clic en Crear segmento.
- En el cuadro de diálogo Crear segmento, escribe el nombre del segmento. Para ello, añade el ID de tu proyecto de Google Cloud a la cadena
_bucket
para que el nombre tenga el formatoYOUR_PROJECT_ID_bucket
. El nombre está sujeto a los requisitos de nombres de segmentos. Puedes dejar los valores predeterminados del resto de los campos. - Haz clic en Crear.
- Después de crear el segmento, los objetos deben ponerse a disposición pública para que los usuarios puedan verlos. Para configurar el acceso público de tus objetos, consulta la sección sobre cómo hacer públicos los datos.
-
Haz clic en Edit book y selecciona una imagen para subirla como portada del libro. Por ejemplo, puedes usar esta imagen pública:
-
Haz clic en Save. Se te redirigirá a la página principal, donde verás una entrada de tu aplicación Bookshelf.
La aplicación Bookshelf envía los archivos subidos a Cloud Storage mediante la biblioteca de cliente de Cloud Storage.
Para obtener más información sobre cómo usar Cloud Storage, consulta la lista de guías prácticas.
Monitorizar la aplicación con la suite de operaciones de Google Cloud
Ya has desplegado tu aplicación, has creado libros y los has modificado. Si quieres monitorizar estos eventos para tus usuarios, usa la gestión del rendimiento de aplicaciones.
Monitoriza registros con Cloud Logging
Consola de Cloud
-
En el navegador, ve a la URL
/logs
de tu aplicación:https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Esta acción envía una entrada personalizada a Cloud Logging. El nivel de gravedad de registro de la entrada es
NOTICE
y contiene el mensaje "Hey, you triggered a custom log entry. Good job!" (Has activado una entrada de registro personalizada. Buen trabajo). -
Ve al visualizador de registros, donde puedes monitorizar tu aplicación en tiempo real. Si se produce algún error, este es uno de los primeros sitios a los que acudir.
- En la lista desplegable de recursos, selecciona
GAE Application
. -
En la lista desplegable de registros, selecciona Todos los registros.
Hay una fila para tu entrada de registro personalizada.
gcloud
-
En la ventana de terminal, procesa entradas de registro nuevas con la herramienta de línea de comandos
gcloud
para monitorizar los registros de tu aplicación:gcloud app logs tail
-
En el navegador, ve a la URL
/logs
de tu aplicación:https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Esta acción envía una entrada personalizada a Cloud Logging. El nivel de gravedad de registro de la entrada es
NOTICE
y contiene el mensaje "Hey, you triggered a custom log entry. Good job!" (Has activado una entrada de registro personalizada. Buen trabajo).La salida del comando
gcloud
muestra la nueva entrada de registro:Waiting for new log entries... 2019-03-27 22:17:01 default[20190327t151430] "Hey, you triggered a custom log entry. Good job!"
Monitorizar errores con Error Reporting
-
En la consola de Cloud, ve a la página Error Reporting.
Ir a la página Error Reporting
Error Reporting señala los errores y las excepciones de tu aplicación, y te permite configurar alertas al respecto. -
En el navegador, ve a la URL
/errors
de tu aplicación.
https://PROJECT_ID.REGION_ID.r.appspot.com/errors
Esta acción genera una nueva excepción de prueba y la envía a la suite de operaciones de Google Cloud.
-
En la consola de Cloud, vuelve a la página Error Reporting. En unos minutos, aparecerá el nuevo error. Haz clic en Volver a cargar automáticamente para que no tengas que actualizar la página manualmente.
Eliminar los recursos utilizados
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Eliminar el proyecto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.