Supongamos que trabajas para una empresa de atención médica que proporciona sus servicios a través de una plataforma web. La interfaz de usuario de esta plataforma está configurada como una aplicación web PHP alojada en Azure App Services. Se realizan actualizaciones frecuentes al código fuente de la aplicación en producción para mejorar características o solucionar errores.Sin embargo, estas actualizaciones a veces introducen problemas:
- Bugs no detectados:A pesar de las rigurosas pruebas, los evaluadores ocasionalmente pasan por alto errores críticos, lo que lleva a problemas en el entorno de producción.
- Tiempo de inactividad: Cuando se identifican errores, revertir cambios causa interrupciones en el servicio, lo que frustra a los usuarios finales.
- Despliegues lentos:El proceso de despliegue y compilación afecta la capacidad de respuesta de la aplicación, especialmente durante los momentos de mayor uso, lo que lleva a la insatisfacción del usuario.
¿Hay una mejor solución para garantizar actualizaciones sin interrupciones en los servicios? ¡Sí! Microsoft Azure ofrece una potente característica conocida como espacios de despliegue.
Espacios de Despliegue de Azure
Microsoft Azure los slots de implementación proporcionan una manera eficiente y confiable de gestionar las actualizaciones de la aplicación. Con los slots de implementación, puedes mantener simultáneamente tanto la nueva como la antigua versión de tu aplicación. Cambiar entre las dos versiones es tan simple como unos clics del ratón, eliminando la necesidad de costosos retrocesos de código.
¿Qué son los Slots de Implementación y Cómo Funcionan?
Los Slots de Implementación de Azure son una característica en Azure App Services que te permite crear entornos separados para desplegar y probar tu aplicación web antes de hacerla disponible para todos los usuarios finales. Cada slot de implementación opera como una instancia independiente de tu aplicación, que puede ser personalizada para propósitos específicos, tales como:
- Pruebas: Para probar y validar cambios antes de pasar a producción.
- Producción: Para servir a los usuarios finales con una versión estable de la aplicación.
- Slots adicionales: Dependiendo de tu plan de precios, puedes crear slots para QA, pruebas u otros entornos.
Características Clave de los Slots de Implementación
Instancias Precalentadas
Cuando implementas en un espacio de preparación, el espacio está precalentado. Esto significa que la aplicación está completamente inicializada y lista para manejar solicitudes de usuarios con una latencia mínima.
Intercambiar el espacio de preparación a producción garantiza que no haya tiempo de inactividad ni retraso por inicio en frío.
Redirección de Tráfico Sin Interrupciones
Durante el intercambio, la redirección de tráfico entre espacios es sin interrupciones, asegurando que no se pierdan solicitudes de usuarios.
Capacidad de Reversión
Si surgen problemas inesperados después de intercambiar una nueva versión a producción, puedes revertir inmediatamente a la configuración de “última buena conocida”.
Cómo los Espacios de Implementación Abordan el Problema
Detección de Errores Antes de la Producción
Al implementar el nuevo código en un espacio de preparación, los evaluadores pueden validar la aplicación en un entorno que refleja la producción. Esto minimiza el riesgo de errores no detectados.
No hay Interrupciones del Servicio
Dado que la aplicación está precalentada en el espacio de preparación, el intercambio a producción ocurre sin tiempo de inactividad, proporcionando servicios ininterrumpidos a los usuarios finales.
Implementaciones Más Rápidas
Intercambiar espacios es instantáneo en comparación con los métodos de implementación tradicionales, reduciendo significativamente el tiempo necesario para la implementación y mejorando la capacidad de respuesta.
Configurando y Configurando una Aplicación Web de Azure
1. Crear una aplicación web
Inicia sesión en el portal de Azure con tu cuenta. Busca Servicios de aplicación y haz clic en él.
Haz clic en Aplicación web.
Selecciona de 1 a 7 valores según sea necesario para tu aplicación, luego haz clic en Revisar y crear, seguido de Crear. El nombre de la aplicación web en esta demostración es webappdemotosrs.
webappdemotosrs (Aplicación web) se puede acceder a través de la URL del dominio predeterminado.
2. Creación de ranuras de implementación
Haz clic en el Ranuras de implementación panel.
Haz clic en Agregar ranura.
Asigna un Nombre a la ranura.
Elige si deseas clonar la configuración desde otro espacio. Si eliges clonar, la configuración se copia a tu nuevo espacio desde el espacio que especifiques.
Haz clic en Añadir.
El espacio se crea con el nombre dado.
Configurar la Configuración de Despliegue de la Aplicación Web
En esta tarea, configurarás las configuraciones de despliegue de la Aplicación Web. Las configuraciones de despliegue permiten un despliegue continuo. Esto asegura que el servicio de la aplicación tenga la última versión de la aplicación. En el espacio de staging, selecciona Centro de Despliegue y luego selecciona Configuración. En la lista desplegable de Origen, selecciona Git Externo. Observa las otras opciones.
- En el campo del repositorio, ingresa: https://github.com/Azure-Samples/php-docs-hello-world.
- En el campo de la rama, ingresa master. Selecciona Guardar.
- Desde el espacio de staging, selecciona Resumen.
- Seleccione el enlace del dominio predeterminado y abra la URL en una nueva pestaña.
- Verifique que el slot de staging muestre Hello World.
3. Intercambio de Slots de Despliegue
Haga clic en Intercambiar.
Haga clic en Iniciar Intercambio.
Una vez que se complete el intercambio, aparecerá una notificación mostrando su estado.
4. Después de Intercambio de Slots de Despliegue
Producción Salida de la URL del Dominio Predeterminado:
Staging La salida de la URL del Dominio Predeterminado será como se muestra a continuación
Esto demuestra que después de un intercambio de slots de despliegue, el slot de producción comienza a ejecutar el nuevo código mientras que el slot de staging vuelve al código antiguo.
Resumen
En este artículo, aprendimos cómo crear y usar espacios de implementación en Azure App Service. Utilizamos los espacios para probar y preparar nuevas versiones de nuestra aplicación y cambiamos esos espacios de implementación. Podemos intercambiar espacios para desplegar una aplicación probada en producción y revertir una aplicación desplegada cuando surgen problemas inesperados.Al usar espacios de implementación, recuerda que Azure calienta una aplicación antes de un intercambio, y la redirección del tráfico es instantánea. El resultado es que tu aplicación se despliega sin interrupciones en el servicio ni disminución en su rendimiento.
Source:
https://dzone.com/articles/azure-web-apps-deployment-slots