Как лучше организовать развёртывание и обновление сайта в Azure?
Вот уже почти год поддерживаю один из сайтов созданного на cms Umbraco, здесь фишка в том что часть контента хранится в БД (тексты, ссылки, другие простейшие данные), а часть хранится в папке самого проекта (это медиа файлы, в моём случае это только pdf-ки и изображения) то есть по сути они включены в проекты.
Сначала я пробовал как белый человек подключаться к сайту как к Azure WebSite или по FTP через Visual Studio. Но VS c решарпером загружаются довольно долго, а потом ещё оооочень долго подключается к Azure. Специфика клиента в том что часто требуется что-то изменить на сайте крайне срочно (например, всю историю сайта у новостей были однострочные заголовки, а клиент добавил трёхстрочный и из за этого теперь в соседней колонке не красивый отступ, а новость нужно опубликовать через 30 минут и клиент начинает паниковать и злиться, в своё оправдание скажу, что сайт был изначально написан не мной). Для внесения быстрых фиксов я использую WebMatrix, это легко и быстро - просто нажал на кнопку в ажуре и теперь открылся весь проект, можно скачать его (делаю редко потому что мной и серверами 11 часовых поясов) а можно сразу на живую в продакшен.
Тут возникает вопрос, как теперь добавить эти изменения допустим в TFS? При попытке подключить WebMatrix к TFS и сделать коммит WebMatrix начал заливать абсолютно всё а хотелось бы только изменения. Но на этом приключения не заканчиваются. Почему то каждый раз когда я открываю сайт в WebMatrix он считает что это другой проект и генерирует для него новое название, папку и так далее. Плюс нужно вести несколько основных веток: production, staging(потому что медиа файлы в проекте а не в базе), development (несколько штук на каждую ветку)
А ещё на разные версии сайта (production и остальные) нужно публиковать разные конфигурационнные файлы (типа robot.txt)
Что я хочу иметь: возможность быстро вносить правки в несколько версий сайта и синхронизировать их в системе контроля версий (я больше люблю TFS, но если другой сервис может мне помочь в моей задачи, буду рад научиться пользоваться чем то ещё)
Может кто-то работает примерно так же или он гуру в системах контроля версий и видит отчётливо что я должен сделать, что бы облегчить себе работу, я очень буду рад услышать мнение таких людей. Так же буду рад услышать и просто мнения по этому поводу, может у кого то есть интересные истории о близких к моей проблеме темы и я смогу подчеркнуть что-то для себя, прошу высказывайтесь и заранее благодарю за помощь.
В Azure есть интеграция с git'ом. Настраивается деплоймент скрипт и при пуше кода в выбранную ветку, он разливается по всем инстансам + можно проделывать какие-то манипуляции из этого скрипта (менять конфиги, запускать обновление composer'a, бил скрипты и т.п.). Подробнее почитать можно тут. azure.microsoft.com/ru-ru/documentation/articles/w...
Всё бы ничего, но этот простой сценарий надо как то разить.
Как я уже сказал, я часто делаю быстрые фиксы в WebMatrix на рабочем деплоймент слоте. То есть сначало надо мои изменения с этого слота получить. Сейчас я просто скачиваю весь проект (это очень долго, пока счкачивается, я иду заниматься своими делами), а при чекине VS уже отбирает изменившиеся файлы
NOTE:
Репозиторий, созданный для вашего веб-приложения, ожидает push-запросы для главной ветви репозитория, который затем будет использоваться в качестве содержимого данного веб-сайта.
То есть видимо только по пушу мастера можно публиковать, а хотелось бы управлять из какой ветки куда публиковать.