POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Construye una vez, despliega en todas partes

De .NET 8 a AKS: guía paso a paso para una API en la nube con CI/CD en Azure usando GitHub Actions

Publicado el 27/09/2025

Introducción: El desarrollo cloud native puede parecer abrumador al principio por la cantidad de conceptos y herramientas como contenedores, Kubernetes, CI CD y proveedores cloud. Este artículo guía paso a paso desde crear una API Web en .NET 8 hasta desplegarla en Azure Kubernetes Service AKS con una canalización CI CD automatizada usando GitHub Actions, y además explica por que cada herramienta aporta valor a una arquitectura cloud native.

Objetivos de aprendizaje: Al finalizar comprenderás como construir APIs .NET 8 listas para producción, contenerizar aplicaciones con Docker, desplegar en Azure Kubernetes Service AKS, configurar pipelines CI CD con GitHub Actions y aplicar buenas prácticas cloud native enfocado a aplicaciones a medida y software a medida.

Visión del proyecto: Crearemos una API Weather Forecast y la desplegaremos en la nube. Backend .NET 8 Web API. Contenerización con Docker. Plataforma cloud Azure AKS. Automatización con GitHub Actions.

Requisitos previos: Instalar Visual Studio Code, .NET 8 SDK, Git, Docker Desktop, Azure CLI, kubectl y opcionalmente GitHub CLI. Necesitarás cuentas en GitHub y Azure. Verifica instalaciones con dotnet --version, git --version, docker --version, az --version, kubectl version --client.

Paso 1 Crear la aplicación .NET: Estructura mkdir weather-app-demo cd weather-app-demo mkdir WeatherApp cd WeatherApp. Inicializa proyecto dotnet new webapi -minimal. Agrega dependencias dotnet add package Microsoft.Extensions.Diagnostics.HealthChecks y dotnet add package Swashbuckle.AspNetCore. Es recomendable organizar el código y la configuración de infraestructura en carpetas separadas para facilitar CI CD.

Programa y endpoints: Utiliza Minimal APIs de .NET para crear endpoints de bienvenida, clima y un endpoint health que Kubernetes puede usar como probe. Configura Kestrel para escuchar en el puerto 8080 para que el contenedor mapee puertos correctamente. Habilita Swagger para documentación y pruebas. Ejecuta localmente con dotnet run y prueba con http colon slash slash localhost colon 8080, /weather, /swagger y /health.

Paso 2 Contenerizar con Docker: Crea un Dockerfile multietapa usando imagenes oficiales mcr.microsoft.com dotnet sdk y aspnet para reducir tamaño final. Expone el puerto 8080 y establece ASPNETCORE URLS en http colon plus colon 8080. Añade un archivo .dockerignore excluyendo bin obj .vs .vscode .git y archivos temporales. Construye imagen docker build -t weather-app:local . y prueba con docker run -d -p 8080:8080 --name weather-test weather-app:local. Detener y limpiar con docker stop y docker rm.

Paso 3 Infraestructura en Azure: Accede con az login y selecciona la suscripción con az account set. Crea un resource group az group create --name student-demo --location eastus. Crea un Azure Container Registry ACR az acr create --resource-group student-demo --name studentdemo2042acr --sku Basic. Usa az acr build --registry studentdemo2042acr --image weather-app:latest . para construir la imagen en Azure y evitar problemas locales de compatibilidad. Crea un AKS az aks create --resource-group student-demo --name student-aks-cluster --node-count 1 --node-vm-size Standard_B2s --attach-acr studentdemo2042acr --enable-managed-identity --generate-ssh-keys. Conecta kubectl con az aks get-credentials y verifica nodos con kubectl get nodes.

