Soluciones Google Cloud ¿Cuál es la mejor? (Parte 1)

Soluciones Google Cloud en Hocelot

Todas las empresas del sector tecnológico tienden cada día a buscar nuevas soluciones, adaptar sus tecnologías a los tiempos modernos que corren, y sobre todo diferenciarse del resto aceptando nuevos retos. Y créeme, nunca es fácil decidir por una u otra solución para conseguir el éxito.

Como casi todos sabemos, existen numerosos productos de proveedores Cloud. Principalmente: Google, Amazon y Microsoft. Ofrecen muchas soluciones aparentemente atractivas, pero nadie sabe a ciencia cierta cómo y por qué se utilizan. En este caso, vamos a centrarnos únicamente en nuestro proveedor de soluciones: Google Cloud.

Para poneros en contexto, en Hocelot trabajamos cada día para crear y mejorar continuamente modelos de Machine Learning que nos ayuden en la toma de decisiones de nuestros clientes. Para ello, hemos creado una serie de API’s que se conectan directamente con estos modelos y realizan consultas a otras API’s de forma online. Es decir, olvidémonos de procesos lentos, pesados y dañinos para nuestros sistemas y, por supuesto, olvidémonos de almacenar datos en “vertederos virtuales”, que muchas veces se vuelven inmanejables.

A continuación te contamos todo lo que necesitas saber para decidir qué opción es la que mejor se adecua a tu necesidad. Especialmente si lo que buscas es evitar los problemas comentados previamente.

1. Cloud Functions, ¿qué son y para qué sirven?.

Si nos fijamos en la imagen, el activador es HTTP. Este tipo de activador es uno de los múltiples activadores ofrecidos, y es ideal si lo que queremos es que nuestro código se ejecute como respuesta a un evento generado en nuestra API.

Este producto ofrecido por Google no es más que un código que está a la espera de ser ejecutado, ¿y cómo se ejecuta? Simple, cada Cloud Function tiene una URL única accesible desde todo Internet.

Pero a veces no todo es tan sencillo y rápido como esperamos. Cloud Functions consiste en bloques de código que, cuando son invocados, necesitan un tiempo para asignar recursos físicos de memoria y CPU. Una vez tiene estos recursos, no espera indefinidamente, sino que tienen un tiempo de espera limitado antes de volver a volatilizarse. Además, Google no permite atender todas tus peticiones a la API de golpe, las atenderá de una en una en primera instancia. Es cierto que tienen un mecanismo de auto escalado implementado que, conforme se alargue en el tiempo el consumo de tu API, irá atendiendo más peticiones simultáneamente. ¿Que por qué sabemos esto? Porque lo hemos probado.

It´s time to test!

Nuestro código de test simplemente ejecuta 8 activaciones simultaneas HTTP, esperan 1 segundo, y nos devuelven una respuesta. Pero, como os comentábamos anteriormente, el resultado conlleva un proceso lento.

(base) victor@ideapad:
-/Escritorio/ENTORNOS_GCLOUD/test-etl/test_cloud_function/serverless$ 
python3 cf_multi_request.py
==========================================================================
Elapsed time for request 1 1.0004689693450928 seconds!
Elapsed time for request 2 1.000147819519043 seconds!
Elapsed time for request 3 1.0001671314239502 seconds!
Elapsed time for request 4 1.00018310546875 seconds!
Elapsed time for request 5 1.0001704692840576 seconds!
Elapsed time for request 6 1.0031306743621826 seconds!
Elapsed time for request 7 1.0002079010009766 seconds!
Elapsed time for request 8 1.0001790523529053 seconds!
TOTAL elapsed time for all request: 10.201831340789795 seconds
==========================================================================

¡Vaya! ¡10 segundos en atender las 8 peticiones! No está mal, pero no parece muy rápido que digamos…

Nos vemos en el siguiente post con el análisis de Cloud Run y de GKE ¡no te lo pierdas!

Share This

Copy Link to Clipboard

Copy