Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La ejecución es donde los planes se convierten en realidad. Este paso implica preparar a todos los usuarios para el cambio, realizando el trabajo de desarrollo en entornos que no son de producción. Realizar pruebas exhaustivas e implementar en producción de forma controlada. El énfasis se centra en rigurosas pruebas y prácticas de implementación seguras para minimizar la interrupción empresarial, dado que los cambios pueden ser significativos.
Preparación de las partes interesadas para la modernización
Antes de pulsar el botón implementar, es fundamental preparar a todas las partes interesadas y a los usuarios para lo que viene. Las sorpresas pueden provocar confusión o incluso problemas operativos. Entre los pasos clave de preparación se incluyen la comunicación, los bloqueos de cambios (mencionados anteriormente) y los planes de soporte técnico:
Anuncie la programación de implementación a todas las partes interesadas. De antemano, comunique a todas las partes afectadas cuando se produzca la implementación de modernización y qué esperar. Incluya fechas clave, como el inicio de la congelación de cambios y la ventana de implementación, para ayudar a las partes interesadas a prepararse correctamente. Al establecer expectativas, los usuarios pueden planear el tiempo de inactividad y los equipos internos pueden estar listos.
Implemente una congelación de cambios en las cargas de trabajo de origen y dependientes. Como se planeó anteriormente en el gobierno, ahora es el momento de implementar realmente el congelamiento. Asegúrese de que no se produzcan cambios de código, ajustes de configuración u otras implementaciones en la carga de trabajo (y cargas de trabajo dependientes) durante algún período antes y durante la implementación. Esto mantiene el entorno estable. Asegúrese de que todos los miembros del equipo y los terceros integrados sean conscientes. Defina claramente la ventana de congelación con horas de inicio y finalización específicas para evitar confusiones.
Comunique las acciones finales del usuario y los cambios posteriores a la implementación. Los usuarios necesitan previo aviso de las acciones necesarias antes y después de la implementación para evitar la interrupción del flujo de trabajo. Indique a los usuarios que cierren la sesión o guarden el trabajo antes de que comience la transición. Comparta nuevas URL de acceso, cambios de autenticación, como los requisitos de inicio de sesión de Microsoft Entra ID, y flujos de trabajo actualizados que afectan a las operaciones diarias. Proporcione documentación de soporte técnico y guías de inicio rápido para reducir la confusión en el primer día.
Coordinar el personal de soporte técnico para la implementación. Los equipos de desarrollo y operaciones de TI deben estar disponibles para supervisar y responder a problemas durante las fases críticas de implementación. Programe horas de soporte extendido y otro personal para el primer día laborable posterior a la implementación cuando los problemas sean más probables que aparezcan. Informe a las unidades de negocio del plan de soporte técnico posterior a la implementación y los procedimientos de escalación para garantizar una resolución rápida de problemas.
Defina procedimientos de reserva para cargas de trabajo críticas. Las cargas de trabajo críticas requieren soluciones alternativas manuales y planes de contingencia para mantener las operaciones empresariales durante las ventanas de implementación. Documente procedimientos específicos, como el procesamiento manual de pedidos durante los períodos de solo lectura del entorno de trabajo. Comparta estos procedimientos de antemano y confirme la preparación con los equipos afectados para garantizar una ejecución sin problemas cuando sea necesario.
Desarrollo de modernización en un entorno de no producción
Todo el desarrollo y la integración de los cambios de modernización deben producirse fuera de producción (en entornos de desarrollo, pruebas y ensayo). Principio rector: compilar y probar primero en entornos similares a prod, de modo que, al implementar en prod, ya es una cantidad conocida.
Siga los principios de Well-Architected Framework durante la implementación. A medida que codifica y configura los nuevos cambios, aplique continuamente los procedimientos recomendados de Azure Well-Architected Framework (WAF). Use las recomendaciones de Azure Advisor y los procesos de revisión de arquitectura para validar las decisiones de diseño. Este enfoque garantiza que los componentes modernizados cumplan los procedimientos recomendados de Azure y los estándares operativos.
Cree entornos que no sean de producción que reflejen la producción. Ponga en marcha entornos de desarrollo y pruebas en Azure lo más cerca posible de la configuración de producción. Si la producción usa determinados servicios de Azure, use lo mismo en pruebas, menor escala o menor nivel de rendimiento (SKU) para ahorrar costos. Cuanto más parecido esté el entorno de pruebas al de producción, más confianza podrá tener en que los resultados de las pruebas se trasladarán al comportamiento de producción.
Implemente los cambios de forma incremental con el control de código fuente y CI/CD. Trate el esfuerzo de modernización como cualquier otro proyecto de software. Use Git u otro control de código fuente para todos los cambios de código e infraestructura como scripts de código. Proporciona historial y capacidad para revertir el código si es necesario. Divida el trabajo en pequeños fragmentos (quizás por funcionalidad o corrección) y use ramas de funcionalidad. Combinar los cambios con frecuencia después de la revisión del código. Configura las compilaciones de integración continua para ejecutar tus conjuntos de pruebas para cada confirmación de cambios, de modo que detectes problemas desde el principio.
Validación de los cambios de modernización con pruebas
Las pruebas son críticas. Dado que la modernización no agrega nuevas características, el enfoque se centra en las pruebas de regresión (nada se rompió) y las pruebas de rendimiento y seguridad (funciona mejor que antes, no peor). Desea comprobar todos los aspectos de la carga de trabajo en el entorno de prueba antes de tocar la producción.
Ejecute pruebas unitarias e de integración en todos los componentes modificados. Los desarrolladores deben crear o actualizar pruebas unitarias para cualquier código refactorizado. Incluso si su código heredado, escribir pruebas unitarias para funciones críticas puede ayudar a detectar si la refactorización ha cambiado el comportamiento involuntariamente. Ejecute las pruebas unitarias en el pipeline de CI de manera continua. Además, ejecute pruebas de integración para asegurarse de que los componentes se comuniquen entre sí correctamente. Después de corregir cualquier error, vuelva a ejecutar las pruebas pertinentes para asegurarse de que el error está realmente solucionado y que no se ha roto nada más (evitar regresiones).
Realice pruebas funcionales de un extremo a otro. En un entorno de ensayo o prueba, realice pruebas de flujo de trabajo completas como si fuera un usuario final. Esta prueba puede ser una prueba manual mediante pruebas de control de calidad o de IU automatizadas. Inicie sesión en la aplicación y realice tareas principales. Asegúrese de que la funcionalidad no se modifique. Básicamente, simular el uso real para detectar cualquier cosa que se pueda perder en las pruebas unitarias.
Realice pruebas de aceptación de usuarios (UAT) con las partes interesadas. Es aconsejable implicar a algunos usuarios finales reales o partes interesadas empresariales en las pruebas de la carga de trabajo modernizada antes de continuar. Pueden detectar matices que los desarrolladores pasan por alto. Recoger comentarios acerca de la facilidad de uso, el rendimiento y las deficiencias de funcionalidad. Resuelva los problemas críticos de las pruebas de aceptación de usuario (UAT) antes de la implementación y obtenga la aprobación formal de las partes interesadas para confirmar la preparación empresarial.
Valide el rendimiento mediante pruebas de carga en condiciones realistas. La modernización debe mejorar o mantener el rendimiento. Use herramientas de pruebas de carga (como Azure Load Testing) para simular patrones de uso realistas. Compare los resultados con las líneas base de rendimiento del entorno de origen para identificar cualquier degradación. Realice pruebas de esfuerzo en 150% de carga esperada para determinar los límites de carga de trabajo y validar la resistencia bajo presión.
Ejecute comprobaciones de cumplimiento y validación de seguridad. Ejecute exámenes de vulnerabilidades en nuevas imágenes de código y contenedor para detectar riesgos de seguridad. Realice la validación de cumplimiento para cargas de trabajo reguladas mediante herramientas específicas del sector. Use Microsoft Defender for Cloud para buscar configuraciones incorrectas de infraestructura y validar que los controles de seguridad cumplan los requisitos.
Resuelva todos los problemas críticos antes del despliegue en producción. Corrija problemas funcionales, de rendimiento y de seguridad identificados durante las fases de prueba. Confirme que todas las pruebas superadas y el rendimiento cumplen los contratos de nivel de servicio (SLA). Documente los problemas de prioridad baja restantes y cree planes de corrección para la resolución posterior a la implementación.
Creación de una infraestructura reutilizable
Una vez que la solución modernizada supere todas las pruebas en el entorno de no producción, debe capturar la configuración de infraestructura y las configuraciones como código, por lo que se puede replicar fácilmente en entornos de producción y futuros. La infraestructura reutilizable significa usar plantillas de infraestructura como código (IaC) y automatización para la coherencia y la velocidad.
Cree plantillas de IaC para configuraciones probadas. Tome la arquitectura final del entorno de prueba (que refleja lo que quiere en prod) y codifique. Use Bicep, Terraform o Azure Resource Manager templates para definir la infraestructura. Parametrice estas plantillas para que se puedan reutilizar para diferentes fases, como desarrollo, prueba, prod con pequeños ajustes como nombres o tamaños. Esta configuración garantiza que el entorno de producción que cree coincida con lo que ha probado. Evita el error humano al hacer clic manualmente en Azure Portal para crear recursos. También significa que si alguna vez necesita volver a crear el entorno, como para la recuperación ante desastres o la implementación en nuevas regiones, tiene lista la implementación de infraestructura. Para obtener más información, consulte Administración de CAF: Administración de implementaciones basadas en código.
Almacenar plantillas en el control de versiones. Compruebe el código de infraestructura en un repositorio de Git (junto con el código de la aplicación o en un repositorio independiente). Use GitHub o Azure DevOps para administrar los recursos de IaC con el control de versiones adecuado. El control de versiones permite revisiones de código, admite la colaboración en equipo y fomenta la reutilización de plantillas entre proyectos. Este enfoque proporciona una rastreabilidad completa para los cambios de infraestructura y admite funcionalidades de reversión cuando se producen problemas.
Automatice la instalación y configuración de dependencias. Cree scripts o tareas de canalización para implementar estas plantillas y también gestione las tareas de configuración o inicialización necesarias. Utilice Azure Pipelines y GitHub Actions para ejecutar trabajos de implementación que toman la plantilla de IaC y la implementan en una suscripción o grupo de recursos objetivo. Automatice la instalación de dependencias de aplicaciones, la configuración de la configuración y la administración de secretos. El objetivo es la configuración del entorno de un solo clic (o un solo comando): de nada a un entorno plenamente operativo que coincida con el entorno que probaste.
Pruebe IaC y la automatización de principio a fin. Use una suscripción o grupo de recursos de Azure independiente como espacio aislado y practique la implementación de todo el entorno desde cero mediante las plantillas y scripts. Pruebe que las plantillas, canalizaciones y scripts de IaC pueden crear la pila de infraestructura completa desde cero. Pruebe diferentes escenarios de implementación, como la implementación inicial, las actualizaciones de configuración y los procedimientos de reversión para confirmar que la automatización funciona correctamente.
Para obtener más información, consulte Diseño de un cambio de suministro de desarrollo de cargas de trabajo e Infraestructura como código en WAF.
Creación de documentación de implementación
Incluso con la automatización, tener una buena documentación sobre las implementaciones es fundamental para la auditoría, para incorporar nuevos miembros del equipo y para el mantenimiento futuro. La documentación de implementación debe cubrir las configuraciones, los procedimientos y los pasos de reversión en formato legible.
Documente la configuración y los pasos. Registre todas las configuraciones específicas del entorno, las cadenas de conexión, los puntos de conexión de servicio y las configuraciones de seguridad en la documentación accesible. Incluya instrucciones de implementación paso a paso, requisitos previos y pasos posteriores a la validación de la implementación. Esta documentación permite implementaciones coherentes y admite la solución de problemas cuando se producen problemas. Si un nuevo ingeniero tenía que realizar la implementación, podía leer este documento y seguir o comprender la salida de la canalización.
Actualice los procedimientos de reversión y recuperación. Después de completar las pruebas, formalice los pasos para revertir los cambios cuando se produzcan problemas de implementación. Incluya desencadenadores de reversión, procedimientos de copia de seguridad y restauración de datos y pasos de validación de recuperación. Pruebe los procedimientos de reversión y recuperación periódicamente para asegurarse de que funcionan correctamente cuando sea necesario. Esta preparación reduce el tiempo de inactividad.
Recopile toda esta documentación en una ubicación central. Use SharePoint, GitHub o una wiki para almacenar esta información. Asegúrese de que el equipo y el personal de soporte técnico sepan dónde encontrarlo. En un incidente de alto estrés, tener documentos claros a mano es un salvavidas.
Implementación de la modernización
El despliegue de producción es la culminación del esfuerzo de modernización. Dependiendo de la estrategia elegida (en el mismo sitio versus paralelo), los pasos difieren. Antes de ejecutar, compruebe que se han realizado todos los pasos de preparación: las partes interesadas estén informadas, congelamiento en vigor, las copias de seguridad se han realizado, la supervisión lista.
Desplegar la modernización in situ
Programa una ventana de mantenimiento. Si los cambios requieren tiempo de inactividad o scripts en ejecución que bloquean recursos, como una migración de esquema de base de datos, házlo en una ventana de mantenimiento preconfigurada. Asegúrese de que todos los usuarios están fuera de la carga de trabajo en ese momento. Tener una ventana clara también proporciona un objetivo para finalizar la implementación o decidir sobre la reversión si no dispones de tiempo suficiente.
Use su pipeline de CI/CD para la implementación. Una implementación de producción debe usar la misma canalización automatizada que se utilizó para la prueba, pero dirigida al entorno de producción. Esta configuración garantiza la coherencia, por lo que la infraestructura y el código se implementan de la misma manera. Antes de ejecutarlo, realice copias de seguridad finales de los datos críticos (bases de datos). Incluso si se puede restaurar, tener una copia de seguridad es una red de seguridad adicional en caso de que algo falle. Ejecute la canalización para implementar los nuevos cambios de código e infraestructura. Hacer que los registros y la supervisión estén visibles en tiempo real. Si se produce un error en cualquier paso, pause y evalúe si puede solucionar el problema y continuar o si necesita retroceder.
Implemente el enrutamiento progresivo del tráfico (canario) si es posible. Muchos servicios de Azure permiten intercambios de ranuras o desplazamiento gradual del tráfico, incluso en un escenario local. Azure admite implementaciones de valores controlados mediante ranuras de implementación de Azure App Service, la división de tráfico de Azure Container Apps y Azure Kubernetes Service con Azure Pipelines. Si tiene varias máquinas virtuales detrás de un equilibrador de carga, actualice una instancia a la vez (una actualización gradual) para que otras instancias realicen el tráfico y, a continuación, se rotarán.
Aumente gradualmente al tráfico completo durante la supervisión. Una vez que la nueva versión esté activa, supervise detenidamente. Compruebe los registros de aplicaciones, las métricas de rendimiento y las tasas de errores. Comience con una pequeña parte de los usuarios (o comience con la carga de trabajo en un modo de validación, si es posible). Si todo se ve bien después de unos minutos, aumente para decir 25% de tráfico. Vuelva a comprobar las métricas (sin pico en 500 errores, tiempos de respuesta normales). Aumente al 50%, luego al 100% durante el período de tiempo que planeó. Podría ser más de una hora o más si desea ser cauteloso. Si se observa algún problema grave en cualquier paso, inicie la reversión antes de que afecte a todos los usuarios.
Mantener la coherencia de los datos durante la implementación. Las implementaciones en contexto conservan los puntos de conexión de datos existentes, al tiempo que pueden modificar esquemas de datos. Aplique cambios en el esquema de base de datos de forma compatible con versiones anteriores para soportar tanto las versiones anteriores como las nuevas de la aplicación durante los lanzamientos de valor controlado. Use scripts de migración de bases de datos que agreguen nuevas columnas o tablas sin quitar estructuras existentes hasta que la implementación se complete correctamente.
Implementación de la modernización en un entorno paralelo
Cree el entorno de producción paralelo. Con las plantillas de IaC, cree el nuevo entorno de producción en Azure que refleje lo que ha probado. Este entorno incluye todos los procesos, redes y almacenamiento. Debe estar activo y funcionando, pero actualmente sin tráfico de usuario. Asegúrese de que los elementos como los grupos de seguridad de red, los firewalls, la identidad (identidades administradas o entidades de servicio) y la supervisión están configurados según sea necesario (básicamente repita la configuración de prueba env en la suscripción prod).
Establecer la replicación de la base de datos. Configure la característica de replicación nativa de la plataforma de base de datos para establecer la replicación continua de datos entre la carga de trabajo de origen y destino de Azure. Compruebe que la sincronización de datos inicial se completa correctamente y que la replicación es correcta. Es posible que realice una copia masiva inicial de la base de datos de la copia de seguridad o instantánea y, a continuación, habilite la replicación para nuevas transacciones. Supervise el retraso en la replicación mediante las herramientas de supervisión de la plataforma de base de datos. Una mayor latencia aumenta el riesgo y la duración de la transición. No continúe con el paso siguiente hasta que el retraso de replicación sea cero.
Copie archivos y datos no estructurados. Copie los archivos y datos no estructurados en Azure antes de la migración final. Use Herramientas para la migración de objetos y archivos con características para transferir archivos a los servicios de almacenamiento de Azure adecuados. Esta preparación reduce la cantidad de datos que se deben copiar durante la transición final.
Complete la sincronización de datos final. En el momento del cambio, quiere una pérdida de datos cero o mínima. En el caso de las bases de datos, compruebe que no quedan transacciones pendientes en las cargas de trabajo de origen y que la replicación de la base de datos está sincronizada. En algunos casos, es posible que tenga que pausar brevemente las escrituras en la base de datos de origen para vaciar los cambios finales (especialmente para elementos como la coherencia transaccional). Puede usar técnicas como el trasvase de registros de transacciones o un breve tiempo de inactividad para realizar una última restauración incremental de copia de seguridad. Copie los datos no estructurados modificados mediante AzCopy o una herramienta similar.
Corte gradualmente el tráfico del usuario al nuevo entorno. Actualice los registros DNS y las configuraciones del equilibrador de carga para dirigir el tráfico de usuario al entorno de Azure. Supervisar la salud y el rendimiento de la carga de trabajo. Comience con 1% de tráfico activo dirigido a la carga de trabajo modernizada mediante el enrutamiento ponderado con el equilibrador de carga de Azure. Supervise las métricas en tiempo real, incluidos los tiempos de respuesta, las tasas de error y el estado de conexión de la base de datos. Aumente el tráfico en incrementos rápidos (5%, 15%, 50%) durante minutos en lugar de horas, con desencadenadores de reversión automatizados si se superan los umbrales.
Realice el cambio final al 100%. Una vez que esté seguro, enrute a todos los usuarios al nuevo entorno. Este cambio puede ser una transición de DNS, que puede tardar de segundos a minutos si el valor de tiempo de vida (TTL) era bajo, o modificar una configuración del balanceador de carga. En este momento, los usuarios están activos en el sistema modernizado.
Compruebe y monitorice inmediatamente después del cambio. Ejecute las comprobaciones de validación posteriores a la transición. Realice pruebas funcionales de un extremo a otro de todos los procesos empresariales críticos mediante conjuntos de pruebas automatizados. Valide la exactitud de los datos mediante la verificación de suma de comprobación y la verificación mediante comparaciones de funciones hash entre las cargas de trabajo de origen y de destino. Haga que los propietarios de cargas de trabajo confirmen que todas las funciones principales funcionan correctamente. Supervise el rendimiento de la carga de trabajo, las tasas de error y los patrones de acceso de usuario durante las primeras 24-48 horas después de la migración para identificar cualquier problema de degradación del rendimiento o funcionalidad.
Mantenga el entorno antiguo en ejecución (en espera activa) durante un tiempo. No desmontes nada aún. Es aconsejable mantener la carga de trabajo antigua en estado activo durante al menos 24-72 horas, con sincronización continua de datos si es posible (o preparado para una sincronización rápida). Si surge un problema grave inesperado en producción, todavía puede decidir revertir la situación redirigiendo el tráfico de regreso. Debería perder la menor cantidad de datos posible, ya que puede ponerse al día con los registros u otros medios.
Validación del éxito de la modernización
Ahora que la nueva carga de trabajo está activa, debe validar en producción que todo funciona según lo previsto y cumplir los criterios de aceptación.
Confirme que el acceso al usuario y el rendimiento de la carga de trabajo se han realizado correctamente. La validación de acceso de usuario garantiza que la modernización sea transparente y que el rendimiento cumpla las expectativas. Esta confirmación valida que los usuarios pueden acceder a la carga de trabajo sin interrupciones. Supervise los patrones de acceso de usuario, las métricas de rendimiento de la carga de trabajo y las tasas de errores durante el período inicial posterior a la migración.
Anuncie el éxito de la migración solo después de una validación exhaustiva. La validación completa garantiza que todas las partes interesadas confirmen que la carga de trabajo es estable y funcional. Esta confirmación evita declaraciones prematuras de éxito que podrían provocar problemas más adelante. Obtenga confirmación de los propietarios de cargas de trabajo, probadores, y partes interesadas empresariales de que las cargas de trabajo cumplen todos los requisitos y funcionan correctamente.
Soporte para la carga de trabajo durante la estabilización
Incluso después de un lanzamiento exitoso, planifique un período de estabilización en el que se le brinde atención adicional a la carga de trabajo. Las cargas de trabajo recién modernizadas pueden tener problemas desconocidos que solo aparecen en patrones de uso reales después de algún tiempo.
Establecer una cobertura de soporte mejorada durante el período de estabilización. Durante los primeros días o semanas (dependiendo de la complejidad) después de la puesta en marcha, se debe mantener un protocolo de soporte intensificado. Asigne al personal de TI experimentado o a los asociados de migración para supervisar la carga de trabajo estrechamente y proporcionar acuerdos de nivel de servicio más cortos que las operaciones normales.
Actualice la documentación y las herramientas operativas. Asegúrese de que todos los runbooks, los documentos de soporte técnico y las configuraciones de supervisión se actualizan para reflejar la nueva realidad. Entrene al equipo de operaciones en cualquier procedimiento nuevo, como nuevos procesos de copia de seguridad, nuevos procedimientos de reinicio para microservicios. Entregó la carga de trabajo modernizada a los equipos de operaciones o soporte técnico con una transferencia completa de conocimientos. Asegúrese de que el inventario de recursos o CMDB registra los nuevos servidores, direcciones IP, servicios y quita o marca los heredados.