El Camino de “Google Cloud Function” a “Google Cloud Run Function”

6 min de lectura Ver original en Hashnode
Compartir:

Ambos son servicios Serverless que Google Cloud ofrece dentro de Google Cloud Platform (GCP), vamos a intentar recorrer el camino y entender los conceptos involucrados entre ambos servicios.

Primero, iniciamos ordenando nombres y lanzamientos de los servicios que vamos a analizar.

(2017) Google Cloud Function (1 gen) apareci en marzo 9 del 2017. Link (reslease notes oficiales de GCP). En este caso se trataba de un servicio que permita desplegar solamente nuestro cdigo seleccionando un runtime dentro de los disponibles.

(2018) Google Cloud Run del 15 de agosto de 2018. Link. Qu es Google Cloud Run?, en palabras de Google:

Cloud Run es una plataforma de procesamiento administrada que te permite ejecutar contenedores directamente sobre la infraestructura escalable de Google

fuente

  • (2022) El 14 de febrero de 2022, Google lanz una actualizacin de Google Cloud Functions, denominada 2 gen Link, con varias mejoras que complementaban la versin 1.

Antes de continuar, ya identificados los lanzamientos importantes, ahora veamos un poco de contexto.

En varios otros artculos y charlas que he tenido oportunidad de compartir, he hablado sobre Serverless. En cuanto a la definicin, he comentado que una manera de definir los fundamentos de cmputo de Serverless sera: Una evolucin de la gestin eficiente y atmica de los contenedores. Podemos, incluso, partir del concepto de cuando ejecutbamos nuestras cargas de trabajo en un monolito hasta el concepto de Serverless como se muestra en la imagen a continuacin.

En los casos ms conocidos como AWS lambda y en el caso de Google Cloud Functions, lo que tenemos es una gestin muy eficiente de los contenedores, as como una integracin con el resto de los servicios en que cada Cloud Provider ofrece permitiendo despertar ante un evento o un request HTTP.

Pero, cmo se ve esto por dentro?

Si quisiramos montar una infraestructura Serverless en un entorno On Prem tendramos que ir por una arquitectura como la siguiente:

Si viramos a Serverless solo desde la perspectiva del cmputo, podramos resumirlo como se muestra en la grfica anterior, donde evolucionamos desde el Bare-metal hasta el Serverless Compute. Aun cuando sabemos que Serverless como concepto es mucho ms que esta abstraccin, es interesante esta visin para el anlisis que estamos realizando.

  • (2024) Volvamos a Google Cloud Platform, teniendo en cuenta el contexto que hemos analizado, el pasado 21 de agosto de 2024 Google renombr la primera generacin de Google Cloud Function y la segunda generacin como podemos ver en la imagen a continuacin. Source: Google

Esto qu significa? Desde mi perspectiva, es una muestra de cmo las Cloud Function/Cloud Run Functions son una extensin de Google Cloud Run y que Google Cloud Run es una abstraccin de una herramienta de orquestacin de contenedores(Kubernetes?).

En palabras de Google:

Con Cloud Run Functions, puedes escribir funciones de un solo propsito vinculadas a eventos emitidos desde tu infraestructura y servicios de nube. Tu funcin de Cloud Functions se activa cuando ocurre un evento que est bajo observacin. Tu cdigo se ejecuta en un entorno completamente administrado, sin necesidad de aprovisionar infraestructura ni preocuparte por administrar servidores

fuente

Vemos claramente que el concepto de Serverless como cmputo siempre ha estado atado a la orquestacin de contenedores. Con esto en mente sera interesante que pensemos si las discusiones de la eleccin entre Kubernetes o Serverless (si existieran) las tendramos que enfocar desde otra perspectiva.

Pero, qu tiene el cambio de nombre de trasfondo?

Adems de permitirnos el anlisis de cmo el cmputo en las Cloud Function (Functions as a Services) es una extensin de todo el ecosistema de contenedores y orquestadores, despus de leer mucho, investigar, he encontrado muchas mejoras en varios artculos, incluso oficiales de Google (Link) explicando las diferencias.

💡 Sin embargo, en una comparativa con las opciones directas para implementar Serverless (AWS lambda, Azure, Azure, Functions) s hay una mejora importante en cuanto al cmputo que es interesante, destacar sera:

Esto va ms all de un simple cambio de nombre. Hemos unificado la infraestructura de Cloud Functions con Cloud Run, y los desarrolladores de Cloud Functions (segunda generacin) obtienen acceso inmediato a todas las nuevas funciones de Cloud Run, incluidas las GPU NVIDIA.

fuente

Despliegue de las Google Cloud Run Functions (1 y 2 gen)

Sacando del listado las herramientas nativas de Google (Link) nos quedan dos caminos para desplegar las dos versiones de Google Cloud Run Function.

Terraform

Herramienta conocida del mercado, soporta varios Providers entre los que se encuentra GCP. Terraform tiene su propio lenguaje de programacin HCL para construir/describir la infraestructura que queremos. Lo interesante aqu es que las versiones de los mdulos para desplegar terraform de las cloud function siguen siendo compatibles para desplegar las Google Cloud Run Functions. Google en su blog oficial anunci que contina el soporte para las APIs y los mdulos de terraform existentes. Link

Pulumi

Pulumi es una herramienta de Infraestructura como que soporta varios Providers y distintos lenguajes de programacin para construir la infraestructura. No he encontrado informacin oficial, pero Pulumi usa la API de Google, con lo cual asumimos que sigue funcionando, sin embargo, mientras publico este post estoy haciendo pruebas con ambas herramientas para compartir el comportamiento de ambas.

Pulumi Deployments Architecture Screenshot />

Conclusiones

La evolucin de Google Cloud Function a Google Cloud Run Functions, es un ejemplo de como Serverless es una tecnologa que se construye como una abstraccin tcnica y conceptual de otras tecnologas y conceptos nativos del Cloud Computing.

Sin duda alguna la evolucin del cmputo de Functions en Google Cloud ofrece una gran oportunidad para explorar un nuevo panorama en el mundo Serverless y definitivamente me genera mucha curiosidad y me tendrn por aqu compartiendo todo lo que vaya encontrando, descubriendo.

Referencias:

Terraform (https://www.terraform.io/)

Pulumi (https://www.pulumi.com/)

Anuncio oficial Google: Cambio nombre a Google Cloud Run Functions (Link)

Release Note: Google Functions (Link)

Release Note: Google Run (Link)

Charla en la t3chFest: https://youtu.be/3LgFUtTfgTU?si=GmyrK_9lC8Lgu5lL

Charla CommitConf: https://youtu.be/2pu0ojBH7hI?si=UD_14WulYSMdMJ7x


Artículo original: El Camino de “Google Cloud Function” a “Google Cloud Run Function”