¿Cuál es una buena manera de actualizar un sitio web grande?

Cuando he estado trabajando en sitios grandes, hemos estado usando varios servidores en todo momento. Generalmente:

  • Servidor de desarrollo: el servidor de desarrollo solo lo ven los desarrolladores y ningún otro probador lo utiliza. Esto es básicamente un experimento de sandbox donde los desarrolladores pueden probar cosas, sin arriesgarse a romper nada.
  • Servidor de población de contenido : este es un servidor que tiene un back-end, donde el contenido es ‘sagrado’. Nadie puede eliminar nada de una base de datos aquí, y no se usa para pruebas de carga. Aquí es donde el equipo de contenido carga
  • Servidor de prueba : este es un servidor donde los evaluadores pueden ejecutar sus scripts de prueba. Suele ser el servidor provisional, pero se copia en un entorno diferente, donde las personas pueden ejecutar pruebas destructivas y pruebas de carga sin arriesgar nada más.
  • Servidor provisional : este es el contenido en vivo (por lo tanto, las cosas tomadas del servidor en vivo, más todo del servidor de población de contenido), que ejecuta la versión más reciente del código. Aquí es donde realiza la última comprobación de cordura, antes de que el contenido y el código se implementen en …
  • Servidores de producción . Estos son los servidores orientados al cliente, o los servidores “en vivo”, si lo desea.

Por supuesto, es posible combinar varios de estos en un solo entorno; es posible hacer la población de contenido en los servidores de producción o almacenamiento provisional, por ejemplo.

Creo que la pregunta depende en gran medida de cuál es su organización. Si eres Google o Facebook, tendrás un océano de diferentes entornos amurallados para pruebas y desarrollo; y contará con herramientas para poder implementar alguna funcionalidad a algunos de sus clientes, gradualmente.

Habiendo dicho todo eso; Si tiene que hacer la pregunta sobre cómo implementar los cambios en un sitio “grande”, le aconsejaría con urgencia que involucre a algunas personas calificadas; muchas cosas pueden salir mal, y volver a las copias de seguridad es mucho menos divertido de lo que parece …

Además de implementar varios servidores como lo ilustra Haje Jan Kamps, puede considerar un buen sistema de versiones como GIT o SVN: que le brinda más flexibilidad para desarrollar la nueva versión del sitio web. Por ejemplo, puede dividir el desarrollo en ramas para probar diferentes características o volver a un estado anterior si considera que su última versión no funciona correctamente.

Estoy totalmente de acuerdo con las respuestas anteriores. También hay servicios que le permiten vincular su SVN / GIT con su FTP para actualizar automáticamente sus diversos servidores. Recientemente he usado Springloops y descubrí que es bastante simple. Aún necesitará usar un cliente SVN / GIT.