Implementar contenido en varios servidores (EC2)

He estado trabajando en una aplicación web PHP basada en la nube (AWS EC2), y estoy luchando con un problema cuando se trata de trabajar con varios servidores (todo bajo un balanceador de carga elástica AWS). En un servidor, cuando subo los últimos archivos, están en producción al instante en toda la aplicación. Pero esto no es cierto cuando se usan varios servidores: debe cargar archivos en cada uno de ellos cada vez que realiza un cambio. Esto podría funcionar bien si no actualiza nada muy a menudo o si solo tiene uno o dos servidores. ¿Pero qué pasa si actualiza el sistema varias veces en una semana, en diez servidores?

Lo que estoy buscando es una forma de "confirmar" los cambios desde nuestro servidor de desarrollo o prueba y hacer que se "envíe" a todos nuestros servidores de producción de inmediato. Idealmente, la actualización se aplicaría a un solo servidor a la vez (aunque solo tome un segundo o dos por servidor) para que el ELB no le envíe tráfico mientras los archivos cambian para no interrumpir el tráfico de producción que pueda estar fluyendo hacia el ELB. Cual es la mejor manera de hacer esto? Uno de mis pensamientos sería usar SVN en el servidor de desarrollo, pero eso realmente no "empuja" a los servidores. Estoy buscando un proceso que demore solo unos segundos en confirmar una actualización y luego comenzar a aplicarla a los servidores. Además, para aquellos de ustedes que están familiarizados con AWS, ¿cuál es la mejor manera de actualizar un AMI con las últimas actualizaciones para que el escalador automático siempre inicie nuevas instancias con la última versión del software?

Tiene que haber buenas maneras de hacer esto ... realmente no puedo imaginar sitios como Facebook, Google, Apple, Amazon, Twitter, etc., revisando y actualizando cientos o miles de servidores manualmente y uno por uno cuando hacen un cambio .

Gracias de antemano por tu ayuda. Espero que podamos encontrar alguna solución a este problema ... lo que tiene que ser al menos 100 búsquedas en Google tanto por mí como por mi socio comercial durante el último día no han tenido éxito en su mayor parte para resolver este problema.

Alex

Respuestas a la pregunta(2)

Su respuesta a la pregunta