Hemos visto muchas mejoras en el producto desde que fue lanzado como AX7, y algunos cambios de nombre también 😝 Y una de las áreas donde hemos visto más mejoras es el framework de trabajo por lotes.
Y desde la última versión de Dynamics 365 Finance and Operations, la 10.0.28, tenemos una nueva característica que estará habilitada por defecto para todas las nuevas instancias, y estará habilitada para todas las instancias existentes en la 10.0.29: la programación de lotes basada en la prioridad.
Puedes leer más sobre las últimas mejoras en el framework de trabajo por lotes leyendo este post de Paul Heisterkamp: Improvements to the batch framework of MSDyn365FO.
Un lote mejorado
La programación de lotes basada en la prioridad se introdujo en la versión 10.0.7 para un número reducido de clientes, y eso es hace mucho, mucho tiempo para los estándares de F&O.
Entonces, ¿qué cambia? Una vez que habilitamos la feature, la configuración del grupo pasa a ser así:
A esto:
Antes, podíamos asignar cada grupo a uno o varios servidores de lotes. Después de activar la feature, seguimos viendo los grupos, pero no podemos asignarlos a ningún servidor.
En cambio, podemos asignar una prioridad al grupo:
El framework de programación de lotes cogerá los diferentes grupos y los asignará a los servidores dependiendo de la prioridad que tenga cada grupo.
El escalado es clave
Después de que Finance & Operations pasara de una infraestructura monolítica clásica a utilizar contenedores Azure service fabric, ganamos una nueva característica: el escalado automático. Esto significa que si la telemetría de Microsoft muestra que hay un uso elevado del AOS, obtendremos (con suerte) otro contenedor con un AOS para rebajar la carga de los otros AOS.
Antes de la programación basada en la prioridad, podíamos obtener un AOS adicional para los lotes, pero no nos dábamos cuenta hasta que nos informaba soporte. Gracias al nuevo marco, este nuevo AOS servirá para repartir la carga de trabajo asignada automáticamente.
Poco a poco, vemos cambios que hacen que Dynamics 365 F&O se convierta en un verdadero producto SaaS.
A configurarlo
Cuando creamos un nuevo grupo con la nueva experiencia, podemos establecer una prioridad de programación para el grupo:
¿Qué significan estos niveles de prioridad? Si vamos a la página de docs, vemos la siguiente tabla:
Si tenemos por ejemplo 100 trabajos en cola, el framework tomará 40 de los que tienen asignada «capacidad reservada», 30 de los críticos, 15 de los altos, 10 de los normales y 5 de los de baja prioridad.
Todos los grupos existentes tendrán asignada la prioridad «Normal» después de habilitar la feature, por lo que debemos cambiarla para aprovecharla.
Además de asignar cada trabajo por lotes al grupo deseado, también podemos seleccionar otra prioridad en la configuración del trabajo por lotes:
¿¿¿Hilos dedicados???
Ahora, algunos de vosotros os preguntaréis qué es eso de «X hilos dedicados» en el nivel de capacidad reservada. Si vais a los parámetros del sistema, veréis una nueva pestaña:
Aquí podemos establecer el número de hilos asignados al nivel de capacidad reservada:
- No reserved capacity: esto son 0 hilos.
- Low: se reserva un 10% de los hilos.
- Medium: se reserva un 15% de los hilos.
- High: se reserva un 25% de los hilos.
¿Pero qué hilos? Si vamos al formulario de configuración del servidor y a la pestaña inferior:
Este es el número máximo de hilos que tendrá cada servidor de lotes. Si tienes 5 servidores de lotes con un máximo de 8 hilos por servidor, eso hace un total de 40 hilos disponibles. Si aplicamos los porcentajes de la lista superior, tendremos el siguiente número de hilos dedicados:
- No reserved capacity: 0 hilos.
- Low: se reservan 4 hilos.
- Medium: se reservan 6 hilos.
- High: se reservan 10 hilos.
Y eso es todo. Muchos clientes confían en los lotes para ejecutar los procesos críticos de su negocio, y hay otros procesos que no son críticos en absoluto. Con esta nueva funcionalidad de programación por prioridades, podemos asegurarnos de que los importantes se ejecuten primero, e incluso habilitar capacidad dedicada para ello.
Si quieres saber más sobre esta función y algunas best practices a aplicar, puedes ver esta charla de Dynamics 365 FastTrack TechTalk: Priority-based batch scheduling (PBS).