App Engine Estándar vs Flexible: Ventajas y Usos Prácticos

Clase 12 de 48Entrenamiento de Google Cloud Platform

Contenido del curso

Compute on Google Cloud Platform

Google Kubernetes Engine

Streaming Data Analytics

Machine Learning

Resumen

¿Qué es Google App Engine?

Google App Engine es una plataforma de nube que permite desarrollar aplicaciones escalables y automatizar su administración. Es conocida por ofrecer dos entornos principales: estándar y flexible. Estos entornos permiten a los desarrolladores seleccionar cómo desean desplegar y manejar sus aplicaciones en la nube.

¿Cuáles son las diferencias entre App Engine estándar y flexible?

App Engine Estándar:

  • Restricciones: Funciona en un sandbox, lo que significa que el control del sistema de archivos es limitado.
  • Escalabilidad: Ofrece escalado automático a cero, ideal para aplicaciones que no necesitan estar ejecutándose constantemente.
  • Despliegue: Se despliega en una sola zona. Si hay un error, se redistribuye a otra zona sin intervención manual.
  • Economía y Velocidad: Puede ser más económico y ofrece un despliegue rápido en caso de fallos.

App Engine Flexible:

  • Contenedores Docker: Tus aplicaciones corren en contenedores Docker en máquinas virtuales, proporcionando más flexibilidad.
  • Libertad de Uso: Permite el uso de librerías externas y tiene menos restricciones comparado con el estándar.
  • Despliegue Regional: Funciona a través de grupos de instancias regionales, distribuyéndose en múltiples regiones.
  • Instancias Persistentes: Se necesita al menos una instancia registrada y no permite escalado a cero.

¿Cómo funciona el despliegue en App Engine Flexible con NodeJS?

App Engine Flexible ofrece la posibilidad de desplegar aplicaciones NodeJS utilizando contenedores. A continuación se describe un ejemplo de cómo se realiza:

  1. Descarga de Proyectos:

    • Clonar un repositorio de ejemplos proporcionado por Google, que contiene proyectos de prueba, usando git clone.
  2. Estructura del Proyecto:

    • Implementar un proyecto con NodeJS usando Express para manejar las rutas y desplegar la aplicación en el puerto 8080.
    const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hola, mundo'); }); const PORT = 8080; app.listen(PORT, () => { console.log(`Listening on port ${PORT}`); });
  3. Configuración de App Engine:

    • Modificar el archivo app.yaml para definir el entorno flexible y el runtime NodeJS deseado. También se pueden especificar detalles de escalamiento y el nombre del servicio.
    runtime: nodejs env: flex service: nombre-del-servicio manual_scaling: instances: 1
  4. Implementación y Despliegue:

    • Ejecutar npm install para instalar todas las librerías necesarias.
    • Desplegar la aplicación con un simple comando. El sistema permite manejar versiones y tráfico de aplicaciones de manera eficiente.

¿Cómo se gestionan las versiones y el tráfico en App Engine Flexible?

Cuando se crea una nueva versión de una aplicación en App Engine Flexible, se maneja de manera que se asegure un flujo adecuado sin afectar a los usuarios:

  • Gestión de Versiones: La plataforma permite mantener múltiples versiones simultáneamente, y distribuir el tráfico entre las distintas versiones de manera aleatoria o basada en cookies, permitiendo un control progresivo.

  • Pruebas A/B y Despliegues Graduales: Se pueden realizar pruebas de tipo A/B implementando múltiples versiones y mandando un porcentaje específico del tráfico a una versión nueva para evaluar su rendimiento y aceptación.

Google App Engine Flexible es una herramienta poderosa que ofrece la flexibilidad que las organizaciones necesitan en entornos de desarrollo modernos y distribuidos.