Paso 4 Despliegue en Kubernetes: Crea carpeta k8s y ficheros deployment.yaml y service.yaml con manifiestos que declaren un Deployment con replicas 2, imagen studentdemo2042acr.azurecr.io slash weather-app colon latest, puerto containerPort 8080, probes liveness y readiness apuntando a la ruta /health, y una Service de tipo LoadBalancer que expone puerto 80 mapeado a targetPort 8080. Aplica manifiestos con kubectl apply -f deployment.yaml y kubectl apply -f service.yaml. Comprueba estado con kubectl get deployments, kubectl get pods y kubectl get services.

Paso 5 CI CD con GitHub Actions: Inicializa git git init, git add ., git commit -m Initial commit. Crea un service principal en Azure para que GitHub Actions pueda desplegar az ad sp create-for-rbac --name weather-app-github-sp --role contributor --scopes /subscriptions slash TU_SUBSCRIPCION_ID slash resourceGroups slash student-demo y guarda el JSON de salida como secreto AZURE_CREDENTIALS en GitHub. Crea el repositorio en GitHub y sube el código. Configura secretos adicionales en GitHub como ACR_NAME studentdemo2042acr, RESOURCE_GROUP student-demo y CLUSTER_NAME student-aks-cluster.

Workflow de ejemplo: Crea .github slash workflows slash deploy.yml que en cada push a main realiza checkout, setup de .NET, restore, build, pruebas, login a Azure con azure slash login usando el secreto AZURE_CREDENTIALS, construye y publica la imagen a ACR con az acr build y luego obtiene credenciales de AKS, actualiza el deployment con kubectl set image y espera rollout con kubectl rollout status. Este flujo automatiza build push deploy cada vez que merges o pushes a main.

Paso 6 Accede a la aplicación desplegada: Obtén la IP externa con kubectl get service weather-app-service y espera a que aparezca EXTERNAL IP. Accede a la API con curl o desde el navegador en la ruta raiz, /weather, /health y /swagger.

Paso 7 Prueba despliegue continuo: Modifica el mensaje de bienvenida en Program cs, commit y push a main. Observa como GitHub Actions reconstruye y despliega la nueva versión automaticamente y verifica el cambio desde la IP externa.

Buenas prácticas y conceptos clave: Usar endpoints health para probes de Kubernetes, mantener imagenes multietapa para minimizar tamaño y superficie de ataque, gestionar secretos mediante GitHub Secrets, y automatizar pruebas y despliegues para reducir errores humanos. Contenedores aseguran portabilidad y AKS ofrece gestion del cluster en producción.

Ampliaciones recomendadas: integrar monitorización y logs centralizados, configurar autoscaling con Horizontal Pod Autoscaler, conectar bases de datos gestionadas y añadir escaneo de seguridad en la pipeline. Para proyectos empresariales y soluciones a medida podemos aplicar pruebas de pentesting y controles de ciberseguridad antes de desplegar en producción.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con experiencia en inteligencia artificial, ciberseguridad y servicios cloud en AWS y Azure. Si necesitas desarrollar una aplicación personalizada o modernizar una arquitectura cloud, podemos ayudar desde el análisis hasta la entrega. Conecta tus objetivos de negocio con soluciones tecnológicas avanzadas y aprovecha servicios como desarrollo de aplicaciones y software a medida y despliegues gestionados en la nube con servicios cloud AWS y Azure. Además ofrecemos servicios de inteligencia de negocio y Power BI, agentes IA para automatización y soluciones de ia para empresas, y planes de ciberseguridad y pentesting para proteger tus activos.

Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi, pensadas para mejorar posicionamiento y relevancia en proyectos similares.

Conclusión: Con este flujo completo has cubierto el ciclo desde código local hasta aplicación resiliente en AKS, contenerizada con Docker y con CI CD automatizado con GitHub Actions. Esta hoja de ruta es aplicable a la mayoría de servicios y te ofrece un blueprint repetible para llevar cualquier API o microservicio a producción. Si quieres que Q2BSTUDIO te acompañe en el diseño e implementación, contacta y conversemos cómo convertir tu idea en un despliegue seguro y escalable.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio