Azure

Containerless, una versión Serverless de Contenedores en Azure

 

Azure Container Instances es la versión Serverless para ejecutar contenedores en Azure, lo que nos simplifica la administración o el provisionado de servidores que conformen un cluster. Simplemente instanciamos un contenedor y se ejecuta, sin saber dónde ni cómo.

Azure nos ofrece diversos servicios con arquitectura Serverless, por ejemplo, Azure Functions, que es un servicio en el cual ejecutamos nuestro código ante una petición y,  salvo que cambiemos el modo de ejecución a no-serverless (App Service Plan), nos ofrece como máximo 10 minutos para la ejecución del proceso.

¿Cómo funciona Azure Functions?

En realidad, Azure Functions empaqueta nuestro código (C#, nodejs, …) en un contenedor y  cuando se desencadena la ejecución, instancia el contenedor en alguno de los nodos disponibles para que se ejecute con la variables de contextos adecuadas y los datos necesarios.

En función del número de desencadenadores, Azure Functions instanciará tantos contenedores como sean necesarios y, si los estresamos un poco, podemos ver como aumenta el número de instancias y los nodos o servidores que están atendiendo las peticiones.

¿Cómo funciona Azure Container Instances?

Azure Container Instances (ACI) ejecuta un contenedor en base a una imagen (pública o privada), con la memoria RAM y la CPU que necesitemos. Además de poder añadir una dirección IP pública o montar un volumen de Azure File Share.

Sin ningún tipo de desencadenador implementado en el servicio, nos ofrece una API de administración para crear e instanciar contenedores, además de eliminarlos y conocer su estado.

ACI no ha sido diseñado para ejecutar aplicaciones basadas en Microservicios, ya que no disponemos de ningún tipo de orquestador, como en Azure Container Services o en Kubernetes. Sin embargo, puede ser una buena opción para aumentar la capacidad de nuestro cluster en determinados momentos.

¿Cuándo usar ACI?

ACI encaja perfectamente fuera de los límites que Azure Functions tiene por diseño del servicio. Con ACI podemos ejecutar procesos sin límite de tiempo, instalar artefactos en el contenedor o montar un volumen usando Azure File Shares.

Por ejemplo, un simple proceso que crea una infraestructura de sitios en SharePoint Online. Si lo planteamos usando Azure Functions, sabemos que los tiempos de respuesta pueden ser superiores a 10 minutos, por lo tanto, tenemos que cambiar a un modo no-serverless (App Service Plan) o utilizar el patrón de Workflow de las Durable Functions para dividir en subprocesos todos los pasos que necesitamos ejecutar.

Con ACI, simplemente tendríamos un contenedor, con el código que necesitamos para crear la infraestructura. Este contenedor, se podría instanciar bien desde una Azure Logic App, que tiene unas actividades específicas para crear instancias, ejecutarlas y eliminarlas.

Espero que te haya gustado el artículo y sobretodo, que te haya inspirado 😉

Compartir
Publicado por
Alberto Diaz Martin

Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)