¿Qué son las capacidades en Microsoft Fabric y cómo funcionan realmente?

Cuando uno empieza a trabajar con Microsoft Fabric, siempre aparece una pregunta que prácticamente todo el mundo hace al inicio:

¿Qué significa exactamente “capacidad” en Microsoft Fabric?

Es una de las piezas fundamentales de la plataforma, porque en realidad todo lo que ejecutamos en Fabric depende de la capacidad que tengamos asignada.

Press enter or click to view image in full size

En este artículo voy a explicar de forma clara:

  • Qué es una capacidad en Microsoft Fabric
  • Cómo se asigna a los Workspaces
  • Cómo escalar capacidades
  • Cómo funcionan bursting, smoothing y throttling
  • Cómo monitorear el uso de la capacidad
  • Buenas prácticas para administrarlas

Muchas personas escuchan el término por primera vez cuando están configurando Fabric y ven que deben elegir algo como F8, F16, F32, F64, etc. Pero si no se entiende el concepto, es difícil diseñar correctamente la arquitectura de la solución.

La idea es que, al final, usted entienda cómo diseñar correctamente la arquitectura de capacidades en Microsoft Fabric.

El concepto básico de capacidad en Fabric

Lo primero que hay que entender es que Fabric es una plataforma completamente administrada, pero aun así necesita recursos de cómputo para ejecutar todo lo que sucede dentro de la plataforma.

Cuando usted crea un workspace en Fabric y empieza a trabajar con pipelines, notebooks, modelos semánticos o procesos de análisis en tiempo real, todos esos procesos necesitan ejecutarse en algún lugar. Necesitan CPU, memoria y recursos de procesamiento.

Ese conjunto de recursos es lo que Microsoft llama capacidad.

En términos simples, una capacidad es el poder de cómputo que permite ejecutar todos los procesos dentro de Microsoft Fabric.

Sin capacidad, Fabric no podría ejecutar:

  • pipelines de datos
  • notebooks con Python o Spark
  • consultas SQL
  • modelos semánticos de Power BI
  • procesamiento de datos en tiempo real
  • procesos de ciencia de datos

Todo lo que sucede dentro de Fabric consume capacidad.

Cómo se crea una capacidad

Un detalle importante es que las capacidades no se crean directamente dentro de Fabric. En realidad, se crean en Azure.

Cuando una organización decide utilizar Fabric, el primer paso consiste en ir al portal de Azure y crear un recurso de Microsoft Fabric. Durante ese proceso se debe seleccionar el tamaño de la capacidad que se desea utilizar.

Ahí es donde aparecen los SKUs que muchas personas han visto:

F2
F4
F8
F16
F32
F64
F128
y así sucesivamente.

Press enter or click to view image in full size

Una vez que se crea esa capacidad en Azure, se puede asignar a uno o varios Workspaces dentro de Fabric. A partir de ese momento, todo lo que se ejecute dentro de esos workspaces utilizará ese poder de cómputo.

Es decir, el workspace no ejecuta procesos por sí solo. Siempre depende de una capacidad que esté detrás proporcionándole recursos.

Una capacidad puede servir a múltiples proyectos

Algo muy interesante de Fabric es que una misma capacidad puede ser compartida por múltiples workspaces.

Por ejemplo, imagine una organización que tiene distintos proyectos de datos. Puede existir un workspace para el área financiera, otro para auditoría, otro para legal y otro para ciencia de datos.

Todos esos proyectos pueden estar utilizando la misma capacidad.

Esto tiene varias ventajas. Primero, permite optimizar el uso de recursos, porque diferentes equipos pueden compartir el mismo poder de cómputo. Segundo, permite separar los proyectos desde el punto de vista de seguridad y organización sin necesidad de duplicar infraestructura.

En otras palabras, los workspaces sirven para organizar el trabajo, mientras que la capacidad es el motor que ejecuta todo lo que ocurre dentro de ellos.

