Saltar al pie de página
Iron Academy Logo
Aplicación C#
Aplicación C#

Otras categorías

Automatización de la implementación web: acciones de GitHub, Azure Web Apps y Appsettings

Tim Corey
37m 05s

En el vertiginoso mundo actual del desarrollo de software, la automatización del despliegue se ha convertido no sólo en una comodidad, sino en una necesidad. La presión por acelerar los ciclos de lanzamiento, reducir los errores y minimizar la intervención manual ha llevado a los equipos de desarrollo y operaciones a adoptar procesos de despliegue automatizados que se integren bien con el control de versiones, la entrega continua y las canalizaciones CI/CD.

Para ayudar a los desarrolladores a dominar esta automatización, Tim Corey presenta una guía práctica en su vídeo titulado "Web Deployment Automation - GitHub Actions, Azure Web Apps, and Appsettings" Este artículo desgrana su enfoque explicando conceptos clave para destacar la importancia de un proceso de despliegue fiable tanto en entornos de desarrollo como de producción.

¿Por qué automatizar la implementación?

Tim comienza presentando el proceso de despliegue como algo que siempre debe automatizarse. Describe esto no sólo como una buena práctica moderna, sino como una tarea sorprendentemente sencilla y accesible gracias a las modernas herramientas de automatización del despliegue como GitHub Actions y Azure Web Apps. Esto elimina la necesidad de despliegues manuales, largas configuraciones o errores de configuración que a menudo resultan del trabajo manual.

Deja claro que la automatización de tareas como el despliegue de software garantiza que, cada vez que envíes código nuevo, se creará, probará y desplegará automáticamente en un flujo de trabajo totalmente automatizado.

Construyendo la aplicación: Blazor Web App

En esta parte del tutorial, Tim demuestra cómo crear una aplicación básica de Blazor utilizando Visual Studio. Explica cómo elegir el tipo de proyecto, activar HTTPS, seleccionar .NET 8 y configurar los modos de renderizado. El objetivo no es crear una aplicación compleja, sino un proyecto sencillo que pueda desplegarse utilizando siempre el mismo proceso de despliegue.

Estos primeros pasos ponen de manifiesto lo importante que es desarrollar teniendo en cuenta el proceso de implantación. Al empezar con una aplicación limpia y comprobable, los equipos de desarrollo pueden reducir significativamente el tiempo de implementación más adelante.

Uso de Appsettings para configuración local

Tim procede a mostrar cómo configurar appsettings.json con valores de configuración simulados. Esto es esencial para las herramientas de gestión de la configuración y ayuda a los equipos a mantener la separación de las configuraciones para los entornos de pruebas y de producción.

Explica que al inyectar IConfiguration en un componente Razor, se pueden mostrar fácilmente valores como cadenas de conexión y configuraciones anidadas, una gran práctica en aplicaciones nativas de la nube donde los procesos automatizados dependen de una separación limpia de la configuración.

Secretos locales para la seguridad de los desarrolladores

Aquí, Tim presenta secrets.json, la función de Visual Studio para la seguridad del despliegue automatizado. Explica que estos secretos anulan la configuración de la aplicación pero permanecen en el equipo del desarrollador, lo que preserva la confidencialidad y minimiza la posibilidad de que se filtren credenciales al control de código fuente.

Esta parte del tutorial hace hincapié en las prácticas de desarrollo que promueven la seguridad y la coherencia en diferentes entornos, mejorando el ciclo de entrega del software sin exponer información confidencial.

Control de versiones e integración con GitHub

Una de las piezas fundamentales de cualquier sistema de CI/CD es un sólido control de versiones. Tim utiliza la integración de Git en Visual Studio para inicializar un repositorio y enviar el código fuente a GitHub. Esto prepara el terreno para crear una canalización CI/CD que pueda detectar cambios en el código e iniciar un proceso de despliegue automáticamente.

Menciona cómo se realiza el seguimiento de cada commit, lo que ayuda enormemente a los equipos de operaciones que buscan resolver errores o desplegar nuevas funciones. Al utilizar GitHub Actions, el proceso de despliegue automático es trazable y transparente.

Aprovisionamiento de Azure Web App

Tim pasa al portal Azure para demostrar cómo aprovisionar un recurso de aplicación web gratuito. Crea un grupo de recursos, le asigna un nombre y selecciona configuraciones de tiempo de ejecución como .NET 8 y Linux, valores predeterminados comunes en muchas aplicaciones nativas en la nube.

Señala que, aunque se despliegue como "código", Azure en realidad ejecuta los artefactos de compilación dentro de contenedores, lo que abstrae eficazmente la complejidad al tiempo que proporciona las herramientas necesarias para el despliegue.

