6

Qué es y cómo funciona Google App Engine

792Puntos

hace 6 años

Google App Engine es otro de los servicios que conforman la familia de Google Cloud Platform. Este servicio es del tipo Plataforma como Servicio o Platform as a Service (PaaS), nos permite publicar aplicaciones web en línea sin necesidad de preocuparnos por la parte de la infraestructura y con un enfoque 100% en la construcción de nuestra aplicación y en la posibilidad de correrla directamente sobre la infraestructura de Google, es decir, la que Google usa para sus propios productos.

Como cualquier otra Plataforma como Servicio, App Engine nos facilita construir, mantener y escalar nuestra aplicación en la medida que sea necesario.

Otra de sus características es que las aplicaciones pueden ser escritas en lenguajes como Java, Python, PHP y Go.

Cuando usamos Google App Engine (GAE) no nos tenemos que preocupar por la escalabilidad de nuestra aplicación ya que cuenta con un balanceador de carga y escalamiento automático.

Así nuestra aplicación solamente será atendida por las máquinas necesarias para tener un perfecto comportamiento y para que la respuesta de nuestra aplicacion sea la más óptima.

GAE también nos asegura almacenamiento persistente y veloz, ya sea usando Google Cloud Datastore (recomendado) o usando Google Cloud SQL, así como la posibilidad de tener tareas asíncronas corriendo en procesos de colas o tareas continuas y regulares corriendo en ciertos intervalos de tiempo.

GAE es completamente amigable con otros productos de Google Cloud Platform, de manera que tenemos la capacidad de integrarlos entre ellos.

Para el almacenamiento de datos tendremos dos posibilidades en casi cualquier lenguaje en el que estemos desarrollando: Cloud Datastore y Cloud SQL.

Cloud Datastore es una base de datos NoSQL ideada como la opción de almacenamiento principal a la hora de que corremos aplicaciones en App Engine.

Una de las características de Cloud Datastore es que eventualmente es consistente, lo que significa que la información que almacenemos no será inmediatamente registrada, si no más bien, lo hará eventualmente.

Está basado en transacciones atómicas, que pueden contener más de una operación a la base de datos. Una transacción en Cloud Datastore no puede ser finalizada a menos que todos sus procesos hayan sido concluidos, lo que lo hace muy útil en situaciones en las que se hacen muchas operaciones sobre la misma información al mismo tiempo. Cloud Datastore no está disponible si estamos usando PHP.

Por otro lado Cloud SQL es una base de datos MySQL que corre en la nube de Google y tiene todas las características de cualquier base MySQL, entre otras.

Google Cloud SQL se encarga de todo el mantenimiento y no tendrás que preocuparte por servidores de bases de datos y cosas por el estilo. A diferencia de una base MySQL común, Google Cloud SQL ofrece la capacidad de replicar las bases de datos en diferentes puntos geográficos para tener mayor disponibilidad y durabilidad con facilidad.

Entre todos los servicios compatibles y complementarios de Google App Engine tenemos el Blobstore para el almacenamiento y procesamiento de archivos grandes y pesados como imágenes y videos; Google Cloud Endpoints para generar servicios REST para ser consumidos por todo tipo de clientes, desde móviles hasta aplicaciones web; App Engine Memcache como capa de cache en la que existen: memcache compartido completamente gratuito y servido por App Engine y memcache dedicado que tiene un cobro por GB/hora de cache usado.

También se cuenta con un servicio de logs para monitorear en tiempo real el estado de nuestra aplicación y un servicio de colas para poder procesar grandes tareas de manera asíncrona, fuera de la petición del usuario, entre otros servicios.

Si decides usar Python como lenguaje de programación en tu proyecto de Google App Engine, cabe recalcar que no hay una manera oficial y nativa de correr proyectos de Django. Aunque existen algunas formas de usar Django en Google App Engine por medio de hacks, no es la tecnología recomendada para aprovechar al 100% el poder de Google App Engine. Para esto contamos con el framework web desarrollado por Google específicamente para correr sobre Google, webapp2.

Por último, entre los clientes más destacados de Google App Engine está Rovio (creador de Angry Birds), Khan Academy, Best Buy y Feedly quienes han ahorrado mucho tiempo en la creación y diseño de la infraestructura usando App Engine y sus servicios.

Desde mi punto de vista es una plataforma muy completa. Sin embargo, si necesitaramos implementar un sistema y una arquitectura un poco más complejas y sofisticadas, perderíamos el principio de Platform as a Service, en donde no te preocupas por muchas cosas del lado del servidor y te concentras más en la aplicación.

También creo que App Engine es una de las pocas o únicas Plataformas como Servicio que se puede implementar para ambientes de producción complejos o con tráfico de manera profesional.

Pablo
Pablo
Escribe tu comentario
+ 2
1
4642Puntos

Cloud SQL solo sirve para App Engine o puedo usarlo en un proyecto PHP local? He intentado lo segundo y no me muestra datos (con un MYSQL local funciona a la perfección , y eso que a Cloud SQL entro desde el MySQL Workbench y me deja acceder sin problema)

0
10887Puntos
3 años

No, Puedes crear una instancia en compute engine y conectarla por una red interna a cloud SQL. No se si puedas enlazarte desde fuera del entorno de google pero si funciona con servicios que no sean App Engine.

0
5377Puntos
3 años

Hola Jesus, puedes utilizar Cloud SQL desde cualquier otro servicio como Compute Engine (como dice Larpa), Kubernetes Engine, etc. También cabe mencionar que como servicio de base de datos relacional te permite hacer consulta de datos desde fuera de GCP, pero debes configurar controles de acceso. Saludos