Si alguna vez has usado Google App Engine, usted sabe que es una de las maneras más rápidas para llegar desde la idea al prototipo de trabajo., Mientras cumpla con las restricciones de sandbox, no necesita configurar servidores, instalar Paquetes ni realizar ninguna de las tediosas tareas de DevOps que lo ralentizan.
con la introducción del entorno Flexible de App Engine (anteriormente conocido como Managed VMs), Google eliminó muchas de las restricciones de sandbox y agregó más tiempos de ejecución integrados, incluido Node.js y Ruby. Incluso puede personalizar todo especificando su propio Dockerfile!
vea la comparación aquí.
sin Embargo, esta flexibilidad tiene un precio., El entorno Flexible es más lento de implementar y no se puede escalar tan rápido como el entorno estándar. La implementación predeterminada también es excesiva para la creación de prototipos.
la mayor diferencia en mi opinión es la falta de » escala a cero.»Con App Engine Standard, si nadie está usando tu aplicación, se apaga todo. En el momento en que un usuario visita, App Engine hace girar una instancia en milisegundos para servir la nueva solicitud. En combinación con la generosa capa gratuita, no tiene que preocuparse por los costos de infraestructura de los prototipos., Actualmente, el entorno Flexible necesita al menos una instancia en ejecución para servir el tráfico y no hay un nivel gratuito.
echemos un vistazo a algunas de las mejores prácticas para la creación de prototipos con el entorno Flexible que puede minimizar el costo.
actualización de 2019: recomiendo encarecidamente usar Cloud Run en lugar de App Engine Flex para la mayoría de las tareas. En mi opinión, combina lo mejor de App Engine Standard (pago por uso, escala a cero) con App Engine Flex (flexibilidad, Dockerfiles). La única ventaja importante que tiene Flex es el tamaño de las instancias más grandes.,
vamos a lanzar un nodo.aplicación js en el entorno Flexible del motor de la aplicación. La aplicación predeterminada.yaml se ve algo como esto:
runtime: nodejs
env: flex
Implementar con el gcloud comando:
$ gcloud app deploy
Después de la implementación de la aplicación, nos puede comprobar fuera de las «Instancias» de la sección de App Engine para ver las opciones siguientes:
Por defecto, lanza dos n1-estándar-1 VMs., Esto está diseñado para proporcionar una mayor fiabilidad.
veamos el costo mensual de esta implementación. He configurado esta implementación predeterminada en la calculadora de precios de Google Cloud aquí.
Es más de $80 al mes!
si bien este precio estaría bien si estuviera sirviendo tráfico de producción, es bastante ridículo en la etapa de creación de prototipos.
Paso Uno: reducir el número de instancias
podemos reducir nuestro costo a la mitad lanzando una instancia en lugar de dos. Haga esto activando el escalado manual (no necesita escalado automático para un prototipo) y estableciendo las instancias en 1., Puede leer más sobre el escalado aquí.
Modificar la aplicación.yaml:
runtime: nodejs
env: flex
manual_scaling:
instances: 1
Esto va a reducir nuestro costo de alrededor de $80 a $40! ¡Bonito!