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:
Descarga de Proyectos:
Clonar un repositorio de ejemplos proporcionado por Google, que contiene proyectos de prueba, usando git clone.
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');});constPORT=8080;app.listen(PORT,()=>{console.log(`Listening on port ${PORT}`);});
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.
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.
App Engine Estándar vs Flexible: Ventajas y Usos Prácticos