Implementación de Aplicaciones Web en App Service

Resumen de App Service Plan, intercambio de ranuras de despliegue, escalado automático, TLS/SSL y registro de diagnóstico.

App Service es uno de los servicios mas importantes en el examen AZ-204. Debes entender claramente la estructura de niveles, los slots de implementacion, el escalado automatico, la configuracion de la app y el registro de diagnosticos.

 

Que es App Service?

Piensa en un complejo de apartamentos. Todo el complejo es el App Service Plan (infraestructura), y cada apartamento es una aplicacion individual. Al igual que el tamano del complejo (nivel) determina el numero de unidades y las comodidades disponibles, el nivel del App Service Plan determina que funciones estan disponibles.

App Service es una plataforma completamente administrada (PaaS) que te permite ejecutar aplicaciones web, APIs REST y backends moviles sin administrar servidores.

 

Niveles del App Service Plan

Un App Service Plan es un grupo de maquinas virtuales en las que se ejecutan tus apps. Puedes alojar varias apps en el mismo Plan, y todas comparten los mismos recursos de computo.

| Nivel | Caracteristicas | Caso de uso | |-------|----------------|-------------| | Free / Shared | Infraestructura gratuita o compartida, sin slots de implementacion, dominios personalizados limitados | Aprendizaje y experimentacion | | Basic | VMs dedicadas, escalado manual, sin slots de implementacion | Apps de pequena escala | | Standard | Escalado automatico, 5 slots de implementacion, copia de seguridad, dominio personalizado + SSL | Produccion general | | Premium | VMs de alto rendimiento, 20 slots de implementacion, integracion VNet | Apps de alto trafico | | Isolated (ASE) | Red virtual dedicada, maxima seguridad, App Service Environment | Finanzas, salud, cumplimiento normativo |

Punto clave: Los Slots de implementacion y el Escalado automatico solo estan disponibles en el nivel Standard y superiores.

 

Slots de Implementacion (Deployment Slots)

Un slot de implementacion es una funcion que te permite ejecutar independientemente multiples entornos (staging, QA, produccion, etc.) dentro del mismo App Service. Es similar a un "mostrador de degustacion" en un restaurante. Antes de servir un nuevo plato a los clientes, el personal lo prueba primero en el mostrador de degustacion. Si no hay problemas, se agrega al menu principal (produccion).

Intercambio de Slots (Slot Swap)

Despues de probar exhaustivamente en el slot de staging, haz el intercambio con produccion con un solo clic. Debido a que la app se precalienta antes de que se complete el intercambio, no hay tiempo de inactividad.

Implementacion sin tiempo de inactividad: La version existente sigue sirviendo trafico hasta que la nueva version este lista Revertir (Rollback): Si algo sale mal, intercambia de inmediato para restaurar la version anterior Intercambio automatico (Auto Swap): Intercambia automaticamente con produccion cuando la implementacion en staging se completa (util para CI/CD)

Configuraciones Fijas (Sticky Settings)

Algunas configuraciones de slot permanecen fijas en su slot y no se mueven cuando ocurre un intercambio. Por ejemplo, si configuras una cadena de conexion de base de datos de forma diferente para cada slot y la marcas como fija, el slot de staging siempre usa la base de datos de prueba y produccion siempre usa la base de datos de produccion.

Fija (Sticky): Configuraciones que permanecen en el slot despues de un intercambio (ej. cadenas de conexion, configuraciones especificas de la app) No fija: Configuraciones que se mueven juntas durante un intercambio (ej. configuraciones generales de la app)

 

Escalado Automatico (Autoscaling)

Al igual que un restaurante que asigna mas personal durante la hora del almuerzo y menos cuando esta tranquilo, App Service aumenta o reduce automaticamente el numero de instancias segun el trafico.

Metodos de Escalado

| Metodo | Descripcion | Ejemplo | |--------|-------------|---------| | Basado en reglas | Escalar cuando una metrica supera un umbral | Agregar una instancia cuando la CPU supere el 80% | | Basado en horario | Pre-escalar en momentos especificos del dia | Escalar a 3 instancias todos los dias a las 9 AM |

Metricas soportadas: uso de CPU, uso de memoria, longitud de cola HTTP, conteo de solicitudes Escalar horizontalmente (Scale Out): Aumentar el numero de instancias Escalar verticalmente (Scale Up): Mover a un nivel de VM mas grande

 

Configuracion de la App (App Settings)

La configuracion de la app inyecta variables de entorno en tu aplicacion. En lugar de escribir contrasenas o claves API directamente en el codigo, recibes valores de configuracion desde afuera. Es como no escribir la combinacion de una caja fuerte en tu codigo sino ingresarla externamente.

Configuracion de la app: Pares clave-valor que el codigo lee como variables de entorno Cadenas de conexion (Connection Strings): Informacion de conexion a la base de datos (ADO.NET, MySQL, etc.) Referencia a Key Vault: Lee los valores de configuracion directamente desde Azure Key Vault. Los secretos no se almacenan en App Service, mejorando la seguridad.

Comportamiento de la Configuracion en Slots

Si marcas una configuracion de app como configuracion de slot, no se mueve durante un intercambio. Por el contrario, las configuraciones de app que no son configuraciones de slot se mueven juntas durante un intercambio.

 

Registro de Diagnosticos (Diagnostic Logging)

Se usa para encontrar la causa cuando algo sale mal en tu app. Al igual que un medico examina los resultados de las pruebas al diagnosticar a un paciente, usas el registro de diagnosticos para analizar el estado de tu app.

| Tipo de registro | Descripcion | SO compatible | |-----------------|-------------|--------------| | Registro de aplicacion | Registros escritos por el codigo de la app (salida de consola, etc.) | Windows / Linux | | Registro del servidor web | Registros de solicitudes/respuestas HTTP (registros IIS) | Windows | | Mensajes de error detallados | Guardar paginas de error HTTP 4xx/5xx | Windows | | Seguimiento de solicitudes fallidas | Seguimiento detallado del procesamiento de solicitudes fallidas | Windows |

Destinos de registros: Sistema de archivos de App Service o Azure Blob Storage Streaming de registros: Ver registros en tiempo real a traves del Portal de Azure o Azure CLI

 

Puntos clave del examen

"Nivel minimo que admite slots de implementacion y escalado automatico" -- Standard

"Red dedicada, maxima seguridad, cumplimiento normativo" -- Isolated (ASE)

"Cambiar staging a produccion sin tiempo de inactividad" -- Intercambio de slots (Slot Swap)

"Configuraciones que permanecen en un slot despues de un intercambio" -- Configuraciones fijas (Sticky Settings)

"Restaurar inmediatamente la version anterior cuando algo sale mal" -- Revertir con intercambio de slots

"Escalar automaticamente instancias segun CPU / memoria / cola HTTP" -- Escalado automatico basado en reglas

"Inyectar configuracion sin poner contrasenas en el codigo" -- Configuracion de la app (App Settings)

"Leer valores de configuracion directamente desde Key Vault" -- Referencia a Key Vault

"Registros de solicitudes/respuestas HTTP (registros IIS)" -- Registro del servidor web

"Registros escritos directamente por el codigo de la app" -- Registro de aplicacion

"Scale Out vs Scale Up" -- Out = mas instancias / Up = mover a una VM mas grande

Volver a la lista del blog