Integración continua y entrega continua (creación de aplicaciones en la nube reales con Azure)

por Rick Anderson y Tom Dykstra

Descargar proyecto Fix It o Descargar libro electrónico

El libro electrónico Creación de aplicaciones reales en la nube con Azure se basa en una presentación desarrollada por Scott Guthrie. Explica 13 patrones y procedimientos que pueden ayudarle a tener éxito en el desarrollo de aplicaciones web para la nube. Para obtener información sobre el libro electrónico, consulte el primer capítulo.

Los dos primeros patrones de proceso de desarrollo recomendados eran Automatizar todas las acciones y Control de código fuente, y el tercer patrón de proceso los combina. La integración continua (CI) significa que cada vez que un desarrollador comprueba el código en el repositorio de origen, se desencadena automáticamente una compilación. La entrega continua (CD) lleva este paso más allá: después de que se hagan correctamente una compilación y las pruebas unitarias automatizadas, implementará automáticamente la aplicación en un entorno en el que puede realizar pruebas más detalladas.

La nube le permite minimizar el costo de mantener un entorno de prueba, porque solo paga por los recursos del entorno siempre que los use. El proceso de CD puede configurar el entorno de prueba cuando lo necesite y puede quitar el entorno cuando haya terminado de realizar pruebas.

Flujo de trabajo de integración continua y entrega continua

Por lo general, se recomienda realizar la entrega continua en los entornos de desarrollo y ensayo. La mayoría de los equipos, incluso en Microsoft, requieren un proceso de revisión y aprobación manual para la implementación de producción. Para una implementación de producción, es posible que quiera asegurarse de que se produce cuando hay personas clave en el equipo de desarrollo disponibles para soporte técnico o durante períodos de tráfico bajo. Pero no hay nada que le impida automatizar completamente sus entornos de desarrollo y pruebas, de modo que lo único que tenga que hacer un desarrollador sea registrar un cambio y el entorno esté preparado para las pruebas de aceptación.

En el diagrama siguiente de un libro electrónico de Microsoft Patterns and Practices sobre la entrega continua se muestra un flujo de trabajo típico. Haga clic en la imagen para verla a tamaño completo en su contexto original.

Continuous delivery workflow

Cómo la nube permite CI y CD rentables

La automatización de estos procesos en Azure es fácil. Dado que lo está ejecutando todo en la nube, no tiene que comprar ni administrar servidores para las compilaciones o los entornos de prueba. Y no tiene que esperar a que un servidor esté disponible para realizar las pruebas. Con cada compilación que haga, podría poner en marcha un entorno de prueba en Azure mediante el script de automatización, ejecutar pruebas de aceptación o pruebas más detalladas en él y, después, cuando haya terminado de anularla. Y si solo ejecuta ese servidor durante 2 horas o 8 horas o un día, la cantidad de dinero que tiene que pagar es mínima, ya que solo paga por el tiempo en que se está ejecutando realmente una máquina. Por ejemplo, el entorno necesario para la aplicación Fix it cuesta básicamente alrededor de 1 céntimo por hora si sube un nivel desde el nivel gratuito. En el transcurso de un mes, si solo ejecutó el entorno una hora a la vez, el entorno de pruebas probablemente costaría menos de un café de Starbucks.

Azure DevOps Services

Azure DevOps Services proporciona una serie de características para ayudarle con el desarrollo de aplicaciones desde la planeación hasta la implementación.

  • Admite el control de código fuente Git (distribuido) y TFVC (centralizado).
  • Ofrece un servicio de compilación elástica, lo que significa que crea dinámicamente servidores de compilación cuando son necesarios y los quita cuando se han terminado. Puede iniciar automáticamente una compilación cuando alguien comprueba los cambios en el código fuente y no tiene que asignar y pagar por sus propios servidores de compilación que están inactivos la mayor parte del tiempo. El servicio de compilación es gratuito siempre que no supere un número determinado de compilaciones. Si espera realizar un gran volumen de compilaciones, puede pagar un poco más por servidores compilación reservados.
  • Admite la entrega continua a Azure.
  • Admite pruebas de carga automatizadas. Las pruebas de carga son críticas para una aplicación en la nube, pero a menudo se descuidan hasta que es demasiado tarde. Las pruebas de carga simulan un uso intensivo de una aplicación por miles de usuarios, lo que le permite encontrar cuellos de botella y mejorar el rendimiento, antes de liberar la aplicación a producción.
  • Admite la colaboración en salas de equipos, lo que facilita la comunicación y colaboración en tiempo real para equipos de Agile pequeños.
  • Admite la administración de proyectos de Agile.

Para obtener más información sobre las características de integración y entrega continuas de Azure DevOps Services, consulte la documentación de Azure DevOps.

Si busca una solución de administración de proyectos clave, colaboración en equipo y control de código fuente, consulte Azure DevOps Services. Regístrese en Azure DevOps Services.

Resumen

Los tres primeros patrones de desarrollo en la nube han tratado sobre cómo implementar un proceso de desarrollo repetible, confiable y predecible con un tiempo de ciclo bajo. En el siguiente capítulo empezaremos a examinar los patrones arquitectónicos y de codificación.

Recursos

Para obtener más información, consulte Implementación de una aplicación web en Azure App Service.

Consulte también los siguientes recursos: