8

Qué es y cómo funciona Google App Engine

835Puntos

hace 9 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
______pablo

835Puntos

hace 9 años

Todas sus entradas
Escribe tu comentario
+ 2
1

Hey Java devs, I’ve got to share my excitement about Google App Engine (GAE). If you’re tired of dealing with server headaches, GAE is a game-changer. I mean, you can focus on crafting your awesome Java code, and Google takes care of all the infrastructure stuff. It’s the same powerhouse that runs Google’s own products, so you know it’s solid.
What’s cool is that GAE speaks your language, whether it’s Java, Python, PHP, or Go. And scaling your app? It’s like a dream with the automatic load balancer and magical scaling – seriously, no more stressing about peak traffic.
But wait, there’s more! GAE hooks you up with fast storage using Cloud Datastore or the familiar Cloud SQL. And if you need to handle background tasks or scheduled jobs, GAE’s got your back with queues and cron workflows.
So, fellow Java devs, say goodbye to server stress and let your coding superpowers shine with GAE. Check out the possibilities https://andersenlab.com/find-developers/java and watch your apps take off!