Qué ocurre cuando aumenta la carga de trabajo

Uno de los grandes beneficios de Fabric es que las capacidades son muy flexibles y pueden escalar de distintas maneras.

Supongamos que una organización empieza con un proyecto pequeño. En ese caso puede iniciar con una capacidad relativamente pequeña, por ejemplo una F8.

Con el tiempo, a medida que el volumen de datos crece o que los procesos analíticos se vuelven más complejos, puede ser necesario aumentar el poder de cómputo.

En ese momento se puede realizar lo que se conoce como escalamiento vertical.

Esto significa que la misma capacidad puede cambiar de tamaño. Por ejemplo, pasar de F8 a F16, luego a F32 o incluso a F64.

Desde el punto de vista del usuario, el cambio es prácticamente transparente. El código, los pipelines y los datos no cambian. Simplemente se incrementa la cantidad de recursos disponibles para ejecutar los procesos.

Es muy parecido a lo que antes se hacía con servidores tradicionales cuando se agregaban más CPUs o más memoria RAM. La diferencia es que aquí todo se hace mediante un servicio administrado.

Escalamiento horizontal

Otra forma de escalar una arquitectura en Fabric es creando múltiples capacidades.


Esto suele utilizarse cuando una organización quiere separar ambientes o cargas de trabajo.

Un escenario muy común consiste en tener una capacidad pequeña para desarrollo, otra capacidad intermedia para pruebas y una capacidad más grande para producción.

De esta manera se evita que los procesos de desarrollo afecten el desempeño de los sistemas productivos. Cada ambiente tiene su propio conjunto de recursos.

También es posible separar capacidades por áreas de negocio o incluso por regiones geográficas si la organización opera a nivel global.

Capacity Units y poder de procesamiento

Las capacidades en Fabric se miden mediante algo llamado Capacity Units.

Cada nivel de capacidad tiene asociada una cierta cantidad de unidades de procesamiento y recursos internos. A medida que se incrementa el tamaño de la capacidad, también aumenta el número de vCores y el poder de cómputo disponible.

Por ejemplo, una capacidad F64 tiene significativamente más recursos que una F16.

Para quienes vienen del mundo de Power BI Premium, existe una equivalencia interesante: una capacidad F64 es aproximadamente equivalente a lo que antes se conocía como P1.

Esto facilita la transición de organizaciones que ya estaban utilizando Power BI Premium hacia la plataforma de Microsoft Fabric.

Cómo se factura una capacidad

Otro aspecto importante es el modelo de facturación.

Las capacidades de Fabric se facturan por hora de uso. Esto significa que una organización puede aumentar o disminuir el tamaño de una capacidad según lo necesite.

Por ejemplo, puede suceder que durante ciertos períodos del mes se requiera mayor procesamiento, como en cierres financieros o cargas masivas de datos. En ese momento se puede escalar temporalmente la capacidad a un nivel mayor.

Luego, cuando la carga disminuye, se puede volver a reducir el tamaño de la capacidad.

Este modelo proporciona mucha flexibilidad desde el punto de vista operativo y financiero.

Además, Microsoft ofrece la posibilidad de comprar instancias reservadas cuando se sabe que una capacidad se utilizará durante largos períodos de tiempo. En esos casos es posible obtener descuentos importantes respecto al precio estándar.

Capacidades en distintas regiones

Las capacidades también pueden desplegarse en distintas regiones de Azure.

Esto es especialmente importante cuando existen requerimientos regulatorios relacionados con la ubicación de los datos. Por ejemplo, algunas organizaciones necesitan que ciertos datos permanezcan dentro de una región específica por razones de cumplimiento normativo.

En esos casos se pueden crear capacidades en regiones como Europa, Estados Unidos o Asia, dependiendo de dónde se encuentren los usuarios o las fuentes de datos.

Todo esto puede coexistir dentro del mismo tenant de Microsoft.

