3. About The Speaker
• José Antonio Estevan
• Premier Field Engineer @ Microsoft
jaestevan.com Blog
@jaestevan Twitter
• @Dynamics AX3 to F&O
• Former MVP
• All around geek
5. Dynamics 365
Microsoft managed
continuous updates
Supports continuous updates:
No more expensive upgrades!
Empower customers to improve productivity
without impeding upgradability
Makes it much easier for ISVs to innovate
along side Microsoft
Improves supportability and serviceability
Reduced implementation costs for low-code
personalization and customizations
Faster implementations and improved quality
Leading to
Embedded
PowerApps
Embedded
PowerBI
Microsoft
Flow
Custom
Fields
Low/No code experience
for adaptability
EXTENSIBILITY POINTS
Full adaptability
with several developer extension points
ISVs and pro developers End users (Citizen developers, Power users)
El plan: Evergreen application
6. Upgrade (Antes)
• Cambiar de una versión mayor a otra o
de on-premises a la nube.
• Proceso diferente para actualizar
aplicación (X++) y core (binarios). Hay
que resolver conflictos de código y
procesos de actualización de datos.
• Los usuarios tienen que aprender a
usar la nueva versión. Nueva
funcionalidad activada por defecto.
• Tiempos de parada significativos.
Update (Ahora)
• Actualizaciones obligatorias marcadas
por un plan de entrega continua o
actualización manual a conveniencia
del cliente.
• No hay que actualizar datos ni resolver
conflictos.
• No cambia la funcionalidad
automáticamente para los usuarios.
Las actualizaciones son transparentes.
• Tiempo de parada corto (30 min).
Upgrade vs Update
7. Upgrade vs Update
Continuous Update (Futuro)
• Tiempo de parada muy corto o ninguno.
• Compatible con extensiones y personalizaciones no intrusivas.
• Cambios desactivados por defecto (actualización transparente para el usuario)
8. Service update principles
Calidad
• Backward compatible
• Validaciones y lanzamientos
progresivos (en anillos)
• Programas para validar las siguientes
versiones (RVP, PEAP, First Release, …)
• Siempre actualizar UAT antes que
PROD
• Herramientas para validación y
pruebas
Control
• El cliente elije la ventana de actualización
• Por defecto mensual; se pueden pausar
hasta 2 (3 meses) o actualizar manualmente
en cualquier momento
• Se pueden activar nuevas funcionalidades
voluntariamente
• Aviso con 12 meses de antelación para
eliminar funcionalidad
• Update impact analyzer
• Herramientas para validación y pruebas
9. Calidad: Safe Deployment Practice
Microsoft
• Extensive validation
• Compatibility checker
• 100+ clientes en Release Validation
Program (RVP)
Ring 0 Ring 1 Ring 2 Ring 3 Ring 4
Feature
Teams
F&OTeam
RVP
Targeted release
PEAP
[Preview]
First release
CEAP
[Production]
Standard release
(GA)
Targeted release
• Preview Early Access Program
(PEAP)
• Preview Builds
First release
• Customer Early Access Program
(CEAP)
• Production Ready
Standard release
• Actualización mensual o manual
• Ventana de actualización
configurable
• Una sandbox actualizada siempre
antes que producción.
10. Programas
• Los clientes pueden unirse
al Release Validation
Program para ser parte del
proceso estándar de
validación.
• Disponible para partners,
clientes e ISVs
• Solo para Dev/Test
• Valida desarrollos en la
próxima versión.
• MS monitoriza telemetría
para detectar problemas.
• Disponible en PROD para
clientes Early Adopter.
• Actualización automática
o self-service.
• El equipo de ingeniería
monitoriza muy de cerca
estas actualizaciones.
Community Driven
Engineering
• Envía cambios de código
de modelos estándar para
la próxima versión.
RING 1
RVP
RING 2
PEAP
RING 3
First Release
CDE
(Opcional)
https://experience.dynamics.com
https://aka.ms/Communitydrivenengineering
11. ¿Calidad? Pruebas, pruebas, pruebas
RSAT
ATL
SysTest (+ATL)
+ Build Automation
Data Task Automation
Business Cycle Tests
Probar ciclos de negocio completos, incluyendo la UI.
Integration Tests / User Acceptance Test (UAT)
Probar como los componentes se comportan juntos.
Valida requerimientos.
Component Tests
Probar funcionalidades encapsuladas o elementos de la UI.
Valida requerimientos.
Unit Tests
Prueba clases y métodos, idealmente aislados.
Pruebas de desarrollo. Validan el diseño.
14. • Orientados a clientes o partners que quieran validar
ciclos de negocio para detectar errores de regresión.
• Se graban una vez y se reproducen en cada versión,
reduciendo el coste de las pruebas de aceptación.
• No es necesario programar, lo pueden hacer equipos de
consultoría o QA externos.
• Integrado con DevOps y los BPM de LCS.
• Se pueden aislar los parámetros (datos) de las acciones
a probar mediante plantillas de Excel.
Regression Suite Automation Tool (RSAT)
16. Acceptance Test Library (ATL)
// Get a reference to a well-known warehouse
var warehouse = data.invent().warehouses().default();
// Create a new item with the "default" setup using the item creator class.
var item = items.defaultBuilder().setDefaultWarehouse(warehouse).create();
// Add on-hand (information about availability of the item in the warehouse) by using the on-hand adjustment
command. onHand.adjust().forItem(item).forInventDims([warehouse]).setQty(100).execute();
// Create a sales order with one line using the sales order entity
var salesOrder = data.sales().salesOrders().createDefault();
var salesLine = salesOrder.addLine().setItem(item).setQuantity(10).save();
// Reserve 3 units of the item using the reserve() command that is exposed directly on the sales line entity
salesLine.reserve().setQty(3).execute();
// Verify inventory transactions that are associated with the sales line
salesLine.inventoryTransactions().assertExpectedLines(
invent.trans().spec().withStatusIssue(StatusIssue::OnOrder).withInventDims([warehouse]).withQty(-7),
invent.trans().spec().withStatusIssue(StatusIssue::ReservPhysical).withInventDims([warehouse]).withQty(-3));
18. Control = ONE-V update experience
Notice
(Mensual)
• Notificaciones en LCS
• Notificaciones por correo 5 días
antes de actualizar UAT/Prod
• Notificaciones con el resultado de la
actualización
• Release notes & What’s New para
conocer las próximas versiones
Validate
(Opcional)
• Impact analyzer para analizar
el impacto de próxima versión
• Data task automation para
probar integraciones
• RSAT para probar ciclos de
negocio
• ATL para pruebas por código
Execute
(Mensual)
• Acción para actualizar
manualmente a la última
version
• Early-update disponible a través
del programa First release
• Actualización automática por
Microsoft según el plan
Onboard
(solo una vez)
• Configura un fin de semana para las
actualizaciones
• Configura los entornos que se van a
actualizar
• Apúntate a programas
19. Toma el control: Feature management
https://docs.microsoft.com/en-us/dynamics365/unified-operations/fin-and-ops/get-started/feature-management/feature-management-overview
20. Planifica tus despliegues
No más pausas
Pausa 1 Self-
Upd.
Auto
Upd.
Auto
Upd.
Pausa 1 Pausa 2! Auto
Upd.
Spring 10.0.2
10.0.28.1.3
10.0.3 10.0.4 10.0.5 10.0.6 Fall
10.0.3 10.0.4 10.0.4 10.0.4 10.0.7
Microsoft
G.A.
PROD
10.0.2 10.0.3 10.0.4 10.0.5 10.0.6 Fall 10.0.8Test
UAT
(PEAP)
21. • Elige tu ciclo de actualizaciones
• ¿Actualizar el primero, segundo o tercer fin de semana del mes?
• ¿Hay algún periodo donde no se pueda actualizar? ¿Cómo manejarlo?
• ¿Qué programas se van a adoptar? (anillos)
• ¿Cómo alinear ciclos de desarrollo y pruebas?
• ¿Cómo alinear ciclos de equipos internos y externos?
• Pros y Contras
• Si esperas al último fin de semana, solo hay una semana para probar
• Solo se publicarán hotfixes en la última release (GA)
• Se puede pausar dos veces; a la tercera se automatiza automáticamente
• Una sandbox debería estar siempre en una versión superior a PROD
Planifica tus despliegues
22. • Ajusta ciclos de desarrollo mensuales
• DevOps – Release Management
• Diseña para el futuro – What’s new
• ¡Tests automáticos son parte del proyecto!
• Código – SysTest + ATL
• Integraciones – Data task automation
• Negocio / Regresión - RSAT
• Apúntate a los programas Preview
• Mantente al día de las novedades
• Release notes & Deprecated Features
¡Prepárate!