Краткая справка:
Мне нужна помощь/информация/ресурсы r.e. создание Team Build, MsBuild, автоматическое развертывание TFS 2010 для моего веб-приложения до Azure (включая все бит БД).
В идеале я хотел бы иметь процесс, который я могу запустить из VS2010 Team Explorer UI "Queue New Build", а затем просто следить за его прогрессом, освобождая меня от работы над чем-то другим. Варианты, чтобы вникать в ведение журнала для любых проблем и знать, что мой процесс является надежным, полным и полностью не-ручным, т.е.
- Резервное копирование всех моих данных Live (SQL Azure и Azure Blobs)
- Развертывает любые изменения схемы БД (содержится в моем проекте БД)
- Развертывает любые изменения данных в моих основных данных (например, данные конфигурации и т.д.), которые я имею в своих сценариях после развертывания.
- Что-то разумное (например, использование сжатия для пакетов развертывания для экономии времени и пропускной способности).
- Покройте мою глупую заднюю сторону (например, плавно откатывайте назад неудачные смены)
- Сохраняет приложение на 100% во время развертывания (неудачно или успешно), например. сеансы остались нетронутыми, минимальные шансы на потерю данных.
- Сохранять подробные журналы процессов на каждом этапе для устранения любых проблем.
- Хранить все, что должно быть хорошо контролируемым источником... источник контролируется
Фон/Мечта/Цель:
На моей последней работе FT у нас была довольно приятная автоматическая настройка развертывания для наших размещенных веб-приложений с использованием CC.Net(для управления процессом), CCTray и веб-интерфейса CC.NET для мониторинга и управления, Code Generation (CodeSmith + Шаблоны NetTiers для доступа к данным и сущностей), MSBuild, VS Databse Projects, несколько сценариев .bat и некоторые удобные утилиты, такие как PsExec и т.д., Чтобы помочь с небольшим количеством бит и частей. Я не настраивал его, но имею некоторый опыт управления им, имея дело с проблемами и т.д.
Это был (98% случаев) прекрасный опыт развертывания. Вы убедитесь, что TFS обновлен, дважды щелкните CCtray, щелкните правой кнопкой мыши по проекту, а затем нажмите "Форсировать сборку", откиньтесь назад и посмотрите "Зеленый" = > Желтый = > Зеленый.
Отлично!
Текущая ситуация:
Я запускаю свой собственный Micro ISV, а мой основной проект - приложение на Azure (в бета-версии). Я бы очень хотел повторить тот опыт развертывания, который у меня был до этого - Я даже рассматриваю возможность перехода из Azure на выделенные серверы - только потому, что знаю Я могу настройте там автоматизированную систему развертывания.
Моя основная точка остановки - бит БД, кажется кошмаром. Может быть, мне не хватает какого-нибудь отличного бесплатного инструмента или библиотеки, которые бы выполнили эту работу, я действительно надеюсь, но я тоже действительно мог бы с кем-то испытать это, чтобы указать мне в правильном направлении для решения "Лучшей практики" для завершения все маленькие кусочки аккуратно.
Я просматривал Google, читал и читал, сжигал часы и часы, но то, что я, кажется, нахожу в atm, - это половинные решения, не совсем подходящие для моего проекта и потребностей, основанные на дорогостоящих инструментах, которые я не могу себе позволить (около $0 бюджета), или прямо над моей головой, и немного непонятно и страшно.
Теперь у меня нет Sys Admin, но с достаточным временем я могу вообще разобраться, что мне нужно делать для такого рода вещей.
Тем не менее, сейчас у меня нет ЛЮБОГО времени, и успех всего моего проекта действительно зависит от того, что я могу вырезать ужасные 40мин + ручные потери, которые я сейчас переношу.
Я хочу получить некоторую обратную связь с пользователем, найти ошибку или улучшить код и уверенно просто отключить развертывание и взломать что-то еще.
Дополнительные проблемы с разработкой для Azure в его текущем состоянии (в отличие от выделенных серверов) и в настоящее время довольно плохая поддержка инструментов от MS (я знаю, что впереди много улучшений, но мне нужно что-то прямо сейчас) - оставил я плаваю в море "Я не знаю" и "Я не уверен" и имеет тенденцию заканчиваться одним большим:
"Я сдаюсь + ручное развертывание почти на час + немного всхлипывание внутри, когда моя мечта о развертывании небеса снова умирает": (
Но я знаю, что люди там более опытные, знающие и опытные, чем я, взломали это для себя. Я просто не могу найти информацию, я уверен, что там.
Итак, если у кого-то есть хорошие ресурсы, советы, ссылки, комментарии или мнения по этому поводу, мне понравится.
Информация о моей настройке:
Запуск и запуск приложения в Azure (который находится в бета-версии - частично из-за отсутствия установки автоматического развертывания), работающего в слоте Production, я не беспокоил промежуточного слота, так как некоторые проблемы с субдоменами/DNS/автоматически созданный Url сделал это выглядеть больно/не выполнимо.
Azure/App:
Приложение
1 Веб-роль
- ASP.NET 4
- MVC 2
- EF 4
- SQL Azure
- Хранилище Azure Blob
1 "Роль рабочего" - это выполнение некоторых запланированных задач и работает с тем же БД и хранилищем Blob
- SQL Azure
- Хранилище Azure Blob
2 роли взаимодействуют с системой очереди Azure (или будут делать в ближайшее время)
Локально:
Datacenter 08 (DC) + Hyper V - VM для TFS 2010 - VM для брандмауэра Linux
Dev Box 1 (Win 7) - VS 2010/VS 08 - SQL 08 R2/05
Dev Laptop 2 - как указано выше.
Я стараюсь работать вместе все время (так что мне никогда не нужно останавливаться ждать чего-либо) с помощью бесплатного инструмента FANTASTIC Synergy, чтобы связать клавиатуру, мышь, буфер обмена вместе.
Некоторые из материалов, которые я прочитал:
Я прочитал то, что нашел, и некоторые из его замечательных вещей, поэтому я также размещаю эти ссылки здесь, чтобы помочь другим, борющимся с этим материалом, но ничто из этого не похоже на трюк, или, может быть, я не получить трюк, может быть, я что-то упустил?
http://deploytoazure.codeplex.com/
Как мне управлять и публиковать базу данных с моим приложением MVC2 на Azure?
Как я могу автоматизировать "генерировать скрипты" ? задачи в SQL Server Management Studio 2008?
http://www.koltovich.com/blog/DeployingAzureProjectFromTFS2010BuildServer.aspx
http://msdn.microsoft.com/en-us/library/ff803365.aspx
http://msdn.microsoft.com/en-us/library/gg432988.aspx
http://www.jimzimmerman.com/blog/2010/03/16/Deploying+An+Azure+Project+Using+TFS+2010.aspx
http://archive.msdn.microsoft.com/azurecmdlets
http://msdn.microsoft.com/en-us/library/gg651132.aspx
http://msdn.microsoft.com/en-us/library/ms178078.aspx
http://blog.syntaxc4.net/post/2011/05/13/Continuous-Integration-in-the-Cloud.aspx
http://www.scarydba.com/2011/04/25/sql-azure-deployments/
Отказ от ответственности/Запрет на нарушение правил форума Blimb:
Как я и говорю, я НЕТ Sys Admin, я НЕТ script маг, и НЕТ CI гуру, я простой мыслящий веб-разработчик, поэтому PLS PLS будет приятным, если его бездумно легко для вас, или если я stoopidly am пропуская точку, я не хочу быть всем "У вас есть коды?" Но Ive в основном потратил 6 месяцев, мечтая, что в один прекрасный день кто-то скоро опубликует хорошую четкую запись в блоге с "Руководством для идиотов", который решает все мои беды, а через час я снова окажусь в разведении, но я все еще жду (или Googling плохо), и его ломает мое маленькое сердце разработчиков: (
P.S. Я обещаю, что если я получу хороший ответ, я сделаю свой бит для фантастического сообщества SO и потрачу не менее 8 часов на вопросы, на которые я мог бы помочь и внести свой вклад.