Entrega Continua

Integración Continua & Entregado continuo CodeShip (Python Fabric)

Integración Continua y Entregado continuo son términos que en estos últimos anos han estado tomando bastante auge, los principios han existido desde siempre en esta área de la tecnología pero ultimamente son tendencia en el área del desarrollo de Software.

Estos términos toman este auge con la tendencia y la gran cantidad que nuevas aplicaciones que necesitan que sus cambios lleguen mas rápido a sus usuarios, cosa de que una funcionalidad sea contemplada en el día 1, en el día 2 se desarrolle y se pruebe y en el día 3 este puesta en producción para el disfrute de los usuarios.

Para alcanzar este objetivo de que nuestros clientes obtengan las nuevas actualizaciones rapidas y probadas, tenemos lo que son Los CI Server que puede server contratados en la nube, bueno este tutorial sera con CodeShip ya que es de los pocos por no decir el unico que ofrece un excelente plan Gratis y aparte cubre todos los puntos necesarios para ser un buen CI Server.

Si quieren abundar mas sobre estos 2 conceptos pueden buscar en internet que hay bastante materia de los mismo. Integracion Continua Y Entrega Continua

 

Nuestro Flujo de Trabajo seria el siguiente:

Page1 - Continuous Delivery

Desarrollo

  • Desarrollamos una nueva funcionalidad
  • Hacemos commit y push a nuestro servidor de control de versiones (Github & Bitbuket)

Prueba

  • El servidores de control de versiones (Gtihub & Bitbucket) lanzaran una notificacion a codeship
  • Codeship comenzara el proceso de prueba

Despliegue

  • Una vez el proceso de pruebas finalice Iniciara el proceso de despliegue, aqui es donde Fabric entra en accion.

Buenos Ahora a detallar este proceso

Tenemos que incresar a la web oficial de codeship y crear una cuenta

Una vez dentro, procedemos a crear un proyecto extraido desde nuestras cuentas de github o bitbuket

Codeship_–_Hosted_continuous_integration_and_deployment__Built_for_the_cloud_

Ya seleccionado nuestro proyecto tenemos que configurar como vamos a querer que se realicen las pruebas

Codeship_–_Hosted_continuous_integration_and_deployment__Built_for_the_cloud_

Codeship provee unos comando pre seleccionados dependiendo del tipo de tecnologia que tenemos, todo esto es realizado para las pruebas.

Antes de configurar nuestro ‘deployment’ necesitamos que el usuario que realizara el despliegue en nuestor servidor (fabric) se pueda conectar sin la necesidad de introducir una clave

  • Para lograr necesitamos la public key que usara codeship para ejecutar nuestro fabric script
  • Esta public key se enecuentra en ‘project setting’ -> ‘general setting’ -> ‘SSH public key’
    Codeship_–_Hosted_continuous_integration_and_deployment__Built_for_the_cloud__🔊
  • Tomamos esa llave publica y la agregamos en nuestro servidor de remoto (Servidor de produccion) al usuarios que usara fabric agregarle esa public key.
  • Para mas informacion aqui (Login SSH sin clave)

Si estas usando una instancia de Amazon Web Service (EC2) igual te funcionara

Hay que configurar tambien como sera que nuestro proyecto se desplegara en produccion esto se logra dirigiendonos a ‘settings’ -> ‘deployments’

Luego tenemos que seleccionar ‘custom script’ que sera nos servira para llamar nuestras tareas en el fabfile de fabric.

codeship Django

Cuando el proceso de despliegue se realiza ya nos encontramos en el folder de nuestro proyecto, por lo que es bueno tener nuestro fabfile en el mismo proyecto versionado, cosa que bastara con ejecutar fab deploy para desplegar nuestro proyecto en un servidor remoto.

Si configuraron todo bien cada push les resultara en una actualizacion de su aplicacion.

codeship Django

Referencias

Fabric
Fabric Tutorial