Nota
El desplegando puede ser una tarea compleja y diversa que depende de tu configuración y necesidades. Esta sección no trata de explicarlo todo, sino que más bien ofrece la mayoría de los requisitos e ideas comunes para su implementación.
Los pasos típicos tomados para desplegar una aplicación Symfony2 incluyen:
El desplegado también puede incluir otras cosas, tal como:
Hay varias maneras en que puedes desplegar una aplicación Symfony2.
Empezarás con algunas estrategias para desplegar básicas y a partir de ahí continuarás.
La forma más básica para desplegar una aplicación es copiar los archivos manualmente via ftp/scp (o algún otro método similar). Esto tiene sus desventajas, ya que carecen de control sobre el sistema a medida que progresa su actualización. Este método también requiere que tomes algunos pasos manuales después de transferir los archivos (consulta la sección Tareas habituales posteriores al despliegue)
Si estás utilizando control de código fuente (por ejemplo, git o svn), puedes simplificar esto teniendo tu instalación en vivo también como una copia en tu repositorio. Cuando estés listo para actualizarlo es tan simple como ir a buscar a las novedades desde tu sistema de control de código fuente.
Esto facilita la actualización de tus archivos, pero todavía te tienes que preocupar de tomar otras medidas de control manualmente (consulta la sección Tareas habituales posteriores al despliegue).
También hay herramientas de alta calidad para ayudarte a aliviar el dolor de la implantación. Incluso hay unas cuantas herramientas que se han adaptado específicamente a las necesidades de Symfony2, y que tienen un cuidado especial para asegurarse de que todo esté correcto antes, durante y después de un despliegue.
Ve Las herramientas para obtener una lista de las herramientas que te pueden ayudar con el despliegue.
Después de implantar el código fuente real, hay una serie de tareas comunes que tendrás que llevar a cabo:
Este archivo se debe personalizar en cada sistema. Cualquier método que utilices para desplegar tu código fuente no debe trasladar este archivo. En su lugar, los debes configurar manualmente (o mediante algún proceso de construcción) en tu servidor.
Tus proveedores se pueden actualizar antes de transferir el código fuente (es decir, actualiza el directorio vendor/, y luego transfierelo, con tu código fuente), o actualízalo en el servidor después de transferir tu código fuente. En cualquier caso, basta con actualizar tus proveedores como lo haces normalmente:
$ php composer.phar install --optimize-autoloader
Truco
La bandera --optimize-autoloader hace que Composer lleve a cabo una optimización de la carga automática construyendo un «mapa de clases».
Asegúrate de limpiar (y preparar) la caché de Symfony:
$ php app/console cache:clear --env=prod --no-debug
Si estás utilizando Assetic, también querrás volcar tus activos:
$ php app/console assetic:dump --env=prod --no-debug
Es posible que haya un montón de otras cosas que necesites hacer, dependiendo de tu configuración:
Si bien esta sección corresponde a los detalles técnicos del despliegue, el ciclo de vida completo a partir de tomar el código fuente de desarrollo y trasladarlo a producción puede tener mucho más pasos (creo que desde el despliegue hasta la puesta en escena, control de calidad, ejecución de pruebas, etc.).
Utilizar la puesta en escena, pruebas, control de calidad, integración continua, migraciones de bases de datos y la capacidad para poder retroceder en caso de fallo, todas son muy recomendables. Hay herramientas simples y complejas y puedes hacer tan fácil (o compleja) la instalación como tu entorno requiera.
No olvides que el despliegue de tu aplicación también implica la actualización de cualquier dependencia (normalmente a través de Composer), la migración de tu base de datos, vaciar la caché y otras cosas posibles como empujar tus activos a un CDN (ve Tareas habituales posteriores al despliegue).
Esta herramienta ofrece un conjunto especializado de herramientas en la parte superior de Capistrano, específicamente a la medida de proyectos Symfony y Symfony2.
Esta herramienta te ayuda a construir un paquete nativo de Debian para tu proyecto Symfony2.
Esta herramienta de despliegue tipo Capistrano está construida en PHP, y puede ser facilitar a los desarrolladores de PHP su extensión para cubrir sus necesidades.
Paquetes:
Hay muchos paquetes que añaden características de despliegue directamente en tu consola Symfony2.
Programación básica:
Puedes, por supuesto, usar el intérprete de ordenes, Ant, o cualquier otra herramienta para programar el despliegue de tu proyecto.
El ambiente como proveedor de servicios:
PaaS es una forma relativamente nueva para desplegar tu aplicación. Normalmente, un PaaS utilizará un único archivo de configuración en el directorio raíz de tu proyecto para determinar la forma de construir un ambiente al vuelo que apoye a tu software. Un proveedor con el apoyo confirmado para Symfony2 es PagodaBox.
Truco
¿Buscando más? Habla con la comunidad en el canal IRC de Symfony #symfony (en freenode) para más información.