Nutshell:
Мне нужна помощь / информация / ресурсы по настройке автоматического развертывания Team Build, MsBuild, TFS 2010 для моего веб-приложения в Azure (включая все биты БД).
В идеале я бы хотел, чтобы у меня был процесс, который я мог бы запустить из пользовательского интерфейса Team Explorer VS2010 «Очередь в новой сборке», а затем просто следить за его ходом, освобождая меня для работы.на что-то еще.Варианты, чтобы вникать в журнал для любых проблем, и знать, что мой процесс является надежным, полным и полностью не ручным, то есть:
- Резервное копирование всех моих живых данных (SQL Azure и BLOB-объекты Azure)
- Развертывание любых изменений схемы БД (содержится в моем проекте БД)
- Развертывание любых изменений данных в моих основных данных (например, данных конфигурации и т. Д., Которые есть в моих сценариях после развертывания)
- Действует разумно (например, использует сжатие для пакетов развертывания, чтобы сэкономить время и пропускную способность)
- Прикрыть мою глупую обратную сторону (например, плавно откатить неудачные изменения)
- Обеспечивает 100% работоспособность приложения во время развертываний (не удалось или успешно) например, сеансы остались нетронутыми, минимальные шансы на потерю данных
- Храните подробные журналы прогресса процессов на каждом этапе для исправления любых проблем
- Сохраняйте все, что должно быть Source Controlled хорошо ...управляемый источником
Фон / Мечта / Цель:
На моей последней работе по FT у нас было довольно приятное автоматическое развертывание сetup для наших размещенных веб-приложений, использующих CC.Net (для управления процессом), CCTray и веб-интерфейс CC.NET для мониторинга и управления, генерацию кода (шаблоны CodeSmith + NetTiers для доступа к данным и объектам), MSBuild, VS Databse Projectsнесколько сценариев .bat и несколько удобных утилит, таких как PsExec и т. д., чтобы помочь с небольшими кусочками.Я не настраивал его, но у меня есть некоторый опыт управления им, решения проблем и т. Д.
Это было (98% времени) прекрасное развертывание.Вы должны убедиться, что TFS обновлен, дважды щелкните CCtray, щелкните правой кнопкой мыши проект, а затем нажмите «Принудительная сборка», откиньтесь на спинку кресла и посмотрите, что Green => Yellow => Green.
Отлично !!
Текущая ситуация:
Я запускаю своего собственного Micro ISV, и мой основной проект - приложение на Azure (в бета-версии),Мне бы очень хотелось повторить тот опыт развертывания, который у меня был до этого - Я даже рассматриваю возможность перехода с Azure на выделенные серверы - просто потому, что знаю, я могу настроитьтам есть автоматизированная система развертывания.
Моя главная остановка - биты БД, похоже на кошмар.Может быть, мне не хватает какого-то отличного бесплатного инструмента или библиотеки, которая бы выполняла эту работу, я очень на это надеюсь, но я также мог бы по-настоящему справиться с кем-то, имеющим опыт в этом, чтобы указать мне правильное направление для решения «Лучшая практика», чтобы закончить.все маленькие кусочки аккуратно.
Я искал Google, читал и читал, сжигал часы и часы, но мне кажется, что atm - это половина решений, не совсем подходящих для моего проекта и потребностей, основанных на дорогих инструментах, которые я не могу себе позволить (около $ 0 бюджета), или просто над моей головой и немного непонятно и страшно.
Сейчас Я НЕ администратор системы , но, имея достаточно времени, я обычно могу решить, что мне нужно делать для такого рода вещей.
Однако сейчас у меня нет ЛЮБОГО времени, и успех всего моего проекта действительно зависит от того, удастся ли мне избавиться от ужасных 40 минут и более затрат на ручное развертывание, которые я сейчас испытываю.
Я хочу быть в состоянии получить некоторую обратную связь с пользователем, найти ошибку или написать улучшение, и уверенно просто запустить развертывание и приступить к чему-то другому.
Дополнительные проблемы с разработкой для Azure в ее текущем состоянии (в отличие от выделенных серверов), и в настоящее время довольно слабая инструментальная поддержка от MS (я знаю, что есть много улучшений, но мне что-то нужно прямо сейчас)- оставил меня плавать в море «Я не знаю» и «Я не уверен» и имеет тенденцию заканчиваться одним большим:
«Я сдаюсь + ручное развертывание в течение почти часа + немного рыдаю, когда моя мечта о развертывании снова умирает» (:
Но Я знаюлюди, более опытные, знающие и опытные, чем я, взломали это для себя. Я просто не могу найти информацию, я уверен, что там.
Так что, если у кого-то есть какая-то хорошаяресурсы, советы, ссылки, комментарии или мнения по этому вопросу Мне бы очень хотелось услышать.
Подробная информация о моей настройке:
Приложение запущено и работает в Azure (который находится в бета-версии - частично из-за отсутствия настройки автоматического развертывания), работая в слоте Production, я не беспокоился о промежуточном слоте, так как некоторые проблемы с поддоменами / DNS / из-за автоматически сгенерированного URL сделали этот вид болезненным /невыполнимо.
Azure / App:
Приложение
1 Веб-роль
- ASP.NET 4
- MVC 2
- EF 4
- SQL Azure
- Хранилище BLOB-объектов Azure
1 Рабочая роль - выполняет несколько запланированных задач и работает с той же БД и хранилищем BLOB-объектов
- SQL Azure
- хранилище BLOB-объектов Azure
Эти две роли связываются с системой очередей Azure (или скоро это сделает)
Локально:
Датацентр 08 (DC) + Hyper V - VMдля TFS 2010 - виртуальная машина для брандмауэра Linux
Dev Box 1 (Win 7) - VS 2010 / VS 08 - SQL 08 R2 / 05
Dev Laptop 2 - как указано выше.
Я склонен запускать их все время (поэтому мне не нужно останавливаться, чтобы ждать чего-либо) с помощью FANTASTIC free tool 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://selfpacedazure.web.officelive.com/Documents/Windows%20Azure%20Platform%20Articles%20from%20the%20Trenches.pdf
http://msdn.microsoft.com/en-us/library/gg651132.aspx
http://social.technet.microsoft.com/wiki/contents/articles/overview-of-tools-to-use-with-sql-azure.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://blog.syntaxc4.net/post/2009/12/31/Synchronizing-a-Local-Database-with-the-Cloud-using-SQL-Azure-Sync-Framework.aspx
http://social.technet.microsoft.com/wiki/contents/articles/overview-of-tools-to-use-with-sql-azure.aspx
http://social.technet.microsoft.com/wiki/contents/articles/developing-and-deploying-with-sql-azure.aspx
http://blogs.msdn.com/b/tomholl/archive/2011/02/23/using-msbuild-to-deploy-to-multiple-windows-azure-environments.aspx
http://www.scarydba.com/2011/04/25/sql-azure-deployments/
Отказ от ответственности / Blurb Minimization Blurb:
Как я и говорю Я НЕ администратор Sys, Я НЕ волшебник сценариев и не гуру CI, Япростой веб-разработчик, так что, пожалуйста, будьте любезны, если вам бездумно легко, или если я безучастно упускаю суть, я не хочу сказать, что все "Вы взяли коды?"Но я в основном потратил 6 месяцев, мечтая, что однажды скоро кто-нибудь опубликует хорошую ясную простую запись в блоге с «Руководством для идиотов», которое решит все мои проблемы, и через час я снова на небесах развертывания, но я все еще жду(или плохо гуглится), и это разбивает мне сердце маленького разработчика: (
PS Обещаю, что если я получу хороший ответ, я внесу свой вклад в фантастическое SO-сообщество и потрачу не менее 8 часов на чистку.на вопросы, которые я мог бы помочь и внести свой вклад обратно.