Una breve introducción a Capistrano
Capistrano es una utilidad desarrollada por Jamis Buck, específicamente diseñada para Ruby on Rails (aunque se ha visto que es lo bastante genérica para utilizarla incluso con PHP), cuya finalidad es facilitarnos al máximo el poner en producción (también conocido como deployar) nuestro código.
Para ello Capistrano se apoya en recetas, roles y usuarios. Así dicho rápido y mal:
- los roles se asignan a las máquinas. Por ejemplo: servidor web, de aplicaciones, de base de datos o de lo que queramos. Nosotros establecemos los roles
- cada una de las recetas se puede ejecutar para un rol, varios, o todos
- los usuarios son los que ejecutan las recetas en las máquinas. Pueden ser usuarios UNIX en dichas máquinas
Además, se basa en una estructura de carpetas muy intuitiva:
- una carpeta
releasescon las distintas versiones de nuestro código - un enlace simbólico
currenta la última release que esté funcionando
Este sistema es muy flexible: si queremos volver a la versión anterior, eliminamos el enlace simbólico y hacemos que apunte a la release anterior.
Y una puesta en producción supone la ejecución de una serie de comandos en paralelo en todas nuestras máquinas. Así pues, un ejemplo de lo más típico sería:
- export de Subversion con la última versión del código y guardarlo en una carpeta dentro de la subcarpeta
releasescon la fecha y hora del momento - paso opcional: ejecutar la batería de pruebas
- si todo ha funcionado bien en todas las máquinas se crea un enlace simbólico
currenta la última release que hemos subido - y se reinician los
FastCGI
Ya digo, que esto es una introducción muy genérica, más que nada para entender el concepto.
Y si os ha interesado y queréis seguir investigando podéis echarle un vistazo a este pequeño tutorial: About "Capistrano: Automating Application Deployment".
