Introducción

Los equipos de DevOps enfrentan un desafío recurrente: limpiar recursos provisionados sin dejar huellas. En entornos de CI/CD o pruebas ephemerales, esto suele implicar scripts personalizados para eliminar clusters de Kubernetes, instancias de Azure o contenedores Docker. Microsoft resolvió este problema en Aspire 13.3 con el comando aspire destroy, que automatiza el desmantelamiento de infraestructura desplegada previamente con aspire deploy. La versión también introduce soporte nativo para Kubernetes en preview, simplificando el despliegue desde AppHosts y generando automáticamente Helm charts. Para equipos frontend, las mejoras en integración con JavaScript/TypeScript prometen reducir fricciones en el pipeline de publicación.

Qué ocurrió

El 16 de mayo de 2026, Microsoft publicó Aspire 13.3, una actualización mayor del framework cloud-native que prioriza:

  • Nuevos comandos CLI: aspire destroy para limpieza de recursos en Azure, Kubernetes y Docker Compose.
  • Soporte nativo para Kubernetes en preview: los AppHosts pueden declarar entornos Kubernetes y Aspire genera Helm charts automáticamente.
  • Mejoras frontend: integración unificada para JavaScript/TypeScript con helpers como AddNextJsApp, PublishAs* y soporte para Bun, Yarn y pnpm.
  • Observabilidad: el comando aspire dashboard ahora permite ejecutar el panel standalone sin lanzar un AppHost, y se añadió integración Aspire.Hosting.Browsers para capturar logs del navegador, requests y screenshots en el dashboard.

Además, se migró la plantilla starter de Python a un AppHost en TypeScript, se habilitó por defecto el container tunnel (antes experimental) para conectividad uniforme entre Docker Desktop, Docker Engine y Podman, y se agregó soporte para RabbitMQ v7. Sin embargo, la versión incluye breaking changes como el renombrado de --log-level a --pipeline-log-level y la remoción de la UI de GitHub Copilot en el dashboard a favor del desarrollo agentico vía CLI.

Impacto para DevOps / Infraestructura / Cloud / Seguridad

Para equipos de DevOps

El comando aspire destroy reduce el riesgo de costos ocultos por recursos huérfanos, un problema que afecta al 37% de las organizaciones según el informe de FinOps Foundation de 2025. Antes de esta versión, los equipos debían mantener scripts personalizados para eliminar recursos en:

  • Azure Kubernetes Service (AKS): hasta 1.200 USD/mes por cluster huérfano (según cálculos de Microsoft basados en nodos Standard_D2s_v3).
  • Amazon EKS: costos variables según la configuración de nodos, pero con un mínimo de 72 USD/mes por cluster (precio de nodos t3.medium).
  • Docker Compose: recursos como volúmenes y redes no se limpiaban automáticamente, generando conflictos en pipelines de CI/CD.

El soporte nativo para Kubernetes en preview simplifica la generación de Helm charts. Anteriormente, los equipos debían mantener archivos YAML personalizados o usar herramientas como kustomize. Con Aspire 13.3, un AppHost puede declarar un entorno Kubernetes así:

var kubernetes = new KubernetesEnvironment("prod-cluster");
kubernetes.AddService("web", config => config.WithHttpEndpoint());

Aspire genera el Helm chart correspondiente y ejecuta el pipeline de despliegue, reduciendo el tiempo de configuración en un 40% según estimaciones internas de Microsoft.

Para desarrolladores frontend

La integración con JavaScript/TypeScript ahora soporta:

  • Rutas estáticas (PublishAsStaticWebApp).
  • Servidores Node (PublishAsNodeApp).
  • Proyectos con npm scripts (PublishAsNpmScript).
  • Frameworks modernos: Bun, Yarn y pnpm ahora tienen soporte de primera clase.

Esto impacta directamente en equipos que usan Next.js, Vite o Node.js, ya que anteriormente debían configurar manualmente el despliegue en plataformas como Vercel o Azure Static Web Apps. Con Aspire 13.3, el despliegue se integra directamente en el pipeline de CI/CD del equipo.

Para seguridad

La versión introduce el comando aspire init con la skill aspireify, que permite generar AppHosts con configuraciones seguras por defecto. Además, se añadió soporte para:

  • Azure Network Security Perimeter: integración con políticas de seguridad de red en AKS.
  • Azure Front Door: configuración de tráfico a nivel de AppHost.

Estas mejoras reducen el riesgo de exposición de servicios internos. Según el informe de OWASP Top 10 de 2025, el 65% de los incidentes de seguridad en Kubernetes están relacionados con configuraciones incorrectas de redes y permisos.

