Cuando utilizas serverless
(Azure Functions en mi caso) uno de los problemas recurrentes es cómo sincronizar
el acceso a ciertos recursos para que dos "functions" no se ejecuten a la vez sobre el mismo recurso.
Por ejemplo:
Supongamos que estamos implementando una aplicación serverless
donde en un momento determinado múltiples usuarios
pueden acceder a la misma.
Dependiendo del número de ellos, de la capacidad de la aplicación, etc la infra nos puede crear otra instancia ( en otra máquina diferente, e incluso en otra región) para permitir que nuestra aplicación escale sin interrupción del servicio.
En un escenario típico, donde tenemos el control de las instancias, usaríamos algun mecanismo de bloqueo para que cada ejecución pueda tomar el control sobre el recurso. Por ejemplo si sólo es una instancia usaríamos variables estáticas, o semáforos en memoria. Si es en un cluster usaríamos Redis (entre muchas otras opciones), etc
Pero en el caso serverless es más complicado porque no tenemos el control y además las instancias no tienen porqué "verse"
En el mundo Azure contamos con CosmosDB como base de datos distribuida …
2019 - 2025 | Mixed with Bootstrap | Baked with JBake v2.6.7 | Terminos Terminos y Privacidad