AZ-305

Deep Dive

D4 · Infraestructura

Arquitectura de Aplicaciones

Diseñar la capa de aplicación: dimensionar App Service correctamente, aplicar los patrones cloud que el examen referencia (retry, circuit breaker, CQRS, strangler fig), y externalizar configuración, estado y cache.

Icon-web-41

App Service — diseño del plan

TierAportaCuándo
Free / SharedCompute compartido, sin SLA ni custom domain SSLPruebas
BasicCompute dedicado, custom domains, escala manual a 3Dev/test y apps pequeñas
StandardAutoscale (10), slots (5), backups diariosProducción general
Premium v3/v4Más slots (20), 30 instancias, VNet integration, zone redundancy, mejor hardwareProducción exigente; "VNet integration" o "zone redundancy" → mínimo Premium
Isolated v2 (ASE v3)App Service Environment: despliegue EN tu VNet, single-tenant, hasta 100 instanciasAislamiento total de red/compliance — la señal es "completamente aislado en la VNet"

Deployment slots

  • • Staging con su propia URL; swap intercambia con producción SIN downtime (las instancias ya están calientes)
  • • Swap with preview, auto-swap, y rollback = volver a swapear
  • • Testing in production: % de tráfico a un slot (canary)

Networking de App Service

  • VNet integration: tráfico SALIENTE de la app hacia la VNet (llegar a DB privada)
  • Private Endpoint: tráfico ENTRANTE privado hacia la app
  • • Ambos juntos = app totalmente privada (sin ASE)
  • • Access restrictions: filtrar entrante por IP/service tag (ej: solo Front Door)

Patrones cloud que pide el examen

PatrónProblema que resuelveEn Azure
Retry con backoffFallos transitorios de red/servicioSDKs de Azure lo traen; Polly en .NET
Circuit BreakerNo martillear un servicio caído; fallar rápidoLógica de app / API Management
Queue-Based Load LevelingPicos que tumban al backend — la cola amortiguaService Bus / Storage Queues entre web y worker
Competing ConsumersProcesar la cola en paralelo escalando workersFunctions/Container Apps escalando por longitud de cola
CQRSSeparar modelos de lectura y escritura para escalar cada unoEscrituras a SQL, lecturas desde réplicas/cache/Cosmos
Event SourcingHistorial completo como secuencia de eventosCosmos change feed / Event Hubs
SagaTransacciones distribuidas entre microservicios (compensación)Durable Functions, Service Bus
Strangler FigMigrar un monolito incrementalmente, ruta a rutaAPI Management / App Gateway enrutando entre legacy y nuevo
Sidecar / AmbassadorFuncionalidad transversal junto al contenedorDapr en Container Apps / AKS
Cache-AsideAliviar la DB con cache de lecturaAzure Cache for Redis

Señales típicas

"Los picos de pedidos saturan el backend" → cola entre capas (load leveling). "Migrar el monolito gradualmente sin big bang" → strangler fig. "Las lecturas superan 100:1 a las escrituras" → CQRS + cache/réplicas.

Configuración, secretos y estado

App Configuration

  • Configuración centralizada para múltiples apps/ambientes
  • Feature flags con targeting
  • Referencias a Key Vault para los valores secretos
  • Señal: "gestionar configuración de 20 microservicios en un solo lugar"

Key Vault

  • SECRETOS (connection strings, claves API)
  • Consumido vía managed identity / Key Vault references
  • App Configuration guarda config; Key Vault guarda secretos — juntos, no compitiendo

Estado externo

  • Apps stateless = requisito para escalar horizontalmente
  • Sesiones → Redis
  • Archivos → Blob Storage (no el filesystem local)
  • Workflows con estado → Durable Functions
Icon-databases-137

Caching y entrega de contenido

CapaServicioCachea
DatosAzure Cache for RedisResultados de queries, sesiones, objetos calientes (cache-aside)
Edge globalFront Door (+CDN)Contenido estático y dinámico acelerado en POPs globales
APIAPI Management (policy de cache)Respuestas de API por clave/parámetros
EstáticosBlob estático + CDN/Front DoorSPA, imágenes, descargas

Despliegue automatizado

HerramientaCuándo
Azure DevOps (Pipelines)CI/CD empresarial: build → test → release con aprobaciones, gates y entornos. Integra con repos Azure Repos, GitHub o cualquier git
GitHub ActionsFlujos nativos en GitHub: workflows YAML en el repo, marketplace de actions, integración con OIDC para credenciales sin secrets
Azure Deployment EnvironmentsProvisionar entornos completos (IaC plantillas) bajo demanda para dev/test — autoservicio con gobernanza central
Deployment slots (App Service)Blue/green sin downtime dentro de App Service — swap entre staging y producción con warmup previo
Bicep / Terraform (IaC)Infraestructura declarativa versionada en el repo — prerequisito de despliegues repetibles y revisables
GitOps + Flux/ArgoCD (AKS)El cluster reconcilia su estado contra el repo git — cambios de configuración = PR, no comandos manuales

Señales del examen

"Desplegar a múltiples entornos con aprobación manual antes de producción" → Azure Pipelines con gates/environments. "El equipo ya usa GitHub" → GitHub Actions. "IaC repetible sin diferencias entre entornos" → Bicep/Terraform en pipeline. "Clusters AKS sin comandos manuales al cluster" → GitOps.

Tabla de decisión

RequisitoDiseño
Deploy sin downtime con rollback inmediatoDeployment slots + swap
La app llega a una SQL privada en la VNetRegional VNet integration (Premium)
La app solo accesible desde la red privadaPrivate Endpoint (+ deshabilitar acceso público)
App Service single-tenant 100% en tu VNetASE v3 (Isolated v2)
Solo aceptar tráfico que venga de Front DoorAccess restrictions (service tag + header X-Azure-FDID)
Picos de tráfico saturan el procesamiento de pedidosCola (Service Bus) + workers que escalan (load leveling)
Feature flags y config central multi-appAzure App Configuration
Migración incremental del monolitoStrangler fig con APIM/App Gateway al frente
Sesiones de usuario al escalar horizontalmenteRedis como session store (app stateless)
CI/CD con aprobación manual antes de producciónAzure DevOps Pipelines (environments + approvals)
Flujo de despliegue nativo al repo de GitHubGitHub Actions
Entornos de dev/test bajo demanda con IaCAzure Deployment Environments

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Una web de venta de entradas colapsa cuando salen entradas populares: la API de pedidos recibe 50x el tráfico normal y la base de datos se satura, perdiendo pedidos. El negocio acepta que la confirmación del pedido tarde unos segundos más durante picos. ¿Qué patrón aplicas?

Inicia sesión para llevar tu progreso.