Automatización de plataforma y DevOps para el acelerador de zonas de aterrizaje de Azure App Service

En este artículo se proporcionan consideraciones y recomendaciones de diseño para la automatización de plataforma y DevOps que puede aplicar cuando use el acelerador de zonas de aterrizaje de Azure App Service. La automatización de la plataforma y DevOps proporciona las oportunidades para modernizar el enfoque de implementación mediante la infraestructura como código.

Obtenga más información sobre el área de diseño de la automatización de la plataforma y DevOps.

Consideraciones de diseño

La automatización y DevOps son procedimientos importantes en el desarrollo de software moderno y App Service es una plataforma eficaz para compilar e implementar aplicaciones web. Mediante las técnicas de automatización y DevOps, puede simplificar el flujo de trabajo y mejorar la calidad y confiabilidad de las aplicaciones.

Tenga en cuenta las consideraciones siguientes al preparar cualquier implementación de App Service.

  • Comprenda los requisitos y objetivos del proyecto a fin de poder determinar las herramientas y enfoques más adecuados para la automatización. Este paso implica identificar las tareas que se quieren automatizar, como las de aprovisionamiento de infraestructura, implementación de código y pruebas. También implica identificar las herramientas y tecnologías que se usarán para implementar la automatización.

  • Convierta la seguridad en una prioridad máxima al diseñar una canalización de CI/CD y automatización en App Service. Las tareas de seguridad pueden incluir la implementación de medidas de autenticación y autorización para ayudar a proteger el acceso a la canalización y sus componentes. También pueden incluir la implementación del cifrado y otras medidas de seguridad para ayudar a proteger los datos confidenciales.

  • Considere la integración e implementación continuas. App Service admite la integración e implementación continuas desde varios sistemas de control de código fuente, incluidos Azure Repos, GitHub y Bitbucket. Puede usar estas herramientas para automatizar el proceso de compilación e implementación, lo que garantiza que la aplicación esté siempre actualizada y disponible.

  • Considere la posibilidad de usar scripts de automatización. App Service proporciona una serie de scripts de automatización, como PowerShell, la CLI de Azure, Bicep y plantillas de Azure Resource Manager (ARM). Puede usar estos scripts para automatizar tareas comunes, como el aprovisionamiento y el escalado de recursos.

  • Evalúe si necesita usar agentes autohospedados. En función de la configuración de red, es posible que App Services no esté disponible desde la red pública de Internet. En ese caso, los agentes hospedados públicos no funcionarán para las implementaciones. Planee usar agentes autohospedados en estos escenarios.

  • Adopte una estrategia de ramificación que le ayudará a colaborar al mismo tiempo que le proporciona flexibilidad. Mantenga una estrategia sencilla, use el aislamiento de características de corta duración y permita modificaciones en la rama principal mediante solicitudes de incorporación de cambios con análisis de código manual y automatizado.

  • Asegúrese de que la lógica de negocios se comprueba a partir de pruebas unitarias en la canalización de compilación. Use pruebas de integración en la canalización de versión para comprobar que todos los servicios y recursos funcionan juntos después de una nueva versión. Compruebe los elementos de interfaz de usuario más críticos mediante pruebas automatizadas de IU. Compruebe los requisitos de rendimiento no funcionales mediante pruebas de carga con herramientas como k6 y JMeter en el entorno de ensayo.

  • Supervise y mantenga la automatización y la canalización de CI/CD. Este proceso puede implicar la implementación de herramientas de registro y supervisión para realizar el seguimiento del rendimiento y el estado de la canalización. También puede implicar la implementación de un proceso para revisar y actualizar periódicamente la canalización a fin de asegurarse de que sigue siendo eficaz.

La clave para la automatización correcta de la plataforma y la implementación de canalización de CI/CD en App Service consiste en planear y diseñar cuidadosamente la solución, teniendo en cuenta las necesidades y requisitos específicos de las aplicaciones que se van a implementar. Mediante el enfoque adecuado, puede crear una plataforma escalable, segura y eficaz para implementar y administrar las aplicaciones en la nube.

Recomendaciones de diseño

Tenga en cuenta los siguientes procedimientos recomendados al implementar App Service.

  • Use Azure DevOps para la canalización de CI/CD. Azure DevOps proporciona una solución completa para automatizar la compilación, las pruebas y la implementación de las aplicaciones.

  • Use las canalizaciones o las acciones para lo siguiente:

    • Maximice las ventajas de las prácticas aplicadas en todo el equipo.
    • Quite gran parte de la carga de tener que reinventar procesos.
    • Obtenga previsión y conclusiones sobre la calidad y la agilidad generales.
  • Implemente pronto y con frecuencia mediante canalizaciones programadas y basadas en desencadenador. Desencadenar canalizaciones que aseguren que los cambios pasan por una validación adecuada. Las canalizaciones programadas administran el comportamiento en entornos cambiantes.

  • Separe la implementación de la infraestructura de la implementación de aplicaciones. La infraestructura básica cambia con menos frecuencia que las aplicaciones. Trate cada tipo de implementación como un flujo y una canalización independientes.

  • Use la infraestructura como herramientas de código como ARM o plantillas de Bicep para automatizar el aprovisionamiento y la administración de los recursos de Azure. Puede usar plantillas de ARM y Bicep para definir la infraestructura como código, lo que facilita el control de versiones, colaborar y automatizar la implementación de los recursos.

  • Almacene secretos y otros artefactos confidenciales en el almacén de secretos adecuado (por ejemplo, Azure Key Vault o secretos de GitHub). Permita que las acciones y otros elementos de flujo de trabajo los lean según sea necesario.

  • Intente conseguir la simultaneidad de implementación maximizada evitando configuración y valores codificados de forma rígida.

  • Implemente la seguridad de desplazamiento a la izquierda mediante la inclusión de herramientas de análisis de vulnerabilidades y secretos, como los analizadores de contenedores, al principio de la canalización.

  • Configure una estrategia que implemente los principios de implementaciones azul/verde o controladas para minimizar el tiempo de inactividad y reducir el riesgo de errores de implementación. Esto le permite implementar gradualmente nuevas versiones de la aplicación en un pequeño subconjunto de usuarios antes de hacerlo en toda la base de usuarios.

  • Use ranuras de implementación de App Service para implementar una estrategia de implementación azul/verde. Esto le permite validar y probar las implementaciones en un entorno de ensayo antes de implementarlas en producción. Esta estrategia le ayuda a garantizar una implementación fluida y correcta, validar los cambios de la aplicación y minimizar el tiempo de inactividad.

  • Supervise y realice el seguimiento del rendimiento y la disponibilidad de las aplicaciones mediante Application Insights. Application Insights proporciona información en tiempo real sobre el estado y el uso de las aplicaciones. También puede ayudarle a diagnosticar y resolver rápidamente los problemas que surjan.

  • Implemente herramientas y procesos que facilitan la comunicación y la colaboración, como metodologías de desarrollo ágiles y herramientas para realizar el seguimiento y la administración de tareas y dependencias. La automatización correcta de plataformas, DevOps y procesos de CI/CD se basan en una colaboración y comunicación eficaces entre los miembros del equipo.

La clave para la automatización correcta de la plataforma, DevOps y CI/CD con App Service consiste en diseñar e implementar procesos y sistemas escalables, seguros, bien supervisados y colaborativos. Estas recomendaciones pueden ayudar a los ingenieros de TI y de la nube a garantizar que sus aplicaciones y API ofrecen el mejor rendimiento y experiencia del usuario posibles.