Является ли Team Foundation Server правильным решением для автоматической публикации веб-сайта .net на удаленном сервере? - PullRequest
5 голосов
/ 13 августа 2010

В настоящее время мы создаем наш веб-сайт .net в C # в Visual Studio 2010 Pro на нашем dev-сервере, затем вручную публикуем его и загружаем на действующий сервер, где он копируется поверх текущих файлов, для запуска.

Мы хотим максимально автоматизировать этот процесс и, если возможно, запускать его в определенное время, например, каждый день в полночь. В настоящее время мы не используем никакого контроля исходного кода, так что это, вероятно, делает его необходимым в любом случае ...

Является ли Team Foundation Server [TFS] лучшим решением для этого? Если так, сколько это будет стоить нашему клиенту для этого или как мы можем узнать? Мы находимся в Великобритании, и у них есть подписка MSDN.

Ответы [ 6 ]

6 голосов
/ 13 августа 2010

На данный момент вам нужно замедлиться и установить более реалистичные цели. Вот мой самый большой красный флаг:

"В настоящее время мы не используем источник Контроль, так что это, вероятно, делает это важно в любом случае ... "

Без надлежащего SCC вы не сможете добраться туда, куда вам нужно. Полномасштабная реализация TFS, безусловно, может делать то, что вы хотите делать, и у нее есть пара действительно полезных функций, которые вы можете использовать для интеграции сценариев автоматического развертывания, и это здорово, но вам действительно нужно научиться ходить, прежде чем вы сможете научиться бежать.

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

Я не знаю, каковы ваши бюджеты или насколько велики ваши команды, или характер вашей стратегии развития, или ряд вещей, которые могут фактически изменить мой ответ, но я исхожу из предположения, что у вас есть ограниченный бюджет и отсутствие выделенного персонала, на которого можно было бы настроить первоклассную реализацию TFS, поэтому я бы порекомендовал (в таком порядке!)

  • Настройте управление версиями с помощью чего-нибудь бесплатного, такого как Subversion или Git. Для организации, которая только начинает с SCC, я бы порекомендовал Subversion поверх Git, потому что с концептуальной точки зрения намного проще начать работу. Это основа всего, что вы собираетесь делать. В отличие от добавления взрывателя к бомбе весом 2000 фунтов или сборки велосипеда, я рекомендую вам прочитать руководство до и во время установки SVN.

  • Создайте файл сборки с помощью MSBuild. Да, вы можете использовать nAnt, но MSBuild довольно эквивалентен в большинстве сценариев и немного более дружелюбен к TFS, если вы когда-нибудь решите пойти в этом направлении в далеком, далеком будущем. Убедитесь, что ваши сборки правильно работают на ваших блоках разработки и серверах.

  • Придумайте сценарий развертывания. Это может вполне приравнять к цели в вашем файле MSBuild. Или это может быть файл MSI - я недостаточно хорошо знаю вашу среду, чтобы сказать, но, судя по тому факту, что вы скопировали материал в производство, цели MSBuild будет вполне достаточно.

  • Установите сервер непрерывной интеграции, такой как Hudson или CruiseControl.NET. Я лично использую CruiseControl, но основная идея обоих заключается в том, что они представляют собой автоматизированные сервисы, которые следят за изменениями в вашей системе SCC и выполняют сборки за вас. Если вы настроили целевой объект MSBuild для выполнения развертывания, вы можете также настроить «проект» в CCNET (или, возможно, Hudson), чтобы выполнить развертывание.

Общая стоимость программного обеспечения этих решений составляет $ 0, но вы, вероятно, столкнетесь с некоторой кривой обучения во всем этом. Кривая обучения TFS, IMO, еще круче, а стоимость программного обеспечения определенно к северу от 0 долларов. В любом случае, вы не должны пытаться откусить все это одним куском за один раз, иначе вы, вероятно, потерпите неудачу. Идите шаг за шагом, и вы попадете туда. И получайте удовольствие! Я лично любил узнавать обо всем этом!

