En este post vamos a hacer el despliegue de una aplicación en GCP. Vamos a desplegar a escala un servicio de inferencia online previamente hecho, para que este soporte miles de peticiones de manera concurrente. Para ello, utilizaremos el servicio de GCP Cloud Run.
¿Qué es Cloud Run?
Cloud Run es un servicio serverless (o sin servidor). Que sea serverless nos facilita la puesta en producción de aplicaciones pues, en este caso del despliegue de una aplicación en GCP, esta se encarga de gestionar la infraestructura y recursos desplegados para nuestra aplicación con base en la carga que tenga esta misma a lo largo del tiempo.
Esta práctica nos permite escalar de manera casi infinita, desde dar servicio solo a decenas de usuarios hasta hacerlo con millones de manera concurrente sin tener que realizar ningún ajuste.
Las aplicaciones serverless son una alternativa a los microservicios y los monolitos.
Despliegue de una aplicación en GCP
Crear una aplicación serverless
Para crear nuestra aplicación serverless tan solo tenemos que preocuparnos de que nuestro código funciona y empaquetar todo en una imagen Docker que, finalmente, será lo que despleguemos en Cloud Run.
Para crear esta imagen, dado que estamos en un entorno de Google Colab y, en este caso, no podemos utilizar Docker, haremos uso del servicio Cloud Build en GCP, que se encargará de generar la imagen con nuestro Dockerfile de la aplicación. Finalmente, la guardará en el Google Container Registry, donde se almacenan las imágenes de Docker.
Lo que haremos es decirle simplemente dónde queremos que lo suba:
#Despliegue de una aplicación en GCP
%cd /content/twitter-sentiment.analysis-online/
Ahora lo que haremos para subirlo es utilizar el SDK de Google Cloud. Le diremos al algoritmo que va a hacer una subida del trabajo que tenemos, donde tomaremos el docker file (el nombre que se le pondrá a la imagen docker será gcr, que es por defecto el nombre que se le pone a las imágenes de Google) junto al project id build, que es el proyecto en el que estamos trabajando en Google Cloud. Por último, ponemos el nombre con el que llamaremos a nuestra imagen, en este caso es “sentiment-analysis-server”.
#Despliegue de una aplicación en GCP
! gcloud builds submit --tag gcr.io/$PROJECT_ID/sentiment-analysis-server
Finalmente, procederemos a desplegar la imagen docker en el servicio de GCP Clod Run.
¿Dónde estamos?
Observa esta imagen:
A partir de ella, podríamos decir que ya hemos desarrollado nuestro microservicio y se lo hemos mandado a Cloud Build para que nos construya la imagen docker de este servicio.
Luego, cuando construya la imagen docker, lo que va a hacer es guardarla en el registro de contenedores. Este es un servicio que tiene Google donde lo que hace es almacenar imágenes que estén construidas en Docker.
Una vez tenemos la imagen docker, ya podemos tener servicios. Lo que vamos a utilizar es el servicio de Cloud Run, el usaremos para para desplegar, en este caso, las API para inferencia.
Cuando levantemos el servicio creado en la imagen docker, lo que va a hacer este es leer el modelo entrenado que tenemos en Cloud Storage.
Una vez hecho todo esto, podemos hacer peticiones desde donde queramos, desde el frontal, desde el terminal, etc.
Probando nuestra aplicación desplegada
Una vez desplegada nuestra aplicación serverless de inferencia online, ¡podemos usarla desde cualquier lugar del planeta! Tanto si es un usuario como si son millones.
Como ya se ha generado el modelo, vamos a ir al buscador de Google Cloud y localizamos “container registry”. Si carga, vemos que aquí ya tenemos nuestro contenedor con la imagen docker:
Esta imagen la podemos usar para hacer el despliegue de una aplicación en GCP.
Para hacer el despliegue de una aplicación en GCP usamos Cloud Run. Para ello, volvemos a la barra de búsqueda de Google Cloud y buscamos Cloud Run. Una vez allí, para que funcione tendremos que crear nuestro servicio ¡y listo!
¿Te gustaría seguir aprendiendo?
Si quieres seguir formándote en alguna de las numerosas temáticas del mundo del Big Data para destacar en este demandado mercado laboral, no puedes perderte el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. En esta formación de alta intensidad contarás con la guía de grandes expertos para aprender a nivel teórico y práctico para, en unos pocos meses, transformarte en un gran profesional IT. ¡Solicita ya mismo más información y da el salto que catapultará tu futuro!