Развертывание контента на нескольких серверах (EC2)

Я работал над облачным (AWS EC2) веб-приложением PHP, и я борюсь с одной проблемой, когда дело доходит до работы с несколькими серверами (все под AWS Elastic Load Balancer) . На одном сервере, когда я загружаю самые свежие файлы, они мгновенно становятся рабочими для всего приложения. Но это неверно при использовании нескольких серверов - вам нужно загружать файлы на каждый из них каждый раз, когда вы фиксируете изменение. Это может сработать, если вы ничего не обновляете очень часто или если у вас всего один или два сервера.Но что, если вы обновите систему несколько раз в неделю на десяти серверах?

Я ищу способ «зафиксировать» изменения с нашего сервера разработки или тестирования и «протолкнуть» их на все наши производственные серверы немедленно. В идеале обновление будет применяться только к одному серверу за раз (даже если это занимает всего секунду или две на сервер), поэтому ELB не будет отправлять на него трафик во время изменения файлов, чтобы не нарушать производственный трафик, который может поступать на ELB. Что лучше способ сделать это? Одна из моих мыслей - использовать SVN на сервере разработки, но на самом деле это не «толкает» серверы. Я ищу процесс, который займет всего несколько секунд, чтобы зафиксировать обновление и затем начать применять его к серверам. Кроме того, для тех из вас, кто знаком с AWS, как лучше всего обновить AMI с помощью последних обновлений, чтобы средство автоматического масштабирования всегда запускало новые экземпляры с последней версией программного обеспечения?

Должны быть хорошие способы сделать это это ... не может реально представить сайты, такие как Facebook, Google, Apple, Amazon, Twitter и т. д., которые обновляют сотни или тысячи серверов вручную и один за другим, когда они вносят изменения.

Заранее благодарим за помощь. Я надеюсь, что мы сможем найти какое-то решение этой проблемы ... Как минимум 100 поисковых запросов в Google, выполненных мной и моим деловым партнером за последний день, по большей части оказались безуспешными в решении этой проблемы.

Алекс

6
задан jalexsmith 9 October 2011 в 03:07
поделиться