4 голосов
/ 13 августа 2010

Если у вашего клиента MSDN, то TFS бесплатен!

Если у вас есть MSDN Professional, Permium или Ultimate, вы получаете как клиентскую лицензию для доступа к ЛЮБОМ TFS-серверу, так и лицензию на запуск TFS-сервера в рабочей среде.Вам просто нужно убедиться, что все ваши пользователи имеют MSDN.Если они этого не делают, то вы можете купить лицензию Retial TFS за 500 долларов, которая позволяет первым 5 пользователям без клиентской лицензии.Затем вы можете добавить пакеты CAL, которые дешевле MSDN, для пользователей, которым необходим доступ к данным.Если у вас есть внутренние пользователи, которым требуется доступ только к созданным ими рабочим элементам, они также БЕСПЛАТНЫ.

Пока пользователь, запускающий сборку, имеет лицензию MSDN, ваш сервер сборки также бесплатен.,У вас может быть последовательность, описанная Дином, но я бы предложил выделить немного денег для Final Builder и использовать ее для настройки процесса.Он хорошо интегрируется в TFS и обеспечивает приятный интерфейс.

Преимущество заключается в том, что вы получаете Dev-> test-> Развертывание всех записанных, проверенных и отчетных в одном продукте ...

http://www.finalbuilder.com/download.aspx

2 голосов
/ 13 августа 2010

TFS Team Build, безусловно, способен делать то, что вы хотите, настроив Build, который выполняет цель развертывания веб-приложения. Ключом является MSDeploy, который в действительности может быть выполнен разными способами и не зависит от какого-либо одного инструмента. Вы можете просто запланировать задачу для выполнения MSDeploy.

См. Эти две ссылки для получения дополнительной информации:

http://weblogs.asp.net/scottgu/archive/2010/07/29/vs-2010-web-deployment.aspx

http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+ScottHanselman+(Scott+Hanselman+-+ComputerZen.com)

Есть много действительно классных вещей, которые вы можете сделать с новой системой сборки, основанной на Windows Workflow в TFS 2010. Обучение настройке шаблонов процессов сборки - стоящее вложение.

2 голосов
/ 13 августа 2010

Похоже, что вы после сервера непрерывной интеграции (сборки). Один из них, который я часто использовал с .net: Hudson .

Вы можете запустить сборку с помощью ряда триггеров, например, в определенное время, и можете последовательно выполнять различные шаги. Они могут включать в себя запуск пакетных команд (windows или linux в зависимости от того, на какой платформе вы их запускаете) или запуск MS Build. Он имеет множество плагинов и поддерживается большинство основных инструментов.

Общая последовательность для приложений, которые мы создаем:

  • обновление из системы контроля версий (но это не значит, что вы не можете сделать что-то вроде копирования из общей папки)
  • Компиляция с использованием msbuild
  • запуск юнит-тестов с использованием nunit
  • Развертывание встроенного проекта на тестовом сервере
0 голосов
/ 14 августа 2010

Вам нужно сделать непрерывную интеграцию. TFS 2010 полностью способен сделать это для вас. Но прежде чем продолжить, вы должны переместить свои источники в TFS Source Control Management. Мы делаем то же самое, что и вам: все наши источники находятся в TFS, при каждой регистрации сборка происходит на сервере сборки, а затем развертывается на удаленном живом сервере.

0 голосов
/ 13 августа 2010

Ну команда TFS - это идеальное решение. Но, чтобы снизить стоимость, вы можете использовать MSbuild для решения своей задачи. Вы можете создать планировщик Windows, который запускает MSBuild в определенное время. Существует задача MSBuild с открытым исходным кодом, доступная по http://msbuildtasks.tigris.org/, с помощью которой вы даже можете загружать свои файлы по FTP

...