Resiliencia, disponibilidad, simultaneidad y escalabilidad de OCI Functions
Descubre cómo OCI Functions te permite cumplir los requisitos de resiliencia, disponibilidad, simultaneidad y escalabilidad.
Resiliencia y disponibilidad
La resiliencia y disponibilidad hacen referencia a la capacidad de un sistema de seguir funcionando, a pesar del fallo o el rendimiento inferior de algunos de sus componentes.
En el caso de OCI Functions:
- El plano de control es un juego de componentes que gestiona definiciones de funciones.
- El plano de datos es un juego de componentes que ejecuta las funciones en respuesta a solicitudes de llamada.
Para la resiliencia y alta disponibilidad, tanto los componentes del plano de control como los del plano de datos se distribuyen entre diferentes dominios de disponibilidad y dominios de errores en una región. Si uno de los dominios deja de estar disponible, los componentes del resto de dominios toman posesión a fin de garantizar que no se interrumpa la gestión y ejecución de la definición de funciones.
Cuando se llama a las funciones, se ejecutan en las subredes especificadas de la aplicación a la que pertenecen las funciones. Para la resiliencia y alta disponibilidad, la mejor práctica consiste en especificar una subred regional para una aplicación (o también varias subredes específicas para el dominio de disponibilidad en diferentes dominios de disponibilidad). Si un dominio de disponibilidad especificado para una aplicación deja de estar disponible, OCI Functions ejecuta las funciones en un dominio de disponibilidad alternativo.
Simultaneidad y escalabilidad
La simultaneidad hace referencia a la capacidad de un sistema de ejecutar varias operaciones en paralelo utilizando recursos compartidos. La escalabilidad hace referencia a la capacidad del sistema de escalar la capacidad (tanto escalar verticalmente como reducir verticalmente) para satisfacer la demanda.
En el caso de Functions, cuando se llama por primera vez a una función, la imagen de la función se ejecuta como un contenedor de una instancia en una subred asociada a la aplicación a la que pertenece la función. Cuando la función se está ejecutando dentro del contenedor, la función se puede leer y escribir en otros recursos y servicios compartidos que se estén ejecutando en la misma subred (por ejemplo, base de datos como servicio). La función también se puede leer y escribir en otros recursos compartidos (por ejemplo, Object Storage) y en otros servicios de Oracle Cloud.
Si OCI Functions recibe varias llamadas a una función que se está ejecutando actualmente en un contenedor, OCI Functions se escala horizontalmente de manera automática y sin problemas para servir todas las solicitudes entrantes. OCI Functions inicia varios contenedores de Docker hasta el límite especificado para el arrendamiento. El límite por defecto es de 60 GB de RAM reservados para la ejecución de funciones por dominio de disponibilidad, aunque puede solicitar un aumento de este límite. Si no se excede el límite, no hay diferencia en el tiempo de respuesta (latencia) entre las funciones que se ejecutan en los distintos contenedores.
Cuando se invocan funciones de diferentes aplicaciones simultáneamente, OCI Functions garantiza que estas ejecuciones de funciones se aislan entre sí.