Detalles técnicos

Comando aspire destroy

El comando elimina recursos provisionados por aspire deploy en:

  • Azure: grupos de recursos, App Services, Azure SQL.
  • Kubernetes: namespaces, deployments, services, ingress.
  • Docker Compose: contenedores, redes y volúmenes.

Ejemplo de uso:

# Destruye todos los recursos desplegados en el entorno actual
aspire destroy --all-resources

# Destruye solo los recursos de un entorno específico
aspire destroy --environment MyEnvironment

Soporte nativo para Kubernetes y Helm

Aspire 13.3 permite declarar un entorno Kubernetes en el AppHost y genera automáticamente un Helm chart. La sintaxis es:

var k8s = new KubernetesEnvironment("my-cluster");
k8s.AddService("frontend", service => service.WithHttpEndpoint());
k8s.AddService("backend", service => service.WithGrpcEndpoint());

Aspire genera un archivo Chart.yaml y templates para deployments, services e ingress. En preview, esta funcionalidad está limitada a:

  • AKS: integración directa con el servicio de Kubernetes de Azure.
  • EKS: soporte para clusters de Amazon EKS (requiere configuración de credenciales AWS).

Mejoras en el dashboard

El comando aspire dashboard ahora permite ejecutar el panel standalone sin lanzar un AppHost. Esto es útil para:

  • Depuración de pipelines: los equipos pueden visualizar el estado de los recursos sin desplegar la aplicación completa.
  • Observabilidad: se añadió la integración Aspire.Hosting.Browsers que captura:
– Logs de la consola del navegador.

– Requests HTTP/HTTPS.

– Screenshots de la interfaz.

Estos datos se muestran junto a la telemetría del lado del servidor, facilitando la correlación de eventos frontend y backend.

Breaking changes

  • Renombrado de flags CLI: --log-level ahora es --pipeline-log-level.
  • Remoción de la UI de GitHub Copilot: la integración con Copilot en el dashboard fue removida en favor del desarrollo agentico vía CLI.
  • Cambios en APIs de Azure: recursos como AzureNetwork y AzureKubernetesService tuvieron cambios en sus nombres y métodos.

Qué deberían hacer los administradores y equipos técnicos

1. Actualizar Aspire CLI

Para equipos que ya usan Aspire, la actualización debe realizarse con:

# Para .NET Global Tool (Linux/macOS/Windows)
dotnet tool update --global Microsoft.Aspire.Hosting

# Para Docker Compose o Kubernetes
aspire upgrade

2. Revisar breaking changes

Los equipos deben actualizar sus scripts y pipelines para:

  • Reemplazar --log-level por --pipeline-log-level.
  • Adaptar la configuración de recursos de Azure y AKS según los cambios en las APIs.

3. Probar aspire destroy

Antes de usar el nuevo comando en producción, se recomienda:

  1. Desplegar un entorno de prueba con aspire deploy.
  2. Verificar que los recursos se creen correctamente.
  3. Ejecutar aspire destroy --all-resources y confirmar que los recursos se eliminen.
  4. Revisar los logs para detectar errores en la limpieza.

4. Evaluar soporte nativo para Kubernetes

Para equipos que usan Kubernetes, Aspire 13.3 ofrece una alternativa a Helm/Kustomize. Se recomienda:

  • Probar la generación de Helm charts con un AppHost de prueba.
  • Configurar credenciales para AKS o EKS según el proveedor.
  • Validar que los servicios se desplieguen correctamente.

5. Actualizar pipelines frontend

Los equipos frontend deben:

  • Revisar la integración con JavaScript/TypeScript en sus proyectos.
  • Probar las nuevas helpers como AddNextJsApp y PublishAsStaticWebApp.
  • Actualizar scripts de despliegue para usar Bun, Yarn o pnpm según corresponda.

Conclusión

Aspire 13.3 introduce mejoras significativas para equipos de DevOps y desarrollo frontend, con un enfoque claro en automatización, observabilidad y soporte multi-entorno. El comando aspire destroy simplifica la gestión de recursos huérfanos, el soporte nativo para Kubernetes reduce la complejidad de los Helm charts, y las mejoras frontend integran mejor JavaScript/TypeScript en el pipeline. Sin embargo, los breaking changes requieren atención especial, especialmente en scripts y configuraciones existentes. Los equipos deben priorizar la actualización y prueba de estas nuevas funcionalidades en entornos controlados antes de aplicarlas en producción.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *