Как синхронизировать скомпилированный код с несколькими экземплярами EC2 - PullRequest
6 голосов
/ 16 марта 2011

У нас есть несколько экземпляров EC2 за балансировщиком нагрузки. На каждом сервере развернуто несколько приложений ASP.NET. Я ищу простой, автоматизированный способ в реальном времени развернуть новый скомпилированный код на всех экземплярах одновременно.

Я видел решения, использующие репозитории управления исходным кодом, такие как SVN или Git, но это не похоже на правильное использование технологии для нас, поскольку мы внедряем скомпилированный код в экземпляры EC2, а не в исходный код.

Я также настроил Dropbox для выполнения синхронизации. Это несколько работает, но имеет свои причуды. Например, вам нужно построить структуру каталогов на основе ограничения «одна корневая папка синхронизации». Любая другая причина, почему мы определенно НЕ должны использовать Dropbox для этого?

Написание собственного приложения с использованием S3 API - вариант, но мы бы предпочли стороннее решение, а не написание большего количества кода.

Это похоже на обычный сценарий, но я пока не нашел хороших решений.

Ответы [ 6 ]

4 голосов
/ 15 июля 2012

Elastic Beanstalk , кажется, лучший маршрут, чтобы пойти сейчас. Вы просто помещаете свой веб-проект развертывания в среду гибких beanstalk, и он развертывает код для всех ваших экземпляров. (Он управляет автоматическим масштабированием для вас.) Он также гарантирует, что в новых запущенных экземплярах будет последний код, а также предыдущие версии, к которым можно легко вернуться.

Если ваш веб-сайт asp.net необходимо автоматически масштабировать в AWS, Elastic Beanstalk - действительно лучшее комплексное решение.

1 голос
/ 14 сентября 2011

Возможно, вы захотите попробовать AppHarbor .Мы позаботимся об управлении серверами приложений ASP.NET, балансировщиками нагрузки и всей остальной необходимой инфраструктурой, чтобы вы могли приступить к разработке приложения.Мы также предоставляем удобный способ загрузки новых версий вашего приложения с использованием Git, Mercurial, Subversion и TFS.

1 голос
/ 16 марта 2011

Вы можете использовать Git, Mercurial или SVN для отправки скомпилированного кода на серверы или для получения сервером кода. Контроль исходного кода не только для исходного кода - он может использоваться для файлов любого типа.

Кроме того, одним из способов решения проблемы Dropbox является использование нескольких учетных записей DropBox, если в этом проблема. Но Dropbox - довольно простое решение, потому что тогда вам не нужно писать код. Пока Dropbox работает, он будет работать.

1 голос
/ 16 марта 2011

Поскольку это приложения ASP.Net и IIS, почему бы не использовать веб-развертывание. СДЕЛАНО для этого.

http://www.iis.net/download/webdeploy

Web Deploy позволяет эффективно синхронизировать сайты, приложения или серверы в ферме серверов IIS 7.0, обнаруживая различия между исходным и целевым содержимым и передавая только те изменения, которые требуют синхронизации. Инструмент упрощает процесс синхронизации, автоматически определяя конфигурацию, контент и сертификаты, которые нужно синхронизировать для конкретного сайта. В дополнение к поведению по умолчанию у вас все еще есть возможность указать дополнительных поставщиков для синхронизации, включая базы данных, COM-объекты, сборки GAC и параметры реестра.

0 голосов
/ 16 марта 2011

Кажется очевидным, но разделяемая файловая система? Или вытолкнуть с помощью scp или rsync?

0 голосов
/ 16 марта 2011

Git или Mercurial хорошо с этим справятся, Subversion плохо работает с BLOB-объектами.

И вы получаете очень хороший контроль и гарантию того, что код был развернут повсюду, глядя на ревизии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...