El concepto de bursting y smoothing

Uno de los mecanismos más interesantes que tiene Fabric para manejar la carga de trabajo es la combinación de bursting y smoothing.

Press enter or click to view image in full size

Para entender esto, imaginemos que una organización tiene una capacidad F64 y normalmente utiliza alrededor del 60% de sus recursos.

Sin embargo, en ciertos momentos del día ejecuta un proceso muy pesado que requiere más recursos de los que la capacidad tiene asignados.

En muchos sistemas tradicionales, ese proceso simplemente fallaría o quedaría bloqueado.

Fabric funciona de manera distinta.

Cuando ocurre un pico de consumo, el sistema puede permitir temporalmente que el proceso utilice más recursos de los que tiene asignados. A esto se le conoce como bursting.

Sin embargo, ese consumo adicional no desaparece. Lo que hace el sistema es distribuir ese exceso de consumo dentro de una ventana temporal futura. Ese mecanismo se llama smoothing.

En otras palabras, Fabric permite absorber picos temporales de carga y luego compensarlos utilizando los períodos en los que la capacidad está menos ocupada.

Este modelo permite ejecutar trabajos intensivos sin necesidad de sobredimensionar permanentemente la capacidad.

Qué ocurre cuando se excede completamente la capacidad

Existe también un mecanismo llamado throttling.

Esto ocurre cuando una capacidad ya no tiene más margen para absorber picos de carga ni para distribuir el consumo extra en el tiempo.

Cuando se llega a ese punto, el sistema empieza a aplicar limitaciones. Primero puede retrasar la ejecución de ciertos trabajos. Si la presión sobre la capacidad continúa, algunos procesos pueden ser rechazados temporalmente hasta que existan recursos disponibles nuevamente.

Cuando esto sucede de forma recurrente, normalmente es una señal de que la capacidad debe ser ampliada o que ciertos procesos necesitan optimización.

Monitoreo de capacidades

Microsoft proporciona una herramienta muy útil para analizar el comportamiento de las capacidades. Se trata de la aplicación Fabric Capacity Metrics.

Esta aplicación permite observar con bastante detalle cómo se está utilizando la capacidad. Es posible ver picos de consumo, identificar los procesos que utilizan más recursos y analizar si el sistema está aplicando smoothing o throttling.

Press enter or click to view image in full size

Este tipo de análisis es fundamental para dimensionar correctamente la plataforma y tomar decisiones informadas sobre el escalamiento.

Pausar y reanudar capacidades

Otra característica interesante es que las capacidades pueden pausarse y reanudarse.

Cuando una capacidad se pausa, se detiene el cómputo y deja de generarse el costo asociado al procesamiento. Sin embargo, el almacenamiento de datos en OneLake continúa existiendo y sigue siendo facturado.

Esto puede ser útil en ciertos escenarios de laboratorio o desarrollo donde los entornos no necesitan estar activos permanentemente.

Resumen

Las capacidades son, en esencia, el motor de ejecución de Microsoft Fabric. Todo lo que ocurre dentro de la plataforma depende del poder de cómputo que esté disponible a través de ellas.

Comprender cómo funcionan las capacidades, cómo se asignan a los workspaces y cómo se comportan frente a distintos tipos de carga de trabajo es fundamental para diseñar soluciones eficientes y escalables.

Una arquitectura bien diseñada no solo permite aprovechar mejor los recursos, sino también optimizar costos y garantizar que las cargas de trabajo analíticas se ejecuten de manera confiable.

Cuando se entiende bien este concepto, resulta mucho más sencillo sacar el máximo provecho de todo el potencial que ofrece Microsoft Fabric.

Comentarios

Entradas más populares de este blog

Custom Membership Provider para Forms Authentication y MOSS

Cómo identificar consultas más pesadas en SQL Server

Webcast MSDN: "¡Petabytes para Peanuts! Tiene Sentido Datos Fuera de "Ambiente""