Pregunta

¿Hay un método preferido de la actualización de un sitio web con gracia? Tengo una nueva base de código listo para ir en un sitio, pero su actualización puede durar varias horas. No quiero que el sitio sea hacia abajo todo el tiempo con una "Actualización, volveremos pronto!" mensaje, pero tampoco puedo dejar el sitio actual para arriba mientras que el nuevo se puso en su lugar.

La única manera que se me ocurre que podría permitir una actualización de gracia es a través del uso de dos servidores, pero esto podría subir de precio.

¿Fue útil?

Solución

Planificación a "gracia actualizar su sitio web" no se inicia cuando esté listo para desplegarse. Se inicia muy temprano en el diseño de su aplicación. Eso significa que usted tiene que construir una aplicación que puede se actualizará con gracia, y también tener la infraestructura necesaria para apoyar esa actualización.

Usted ha dado pocos detalles y está haciendo una pregunta vaga, pero importante de personas al azar en el Internet. Esto me lleva a creer que "la mejora de gracia" era una preocupación de última hora (como hace 23 minutos).

Su pregunta: "¿Hay un método preferido de la actualización de un sitio web con gracia?" sólo puede responderse como, "Sí, pero lo hago de manera diferente a como lo hace."

Otros consejos

Hay una serie de tácticas que puede utilizar - dependiendo del tiempo / recursos que está dispuesto a comprometerse con la actualización.

Podría ser posible, dependiendo de cómo se está realizando la migración, para hacer esto con absolutamente cero el tiempo de inactividad.

La más compleja su aplicación / sitio, más compleja estrategia de la migración puede ser si se quiere sin tiempo de inactividad.

Hemos logrado cero migraciones en tiempo por:

  1. Configuración de servidor nuevo (s) con la nueva versión del sitio y la base de datos.
    • La alteración del equilibrador de carga para dividir el tráfico en dos piscinas de nueva app, y el viejo-app.
    • Configure equilibradores de carga de comenzar a enviar tráfico al servidor (s) nueva aplicación, pero mantener las sesiones existentes en el servidor de la aplicación de edad (s)
    • Nuevas sesiones de verificación nueva aplicación para ver si el cliente los datos se ha migrado, y si no - hace rápidamente que.
    • Progresivamente cerrando servidores abajo "viejo-app" como la carga se cae, la actualización a la nueva aplicación, y añadiendo a la piscina equilibrador de carga nueva aplicación.
    • Como final sesiones, los datos del cliente se migra a la nueva base de datos.
    • Como carga lo permite migrar los datos de clientes inactivos a la nueva base de datos.

Por supuesto, esto es más complejo - ya que necesitábamos para mantener el acceso a los datos del cliente en dos ambientes y migrar progresivamente.

Se nos permiten cambios a pesar de roll-back debe tenerse en cuenta una cierta edición - por ejemplo, la CPU excesiva o uso de memoria en uno de los servidores de aplicaciones nuevas.

Para un sitio más pequeño en el que no tiene el presupuesto para servidores adicionales, puede ser capaz de lograr esto mediante el simple uso de varias direcciones IP, o algún tipo de software de balanceo de carga interna para encaminar peticiones a la edad, o nuevo sitio. Esto puede complicar más las cosas.

Si usted no es capaz de ejecutar la aplicación de edad, y la nueva aplicación de la misma tienda de datos (servicios web back-end, base de datos, etc) - a continuación, sus aplicaciones tendrían que ser conscientes de que necesitarían para sincronizar los datos entre los antiguos / nuevo - por ejemplo, durante guardar / actualización de clientes-datos, la escritura tendría que ocurrir en ambos lugares.

Varias horas es mucho, si hay una gran cantidad de conversión en la base de datos por primera vez puede llevar una copia de la base de datos, terminar de convertir, configurar el nuevo sitio (pero con una base de datos ligeramente edad), mira en lo que han cambiado desde que asumió la copia, convertir eso también (debe ser más rápido que el gran vertedero si usted no tiene una gran cantidad de cambios) y la inserta en la nueva base de datos.

Pero no se olvide de copia de seguridad!

Creo que, de cualquier manera que vaya con este, es absolutamente necesario contar con la plena cooperación de su proveedor de alojamiento web y nombres de dominio.

Un procedimiento aproximada sería:

  1. Alquilar un nuevo servidor con una dirección IP diferente, que será donde implementar el nuevo sitio. O si es posible, crear un subdominio de prueba dentro de su sitio que no es accesible al público.
  2. Despliegue su sitio en el nuevo servidor / subdominio. Realizar todas las pruebas necesarias con su nuevo sitio utilizando la dirección IP o el subdominio en primer lugar.
  3. Cuando esté seguro de que todo está bien, problema vuelve a dirigir primero en su nuevo servidor / subdominio.
  4. Redirigir su DNS a la nueva dirección IP o solucionarlo de una manera tal que usted puede hacer su dominio principal ahora apunte a la ubicación original del subdominio.

Lo ideal sería que nadie se daría cuenta de que su sitio estaba abajo, o si tiene el tiempo de inactividad, que sólo durará unos minutos.

Parece que usted quiere tener su pastel y comérselo.

Si la actualización es un trabajo manual que requiere varias horas, ¿por qué no acelerarlo mediante el procesamiento del trabajo.

Esto es probablemente algo que tenía que ya han "diseñado" a la versión actual.

Puede ser segmentada por lo que algunas partes (por ejemplo). Catálogo están disponibles, pero otros (por ejemplo. Adquisición) se están modernizando?

Puede una versión de sólo lectura se ha creado usando una caché?

O, seguramente hay momentos del día en una interrupción del servicio es aceptable? Trabajar un domingo por la tarde? Incluso los sitios web bastante grandes tienen algunas ventanas de mantenimiento durante el cual piezas de funcionalidad se encuentra no disponible.

Si es sólo la base de datos se está actualizando, acaba de hacer uno nuevo y volver tan pronto como esté lista. Si se habla de la posibilidad de subir el código, subirlo a otro directorio y mv que cuando esté listo. Es no debería ser un problema si usted tiene una configuración similar en su entorno de desarrollo.

También se puede alquilar un servidor muy barato como los de 20 euros / mes (Kemsirve o algo así) y hacer su actualización.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top