¿Cuál es la forma recomendada de actualizar una aplicación web en vivo?

Utilice un script de implementación transaccional como la Herramienta de implementación para PHP o el Capistrano de Rubys.
Cada actualización consta de múltiples pasos:

  • Clonación del nuevo código desde un servidor git (o cualquier otro método para obtener el nuevo código).
  • Compile / Construya el nuevo código (Ejecutar instalación de compositor, instalación de npm, migraciones de bases de datos de construcción de gruñidos, etc.), comandos únicos (como un comando que lee a los usuarios nombre y apellido y los fusiona, pero necesita que se ejecuten solo para esta actualización )
  • Si es posible, cree una copia de seguridad de la base de datos a partir de la versión de trabajo actual y envíela a otro servidor de copia de seguridad
  • Haga que su servidor funcione transaccionalmente con el nuevo código en lugar del antiguo.
  • Si algo sale mal, necesita un script de reversión transaccional y rápido que reemplace la base de datos y el código con la versión anterior.

Un script de implementación hace todo eso por usted. En Jobinja.ir usamos deployer.org como nuestro script de implementación, que puede ver:

deploy.php

Mostrar una pantalla de mantenimiento probablemente ya sea más sofisticado que el procedimiento de actualización de la mayoría de los sitios.

Es posible que desee intentar equilibrar la carga de su sitio, eso significa que tiene dos instancias idénticas ejecutándose. En caso de una actualización, dígale al equilibrador de carga que solo reenvíe el tráfico a una instancia y actualice la instancia “fuera de línea”.
Cuando finalice la actualización, cambie el equilibrador de carga a la otra instancia y vuelva a actualizar la instancia a la que no se puede acceder públicamente.

Una vez que haya terminado, revierta la configuración del equilibrador de carga para distribuir la carga en ambas instancias. De esta manera, su sitio web está en línea incluso durante las actualizaciones y sus visitantes ni siquiera lo reconocerán.

More Interesting

¿Cuáles son los inconvenientes de usar las API RESTful?

¿Qué herramientas son las mejores para crear animaciones web?

Experiencia del usuario: ¿Cómo se puede mejorar una aplicación web para el presupuesto participativo ciudadano para PCMC?

Si desea crear una aplicación web pero no desea apoyar a un equipo de desarrollo, ¿pueden las opciones de código bajo ser lo suficientemente robustas como para admitir la aplicación?

En WorkFlowy, ¿cómo puedo vincularme a un correo electrónico entrante?

¿Existe un asistente personal de código abierto para la web, como la extensión Speak to It Chrome que se puede personalizar?

¿Cuál es la diferencia entre la aplicación basada en web y la aplicación basada en ventana?

¿Qué marco PHP debería o puedo usar para crear una aplicación web de sistema de control de inventario y verificación de equipos?

¿Qué hace para que su software o aplicación web tenga la menor cantidad de errores posible y sea confiable y estable?

¿Cuál es el propósito de arañar una aplicación web en Burp Suite?

Como desarrollador, estoy abrumado por la cantidad de aplicaciones que mi empresa espera que cree y mantenga, ¿cuántas aplicaciones espera la mayoría de las empresas que sus empleados mantengan simultáneamente?

¿Cuál es la mejor metodología SDLC para la aplicación web?

¿Qué herramienta de prueba de rendimiento es mejor para pruebas de aplicaciones basadas en web, LoadRunner o JMeter?

Cómo hacer que una aplicación web escalable sea un principiante

¿Qué certificación es mejor para un desarrollador web intermedio, CIW Web Development Professional o MCSD Web Applications?