Автоматизация развертывания веб-приложения .Net в Azure и SQL Azure и BLOB-объекты Azure

Краткое содержание:

Мне нужна помощь / информация / ресурсы r.e. настройка автоматического развертывания Team Build, MsBuild, TFS 2010 для моего веб-приложения в Azure (включая все биты БД).

В идеале я хотел бы иметь процесс, который можно запускать из пользовательского интерфейса VS2010 Team Explorer «Поставить в очередь новую сборку», а затем просто следить за ее продвижением, позволяя мне поработать над чем-то еще. Варианты, позволяющие вникать в журнал для любых проблем, и знать, что мой процесс является надежным, полным и полностью не ручным, то есть:

  • Резервное копирование всех моих данных Live (SQL Azure и большие двоичные объекты Azure)
  • Развертывает любые изменения схемы БД (содержащиеся в моем проекте БД)
  • Развертывает любые изменения данных в моих основных данных (например, данные конфигурации и т. Д. - которые у меня есть в моих сценариях после развертывания).
  • Делает вещи разумно (например, использование сжатия для пакетов развертывания для экономии времени и пропускной способности)
  • Прикрыть мою глупую задницу (например, плавный откат неудачных изменений)
  • Обеспечивает 100% -ную работу приложения во время развертывания (неудачного или успешного), например сеансы оставлены нетронутыми, минимальные шансы на потерю данных
  • Вести подробные журналы прогресса процессов на каждом этапе для устранения любых проблем
  • Держать все, что должно быть, под контролем источника ... под контролем источника

Предпосылки / мечта / цель:

На моей последней работе в FT у нас была довольно удобная установка автоматического развертывания для наших размещенных веб-приложений с использованием CC.Net (для управления процессом), CCTray и веб-интерфейса CC.NET для мониторинга и управления, генерации кода (CodeSmith + Шаблоны NetTiers для доступа к данным и сущностей), MSBuild, VS Databse Projects, несколько сценариев .bat и некоторые удобные утилиты, такие как PsExec и т. Д., Чтобы помочь с небольшими частями. Я не устанавливал его, но у меня есть некоторый опыт управления им, решения проблем и т. Д.

Это было (98% случаев) прекрасным опытом для развертывания. Вы должны убедиться, что TFS обновлена, дважды щелкните CCtray, щелкните правой кнопкой мыши проект, а затем нажмите «Force Build», расслабьтесь и посмотрите Зеленый => Желтый => Зеленый.

Отлично !!

Текущая ситуация:

Я запускаю свой собственный Micro ISV, и мой основной проект - это приложение в Azure (в бета-версии). Я бы очень хотел повторить опыт развертывания, который у меня был раньше - Я даже подумываю о переходе из Azure на выделенные серверы - просто потому, что я знаю , что могу настроить там автоматизированная система развертывания.

Моя основная точка остановки - биты БД, похоже на кошмар. Может быть, мне не хватает какого-нибудь отличного бесплатного инструмента или библиотеки, которые справились бы с этой работой, я очень на это надеюсь, но я также мог бы действительно помочь кому-то, кто имеет в этом опыт, указать мне правильное направление для решения "Лучшей практики", чтобы завершить все мелочи аккуратно.

Я рыскал в Google, читал и читал, потратил часы и часы, но то, что я, кажется, нахожу банкомат, - это половинчатые решения, не совсем подходящие для моего проекта и потребностей, основанные на дорогих инструментах, которые я не могу себе позволить (бюджет около $ 0 ), или просто над моей головой и немного непонятно и страшно.

Сейчас Я НЕ системный администратор , но, имея достаточно времени, я обычно могу решить, что мне нужно делать для такого рода вещей.

Однако сейчас у меня нет НИКАКОГО времени, и успех всего моего проекта действительно зависит от моей способности сократить ужасающие 40-минутные затраты на развертывание вручную, с которыми я сейчас сталкиваюсь.

Я хочу иметь возможность получить отзывы пользователей, найти ошибку или написать код улучшения и уверенно просто запустить развертывание и приступить к чему-то еще.

Дополнительные проблемы с разработкой для Azure в текущем состоянии (в отличие от выделенных серверов) и в настоящее время довольно слабая поддержка инструментов от MS (я знаю, что впереди много улучшений, но мне что-то нужно прямо сейчас) - осталось я плаваю в море "Я не знаю" и "Я не уверен" и имеет тенденцию заканчиваться одним большим:

"Я сдаюсь + ручное развертывание в течение почти часа + немного рыданий внутри, когда моя мечта о развертывании небес снова умирает ": (

Но Я знаю, что люди более опытные, знающие и опытные, чем я сам, взломали этот для себя. ] Я просто не могу найти информацию, которая, я уверен, там есть.

Так что, если у кого-то есть хорошие ресурсы, советы, ссылки, комментарии или мнения по этому поводу, Я буду рад чтобы услышать.

Подробная информация о моей настройке:

Приложение запущено и работает в Azure (которое находится в бета-версии - отчасти из-за отсутствия настройки автоматического развертывания), работает в производственном слоте, я не беспокоился с промежуточным слотом, так как некоторые проблемы с поддоменами / DNS / автоматически созданным URL-адресом выглядят болезненно / невыполнимо.

Azure / Приложение:

Приложение -

1 веб-роль

  • ASP. NET 4
  • MVC 2
  • EF 4
  • SQL Azure
  • Хранилище BLOB-объектов Azure

1 Рабочая роль - выполняет некоторые запланированные задачи и работает с той же БД и хранилищем BLOB-объектов

  • SQL Azure
  • Хранилище BLOB-объектов Azure

Две роли взаимодействуют с системой очередей Azure (или скоро будут)

Локально:

Datacenter 08 (DC) + Hyper V - ВМ для TFS 2010 - ВМ для брандмауэра 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://selfpacedazure.web.officelive.com/Documents/Windows%20Azure%20Platform%20Articles%20from%20the%20Trenches.pdf

http://msdn.microsoft.com/en-us/library/gg651132.aspx[12174 visiblehttp://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/ Непрерывная интеграция в Cl oud.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 / article / development-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/

Заявление об ограничении ответственности / Реклама на форуме: минимизация злоупотреблений:

Как я уже сказал Я НЕ системный администратор, Я НЕ волшебник сценариев и НЕ гуру компьютерных программ, Я простой веб-разработчик, так что, пожалуйста, будьте любезны, если вам это бездумно легко, или если я сутуловато упускаю суть, я не имею в виду, что все "Вы Haz кода?" Но в основном я провел 6 месяцев в мечтах, что однажды кто-нибудь опубликует в блоге красивую, ясную и простую запись с «Руководством по идиотам», которое решит все мои проблемы, а через час я снова на небесах, но все еще жду (или плохо погуглил), и это разбило мне сердце моего маленького разработчика: (

PS Я обещаю, что если я получу здесь хороший ответ, я внесу свой вклад в фантастическое сообщество SO и потрачу не менее 8 часов на поиск вопросов, которые я может помочь и внести свой вклад.

11
задан Community 23 May 2017 в 10:34
поделиться