Entender las limitaciones del nivel gratuito

Para pequeños proyectos de implantación, el plan gratuito de Azure es un buen punto de partida. Tim explica que, aunque limita el uso de la CPU y desactiva ciertas funciones como las ranuras de despliegue, funciona perfectamente para el desarrollo, las demostraciones o la puesta en escena.

Esta explicación refuerza el valor de los entornos de ensayo en el desarrollo de software, que permiten a los equipos realizar pruebas en condiciones cercanas a las de producción sin incurrir en costes.

Configuración de CI/CD a través del Centro de Despliegue

A continuación, Tim recorre el Centro de despliegue de Azure, eligiendo GitHub como fuente de integración. Esto ilustra el núcleo del modelo CI/CD: vincular el control de código fuente al despliegue de software con integración continua.

Selecciona su repositorio de GitHub, establece la autenticación básica y genera un archivo YAML que describe el proceso de automatización. Señala la importancia de la sangría en YAML, un recordatorio de que incluso las configuraciones de despliegue automatizadas necesitan atención al detalle para evitar errores.

Resolución de la configuración de autenticación

Un intento de despliegue revela que la autenticación básica está desactivada por defecto. Tim navega hasta la configuración de Azure para habilitarla, mostrando cómo los procesos de automatización del despliegue en el mundo real a menudo implican tratar con otros servicios y configuraciones.

Una vez resuelto, vuelve al Centro de despliegue e inicia con éxito el flujo de trabajo automatizado, lo que demuestra que este enfoque requiere muy poca intervención manual una vez configurado correctamente.

Ejecución de flujos de trabajo CI/CD

Al cambiar a GitHub, Tim observa cómo se activa automáticamente el flujo de trabajo. GitHub Actions crea la aplicación, la publica y la despliega en Azure, todo ello con un simple push en el repositorio. Este enfoque de despliegue continuo ayuda a comprobar automáticamente los errores del código y reduce por completo los despliegues manuales.

¿El resultado? Un ciclo de lanzamiento más rápido con menos tiempo de inactividad y una participación mínima de los equipos de operaciones tras la configuración inicial.

Uso de Azure para gestionar secretos

Ahora en un entorno de producción, Tim muestra cómo establecer variables de entorno en Azure para anular appsettings.json sin tocar el código fuente.

Explica cómo añadir cadenas de conexión y valores anidados, utilizando guiones bajos dobles (__) para las claves anidadas. Esto garantiza que los desarrolladores puedan mantener el código sin acceder a datos confidenciales, un escenario ideal para DevOps.

Esta separación de preocupaciones es uno de los mayores beneficios de la automatización del despliegue: los desarrolladores envían código limpio y los administradores gestionan las configuraciones de forma segura.

Configuración dinámica sin cambios en el código

Tim destaca que los cambios realizados en Azure pueden surtir efecto tras un reinicio, sin necesidad de recompilar o volver a desplegar manualmente. Esto resulta especialmente útil cuando deben utilizarse variables diferentes en entornos de prueba y de producción, lo que reduce la probabilidad de errores de configuración.

Esto también permite a los equipos de desarrollo mantener la automatización incluso cuando la configuración de la aplicación evoluciona, facilitando el soporte de múltiples entornos de despliegue sin reescribir el código.

Resumiendo: Ventajas de la automatización del despliegue

Al final del vídeo, Tim destaca cómo todo el proceso de automatización del despliegue -desde la escritura del código hasta su despliegue automático- duró unos 30 minutos. Una vez que le cojas el truco, se puede hacer en menos de cinco.

Anima a los desarrolladores a adoptar estas técnicas de despliegue automatizado incluso para proyectos pequeños, argumentando que simplifican la entrega de software, reducen los errores y permiten una respuesta más rápida a nuevas características o problemas.

Tanto si trabajas con Azure, AWS o Google Cloud, comprender y adoptar la automatización del despliegue sienta las bases para proyectos de software más escalables y seguros.

Conclusión

El vídeo de Tim Corey ofrece una hoja de ruta clara y eficaz para configurar un proceso de despliegue totalmente automatizado. Con la ayuda de herramientas como GitHub Actions y Azure Web Apps, las prácticas modernas de devops hacen que sea más fácil que nunca automatizar el despliegue de sus aplicaciones, reducir el trabajo manual y aumentar la fiabilidad en los entornos de desarrollo, pruebas y producción.

Hero Worlddot related to Automatización de la implementación web: acciones de GitHub, Azure Web Apps y Appsettings
Hero Affiliate related to Automatización de la implementación web: acciones de GitHub, Azure Web Apps y Appsettings

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame