jueves, 9 de noviembre de 2017

Continuous Delivery con Travis CI, Github, App Engine



Las pruebas son un aspecto importante de la creación de software de alta calidad. Para garantizar que ejecuten pruebas unitarias contra cada compilación de un proyecto, muchas organizaciones de ingeniería han adoptado la práctica de integración continua (IC), que implica el uso de herramientas como Jenkins o Travis CI.

La entrega continua (CD) va un paso más allá al garantizar que cada compilación también se pueda implementar en un entorno similar a la producción y luego pasar las pruebas de integración en ese entorno. Es fácil ejecutar pruebas de integración mediante el uso de un servicio de CI en Google Cloud Platform para implementar su aplicación como parte del proceso de compilación.

Aunque  Travis CI, la mayoría de las ideas se aplican a otras herramientas de CI, como Jenkins. Si bien a Travis le falta algo de la flexibilidad y la capacidad de configuración de Jenkins, es fácil comenzar, se integra muy bien con Github, ejecuta las pruebas de forma aislada y, lo mejor de todo, no necesita administrar su propia infraestructura.

Una aplicación de Python que se ejecuta en Google App Engine con Python Flask e interactúa con la API de Google Books. La aplicación muestra cómo Travis puede implementar y ejecutar pruebas de extremo a extremo en un entorno intermedio, como parte del proceso de prueba, desencadenado por un comando git push. El siguiente diagrama muestra el proceso a groso modo:



Travis CI ejecuta pruebas locales entre GitHub y la implementación de Cloud Platform

Después de recorrer el ejemplo de App Engine. El repositorio de GitHub que contiene la muestra también tiene una rama de máquinas virtuales administradas que demuestra la implementación de la misma aplicación mediante el uso de un entorno flexible.

Travis CI tiene soporte integrado para implementar entornos estándar o flexibles de App Engine mediante el uso de proveedores de implementación. Cuando utiliza estos proveedores, algunos de los pasos básicos de configuración siguen siendo los mismos, pero el archivo de configuración es más simple. Descarga el Google Cloud SDK, que también se puede usar para fines distintos de la implementación, como ejecutar emuladores locales para las pruebas de su unidad. Para obtener más información, vea Usar proveedores de implementación de Travis CI, más adelante en este artículo.