Pregunta

¿Cuáles son sus ajustes, sus trucos, y sobre todo, su flujo de trabajo?

Estas herramientas son grandes, pero todavía no hay mejores prácticas ligadas a su uso, por lo que no saben lo que es la forma más eficiente de utilizar.

  • ¿Utiliza pip paquetes o siempre ¿descargar?
  • ¿Establece Apache / Cherokee / MySQL con la mano o haces usted tiene un guión para que?
  • ¿Usted pone todo en virtualenv y utilizar --no-site-packages?
  • ¿Utiliza un virtualenv para varios proyectos?
  • ¿Qué utilizas Tela para (que parte de su implementación que hacer la escritura)?
  • ¿Usted pone las secuencias de comandos de la tela en el cliente o el servidor?
  • ¿Cómo se maneja la base de datos y archivo de medios migración?
  • ¿Alguna vez se necesita una herramienta de construcción tales como SCons ?
  • ¿Cuáles son los pasos de la implementación? ¿Con qué frecuencia se realiza cada uno de ellos?
  • etc.
¿Fue útil?

Solución

"mejores prácticas" son muy dependientes del contexto, por lo que no voy a reclamar mis prácticas son las mejores, sólo que ellos trabajan para mí. Yo trabajo en los sitios en su mayoría pequeños, por lo que no hay implementaciones de varios servidores, etc. CDN que necesito para apoyar Webfaction alojamiento compartido de implementación, ya que algunos clientes necesitan la más barata de alojamiento que puedan encontrar. Yo a menudo tienen que desplegar sitios múltiples veces en diferentes ambientes, se despliega un guión de modo repetibles son críticos.

Despliegue

En el momento en que un despliegue fresca se divide en los siguientes pasos:

  • fab staging bootstrap (configuración del servidor y desplegar código inicial)
  • fab staging enable (habilitar la configuración de Apache / nginx para este sitio)
  • fab staging reload_server (recargar Apache / config nginx).

Los puede por supuesto combinarse en una sola fab staging bootstrap enable reload_server línea de comandos.

Una vez que estos pasos se realizan, la actualización de la instalación con el nuevo código es simplemente fab staging deploy.

Si tengo que retrotraer una actualización, fab staging rollback. Nada particularmente mágico en la reversión; sólo se deshace el código a este último desplegado versión y migra la base de datos al estado anterior (esto requiere la grabación de algunos metadatos sobre el estado de la migración del puesto de implementar DB, acabo de hacer que en un archivo de texto).

Ejemplos

No he utilizado los scripts de tela que se describen en esta respuesta durante unos años, por lo que no se mantengan en todo y me exima de responsabilidad por su calidad :-) pero se puede ver que la dirección https://bitbucket.org/carljm/django-project-template - en fabfile.py en la raíz de recompra, y en el subdirectorio deploy/.

Otros consejos

Yo uso la tela para crear e implementar mi código y asumir un sistema ya establecido para ello. Creo que una herramienta como títere es más apropiado para automatizar la instalación de cosas como Apache y MySQL, aunque todavía tienen que incluir realmente en mi flujo de trabajo.

Además, por lo general tienen un virtualenv diferentes por proyecto. Se crean a partir de una 'base' de instalar Python donde - como Carl señaló -. Puede dejar algunas bibliotecas mundial pitón

Así que en términos de flujo de trabajo que sería la siguiente:

  1. títere para instalar los servicios requeridos (servidor web, base de datos, servidor de SSH, ...)
  2. marioneta para configurar los usuarios necesarios y las carpetas de base
  3. tela para crear virtualenv para la aplicación
  4. Tejido a PIP instalar desde requirements.txt
  5. Tejido para desplegar su aplicación
  6. Tejido para implementar archivos de configuración (servidor web, ...)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top