Contenido del curso
Publicando una aplicación en App Engine
Integrando servicios de almacenamiento
Arquitectura y optimización
Creando servicios REST
Seguridad y control de accesos
Servicios de apoyo (BONUS)
Conclusiones
Integración de Google Cloud Datastore con NDB
Resumen
Google Cloud Datastore simplifica el almacenamiento de datos a escala con alta confiabilidad. Aquí verás cómo integrarlo con App Engine usando NDB, desde el despliegue hasta las consultas, siguiendo un flujo probado y claro. Conecta conceptos como entidad, kind, propiedad y key con ejemplos prácticos y comandos esenciales de GCloud para producción.
¿Qué es Google Cloud Datastore y cómo se estructura?
Datastore es una base de datos no SQL pensada para backends: altamente escalable, replicada entre zonas de cómputo y confiable. Soporta transacciones ACID, acceso vía APIs REST, autoescalado y autenticación. Así, la escritura de datos queda distribuida para disponibilidad y rendimiento.
¿Por qué Datastore es una base de datos no SQL escalable?
- Replica información en varias zonas de cómputo para resiliencia.
- Exposición vía APIs REST de uso sencillo.
- Soporta transacciones ACID para consistencia.
- Autoescalado transparente para cargas variables.
¿Qué significan entidad, kind, propiedad y key?
- Entidad: un objeto o registro almacenado.
- Kind: la categoría del objeto, equivalente conceptual a una tabla en SQL.
- Propiedad: un atributo o campo dentro de la entidad.
- Key: la llave única (ID) de cada entidad.
¿Qué aporta la librería NDB en App Engine?
NDB es la librería de Google para Python en App Engine. Permite:
- Crear y consultar entidades con clases y métodos simples.
- Controlar indexación por propiedad para acelerar consultas.
- Usar métodos como put (almacenar) y get (recuperar).
¿Cómo desplegar en App Engine con GCloud y app.yaml?
El flujo inicia en la consola de Google: console.cloud.google.com. Desde Google Cloud Shell se descarga el código, se configura con app.yaml y se hace deploy a producción.
¿Cómo preparar el entorno en Google Cloud Shell?
- Abrir Cloud Shell y ubicarse en el directorio preferido.
- Clonar el repositorio desde GitHub; si faltan permisos, usar sudo.
git clone <URL-del-repositorio> cd <carpeta-del-repo>
- Listar archivos y confirmar que existe app.yaml.
¿Qué contiene el archivo app.yaml?
- Variables y configuración para el despliegue en App Engine.
- Definición del servicio por defecto y parámetros básicos.
Puntos clave:
- Usar el ID del proyecto correcto al desplegar.
- Mantener variables preconfiguradas para evitar errores en producción.
¿Cómo ejecutar gcloud app deploy y abrir la URL?
- Desplegar indicando el proyecto.
gcloud app deploy app.yaml --project <ID-del-proyecto>
- Confirmar el descriptor y la ruta del proyecto.
- Abrir la URL sugerida por GCloud.
gcloud app browse
- Verificar que la aplicación responda correctamente en producción.
¿Cómo se almacena y consulta información en Datastore con NDB?
La aplicación implementa un flujo de solicitud de crédito: primero registra un usuario y luego procesa la solicitud con reglas simples, persistiendo todo en Datastore.
¿Cómo fluye el registro y la solicitud de crédito?
- Formulario 1: identificación, nombre, apellido y email.
- Si el usuario no existe, se registra y se confirma.
- Formulario 2: NIT y salario.
- Se calcula el resultado y se muestra aprobación con un valor.
¿Dónde ver entidades y datos en Datastore?
- Ir a Storage > Datastore > Entidades en el proyecto.
- Entidad usuario: nombre, apellido, identificación y correo.
- Entidad solicitud: fecha de solicitud, identificación de usuario, NIT, salario, estatus aprobado y valor aprobado. Campos opcionales como fecha de ingreso pueden declararse según necesidad.
¿Cómo funcionan las consultas NDB y el método put?
- Modelo usuario: atributos indexables como identificación (entero), nombre, apellido y email.
- Consulta “obtener usuario por ID”: query por la propiedad identificación y uso de get para el objeto completo.
- Registro de usuario: crear objeto usuario, asignar propiedades y ejecutar put para guardar (retornar con get si se requiere el objeto).
- Modelo solicitud: incluye fecha de solicitud y demás campos del proceso.
- Consulta de solicitudes recientes: ordenar por fecha de solicitud en forma descendente y limitar resultados con fetch (por ejemplo, cinco registros).
- Registro de solicitud: persistencia con put y recuperación con get.
En conjunto, NDB ofrece una integración rápida y sencilla con Datastore en Python, especialmente cuando el entorno ya cuenta con las librerías de App Engine y el Cloud SDK instalado.
¿Tienes dudas o ideas para mejorar el flujo de datos? Comparte tu comentario y conversemos.