Я пытаюсь настроить механизм для простого переноса изменений с нашего (локального) сервера разработки / тестирования на несколько конечных точек в облаке.Приложение представляет собой веб-приложение ASP.NET, управление версиями которого осуществляется с помощью Mercurial.
Существуют некоторые проблемы, которые вызвали это:
- Скорость соединения между нашей локальной сетью и экземплярами EC2очень медленный, едва пригодный для использования
- Само приложение довольно большое, ~ 0,6 гигабайта
Система, которую я представляю, будет способна к следующему:
- Простое автоматическое управление (нам просто нужно указать команду 'update')
- Fast
- Будет ли обновлять только необходимые изменения
- Будет обратимым (то есть мы можем откатить обновления, если это необходимо)
- Будет способен отправлять обновления с любого сервера, а не только с сервера dev (не так важно, как другие пункты)
Итак, в основномЯ представлял себе комбинацию клиент / сервер, которая бы сидела на каждом сервере и ждала команды обновления. Кажется, что проблему со скоростью можно решить с помощью Amazon S3. По какой-то причине загрузка на S3, а затем загрузка из облака происходит на намного быстрее, чем загрузка непосредственно в облако.В идеале мы использовали бы их API в приложении.
Вопрос в том, есть ли инструменты, которые уже делают то, что я пытаюсь выполнить?И если нет, то как лучше всего передать команду «update» другим серверам?