Командная разработка с использованием Visual Studio Team Foundation Server

Развертывание Team Foundation Server

Разбить на страницы
Показывать лекцию целиком

Обзор

В этой лекции описан общий подход к развертыванию Microsoft® Visual Studio® 2005 Team Foundation Server (TFS) , а также основные решения, которые необходимо принимать при развертывании TFS в организации. В лекции рассказывается о двух вариантах развертывания и объясняется, как выбрать между двумя этими вариантами.

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

Архитектура TFS

Архитектура TFS показана на рис.16.1.

(рис 16.1) Архитектура TFS

С точки зрения архитектуры TFS разделен на три уровня - уровень данных ( data tier ), уровень приложений ( application tier ) и клиентский уровень ( client tier ). Разделение это логическое, и все три уровня вполне можно установить на одном и том же компьютере.

На уровне данных Team Foundation находится Microsoft SQL Server™ 2005. С ним устанавливается ряд баз данных для хранения рабочих элементов, версий, результатов испытаний и любых отчетов.

На уровне приложений содержатся веб-интерфейс, встроенный в Internet Information Services (IIS) , веб-службы Team Foundation и службы Microsoft Office SharePoint®. Также на уровне приложений находятся серверы сборки и прокси управления исходным кодом.

На клиентском уровне находятся приложения, осуществляющие доступ к TFS. Разработчики используют для подключения к Team Server обозреватель Team Explorer, установленный как самостоятельное приложение или как часть Visual Studio 2005. Менеджеры проекта пользуются Microsoft Office Excel® или Microsoft Office Project. Для подключения к серверу можно применять и инструменты сторонних разработчиков.

Подробнее - в лекции 2.

Сценарии развертывания

Существуют следующие способы развертывания TFS:

  • Развертывание с одним сервером;
  • в рабочей группе;
  • при помощи Microsoft Active Directory®.
  • Развертывание с несколькими серверами.
  • Односерверное развертывание в рабочей группе

    В этом варианте создается рабочая группа без использования контроллера домена Active Directory. Такой подход удобен в небольших коллективах. Для подключения к серверу каждому пользователю необходима локальная учетная запись на нем. При использовании рабочих групп раздельное развертывание не поддерживается.

    Односерверное развертывание в Active Directory

    Если вы используете Active Directory, вам доступны оба варианта развертывания. Вы вольны установить уровни данных и приложений как на одном, так и на нескольких серверах.

    Какой тип развертывания выбрать?

    Чтобы выбрать вариант развертывания, максимально отвечающий потребностям вашей организации, ответьте на следующие вопросы:

  • Сколько пользователей мне предстоит поддерживать? Если в ваших планах значится более 400 пользователей, вам, вероятно, стоит подумать о раздельном развертывании.
  • Сколько проектов я буду поддерживать при помощи TFS? Если проектов много, вам, скорее всего, лучше развернуть TFS на нескольких серверах. Каждый экземпляр TFS способен поддерживать до 5000 проектов. Если у вас более 5000 проектов, одним экземпляром Team Foundation Server вам не обойтись.
  • Могу ли я выделить для TFS специальный сервер? При односерверном развертывании TFS компьютер не должен выполнять никакие иные функции, то есть, не должен быть почтовым сервером, файловым сервером или сервером баз данных для других приложений.
  • Преимущества односерверного развертывания

    У односерверного развертывания есть следующие преимущества:

  • Простота
  • Все аспекты TFS управляются на одном сервере.
  • На одном сервере настраиваются права и разрешения пользователей и групп.
  • Только для одного сервера нужно настраивать обслуживание и резервное копирование.
  • Доступность Поскольку как уровень приложений, так и уровень данных размещены на одном сервере, при планировании развертывания вам не нужно учитывать сетевые ограничения и задержки.
  • Преимущества раздельного развертывания

    У раздельного развертывания есть следующие преимущества:

  • Масштабируемость В варианте развертывания с одним сервером можно обслуживать не более 400 пользователей, тогда как разделение функций серверов позволяет увеличить количество пользователей до 2000.
  • Отказоустойчивость На время ремонта или планового обслуживания можно перенаправить сервер уровня приложений на другой сервер уровня данных. А вот резервный сервер уровня приложений настроить нельзя.
  • Односерверное развертывание

    Типичное развертывание с одним сервером показано на рис.16.2. На сервере установлены уровни данных и приложений TFS, а также SharePoint Services и SQL Server 2005.

    (рис 16.2) Типичное развертывание с одним сервером

    Развертывание на раздельных серверах

    Типичный вариант развертывания с несколькими серверами показан на рис.16.3. Уровень приложений TFS установлен совместно с SharePoint Services. На другом компьютере размещены уровень данных TFS и SQL Server 2005.

    (рис 16.3) Типичное раздельное развертывание

    Другие серверы

    Как в односерверном, так и в раздельном варианте вы вольны установить также сервер сборки и прокси-сервер. Их можно установить как на том же сервере, что и уровень приложений, так и на других серверах.

    Установка сервера сборки

    Чтобы повысить производительность сборки и снизить нагрузку на уровень приложений, разместите службы сборки на отдельном сервере. Например, это нужно сделать, если сборки планируется проводить достаточно часто.

    Прокси-сервер Team Foundation

    Прокси-сервер Team Foundation кеширует копии файлов, включенных в систему управления исходным кодом. Используйте прокси-сервер, если вы обращаетесь к серверу управления исходным кодом по сети и испытываете проблемы с ее быстродействием.

    Топологии TFS

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

    Простая топология

    На рис.16.4 показана самая простая топология TFS - уровни приложений и данных развернуты на одном и том же сервере. Прокси-сервер TFS развернут на отдельном сервере. Доступ к серверу имеется с клиентских рабочих станций в том же домене.

    Эта конфигурация подходит для команд разработчиков и для пилотных проектов с числом пользователей не более 400.

    (рис 16.4) Простая топология TFS

    Топология умеренной сложности

    На рис.16.5 показан вариант с топологии с разделением уровней. Службы приложений развернуты на одном сервере, базы данных - на другом.

    (рис 16.5) Топология TFS умеренной сложности

    На рис.16.5 показано также испытательное оборудование и серверы сборки, развернутые на отдельных узлах. Клиентские узлы находятся либо в том же домене, что и серверы, либо в доменах, которые связаны с серверами отношениями доверия. Топологии этого уровня сложности уместны в больших командах разработки с количеством пользователей от 400 до 2000.

    Сложная топология

    Сложная топология, показанная на рис.16.6, близка к предыдущему случаю. Однако теперь в нее добавлены компоненты отказоустойчивости - резервный сервер уровня приложений и уровень данных с использованием технологий кластеризации SQL.

    (рис 16.6) Сложная топология TFS

    Кроме того, на рис.16.6 показан географически удаленный дочерний домен, связанный с основным доменом при помощи низкоскоростного соединения. Клиенты в этом домене для более эффективного доступа к системе управления исходным кодом используют прокси-сервер TFS.

    Дополнительные соображения

    При развертывании TFS учитывайте следующее:

  • Если у вас уже есть настроенный сервер .
  • В крупных проектах выигрыша позволяет добиться перемещение механизма и куба на отдельный компьютер. Вы можете задать кластеризацию и http:// msdn2.microsoft.com/en-us/library/ms252505(VS.80).aspx.
  • Стратегия масштабирования и архивации TFS

    Планируя установку и развертывание Team Foundation Server, вы должны среди прочего решить, как будете управлять архивацией серверов и их восстановлением после сбоев. Выбор соответствующих стратегий определяется размером системы и доступными ресурсами. Поскольку уровень данных опирается на SQL Server 2005, подбор стратегии зависит от того, какой подход к архивации SQL Server вы в данный момент используете.

    Если вы используете зеркалирование или кластеризацию SQL Server 2005, тот же самый подход можно применить и к уровню данных TFS. Вам также предстоит решить, как поступать в случае сбоя на сервере уровня приложений. Чтобы добиться отказоустойчивости, подготовьте резервный сервер уровня приложений и обеспечьте возможность быстрого переключения на него.

    Выбор стратегии для компании

    Выбирая стратегию установки архивации и восстановления TFS, учитывайте следующие соображения:

  • размер команд;
  • количество проектов;
  • размер проектов;
  • расположение команд;
  • потребность в отказоустойчивости;
  • потребность в архивации.
  • Рекомендуемое оборудование Team Foundation Server

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

    Таб.16.1 поможет вам решить, какой вариант установки стоит выбрать и какое оборудование использовать.

    Подбор оборудования для TFS
    Конфигурация Уровень ЦП Жесткий диск Память
    Один сервер, менее 20 пользователей Сервер уровня приложений и данных Одиночный процессор, 2,2 ГГц 8 Гб 1 Гб
    Один сервер; от 20 до 100 пользователей Сервер уровня приложений и данных Двойной процессор, 2,2 ГГц 30 Гб 2 Гб
    Несколько серверов; от 100 до 250 пользователей Сервер уровня приложений Одиночный процессор, 2,2 ГГц 20 Гб 1 Гб
    Сервер уровня данных Двойной процессор, 2,2 ГГц 80 Гб 2 Гб
    Несколько серверов; от 250 до 2000 пользователей Сервер уровня приложений Двойной процессор, 2,8 ГГц 40 Гб 4 Гб
    Сервер уровня данных Счетверенный процессор, 2,7 ГГц Накопитель прямого подключения, 14 000-15 000 RPM RAID 0 16 Гб

    Стратегия архивации и восстановления

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

    Архивация

    Планирование стратегии архивации является частью плана развертывания TFS. Учитывайте следующие соображения:

  • частоту архивации;
  • частоту полной и добавочной архивации;
  • требования к хранению архивов, например, внутри организации или вне ее.
  • Вы вольны использовать ту же методику архивации, что используете для любой БД SQL Server 2005. Восстановление TFS из архивов проводится по одному из трех сценариев:

  • восстановление только данных;
  • полное восстановление односерверной установки;
  • полное восстановление раздельной установки.
  • Восстановление только данных применяется в случае сбоя на уровне данных. С помощью архивных данных и журналов вы полностью восстановите БД. Восстановление серверов требуется при их выходе строя. В этом случае вы можете восстановить полную БД на втором компьютере.

    Резервный сервер уровня приложения

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

    Восстановление после сбоя

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

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

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

    Уровень данных

    Кластеризация серверов уровня данных

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

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

    Устанавливать .

    Зеркалирование серверов уровня данных

    Зеркалирование сервера состоит в синхронизации данных на этом сервере с их копией на другом сервере. Сервер уровня данных является главным, а сервер с зеркалированными данными - резервным или зеркальным сервером. Если сервер уровня данных выходит из строя, переключиться на зеркальный сервер можно вручную.

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

    Зеркалирование может быть синхронным или асинхронным. Можно также менять главный и зеркальный серверы ролями. Когда производится смена ролей (role switching), зеркальный сервер становится главным, а бывший главный - зеркальным. В принципе, смену ролей можно производить неоднократно.

    Автоматическое переключение TFS с главного на зеркальный сервер не поддерживается, это нужно делать вручную.

    Чтобы настроить зеркалирование SQL для уровня данных, выполните следующие действия:

  • Выполните полную архивацию всех БД и журнала транзакций.
  • Создайте резервную копию ключа шифрования Reporting Services.
  • Установите на зеркальном сервере SQL Server 2005.
  • Восстановите данные с уровня данных на зеркальном сервере.
  • Для каждой БД на главном сервере уровня данных запустите мастер настройки зеркального сервера Configure Database Mirroring Security Wizard.
  • Начните зеркалирование.
  • Чтобы вручную переключиться на зеркальный сервер, выполните следующие действия:

  • На уровне приложений TFS:
  • Перенастройте Report Service на использование нового сервера.
  • Остановите веб-узел по умолчанию.
  • Остановите веб-узел SharePoint Web.
  • Остановите службу SharePoint Timer.
  • Остановите службу TfsServerScheduler.
  • Основите пул приложений ReportServer.
  • Остановите пул приложений TFS App Pool.
  • Убедитесь, что на зеркальном сервере уровня данных созданы все необходимые учетные записи служб.
  • Переключите все БД главного сервера на зеркальный сервер.
  • Создайте на новом сервере хранилище данных.
  • Настройте сервер уровня приложений на использование зеркального сервера уровня данных:
  • Введите в командной строке TFSAdminUtil RenameDT MirrorDataTierServer.
  • Перезапустите IIS.
  • Измените строку подключения Reporting Services, включив в нее ссылку на зеркальный сервер уровня данных.
  • Задайте на сервере SharePoint использование зеркального сервера уровня данных.
  • Запустите службу SharePoint Timer.
  • Запустите службу TfsServerScheduler.
  • Запустите пул приложений ReportServer.
  • Запустите пул приложений TFS App Pool. и. Запустите Reporting Services.
  • Вызовите веб-службу StampWorkItemCache.
  • Уровень приложений

    Отказоустойчивость уровня приложений

    Настроив главный сервер уровня приложений, подготовьте также резервный компьютер для "теплой замены" на случай выхода главного сервера из строя.

    Резервное оборудование и ПО

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

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

    Переключение сервера уровня приложений

    Переключение на резервный сервер уровня приложений производится вручную. Если главный сервер вышел из строя, выполните следующие действия:

  • Отключите главный сервер.
  • На резервном сервере:
  • Зарегистрируйтесь как администратор.
  • Запустите TFSAdminUtil с параметром ActivateAT.
  • Запустите на резервном сервере веб-службы. Эта команда выполняет следующие действия:
  • Регистрирует имя резервного сервера в интеграционной БД TFS.
  • Подключает резервный сервер уровня приложений к активному серверу уровня данных.
  • Проверяет, что в результате подключения корректный сервер уровня приложений соединен с корректным сервером уровня данных. Подробнее об активации резервного сервера уровня приложений читайте в статье "How to: Activate a Fail-Over Application-Tier Server" по адресу http://msdn2.microsoft.com/en-us/library/ms252501(VS.80).aspx.
  • Резюме

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

    На уровне данных удобно использовать тот же механизм архивации, который принят в вашей организации для других архивов SQL Server 2005. Отказоустойчивость можно обеспечить при помощи зеркалирования или кластеризации.

    Автоматическое восстановление уровня данных после сбоя не производится. Если вам нужно быстро вернуть систему в рабочее состояние, подготовьте резервный сервер для быстрого "теплого" переключения.

    Дополнительные ресурсы

  • Если вы не совсем разобрались в архитектуре TFS, перечитайте лекцию 2.
  • Подробнее об установке .
  • Дополнительную информацию о пределах масштабирования .
  • Дополнительную информацию о том, как переместить куб .
  • Дополнительную информацию о кластеризации .
  • Дополнительную информацию о создании отказоустойчивого кластера .
  • Дополнительную информацию о том, как настроить кластер .
  • Дополнительную информацию о том, как переместить сайт .
  • Подробную информацию о масштабируемости .
  • Дополнительную информацию о восстановлении после сбоев вы найдете в статье "Visual Studio Team System User Education" по адресу http://www. microsoft.com/technet/itshowcase/content/vs05teamsystemnote.mspx.
  • Дополнительную информацию о архивации .
  • Дополнительную информацию о кластеризации серверов уровня данных вы найдете в статье "Clustering the Data-Tier Server" по адресу http:// msdn2.microsoft.com/en-gb/library/ms252505(VS.80).aspx.
  • Дополнительную информацию о зеркалировании уровня данных Team Foundation Server вы найдете в статье "Mirroring the Team Foundation Data-Tier Server" по адресу http://msdn2.microsoft.com/en-gb/library/ aa980644(VS.80).aspx.
  • Дополнительную информацию о настройке зеркалирования SQL Server на уровне данных вы найдете в статье "How to: Configure SQL Server Mirroring for the Team Foundation Data-Tier Server" по адресу http:// msdn2.microsoft.com/en-us/library/aa980629(VS.80).aspx.
  • Дополнительную информацию о восстановлении уровня данных вы найдете в статье "How To: Fail Over to a Mirrored Data-Tier Server" по адресу http://msdn2.microsoft.com/en-gb/library/aa980627(VS.80).aspx.
  • Дополнительную информацию о восстановлении уровня данных при недоступности главного сервера вы найдете в статье "How To: Fail Over to a Mirrored Data-Tier Server if the Principal Data-Tier Server is Unavailable" по адресу http://msdn2.microsoft.com/en-gb/library/aa980528(VS.80).aspx.
  • Дополнительную информацию о том, как активировать резервный сервер уровня приложений, вы найдете в статье "How To: Activate a Fail-Over Application-Tier Server" по адресу http://msdn2.microsoft.com/en-us/li-brary/ms252501(VS.80).aspx.
  • Дополнительную информацию о том, как активировать резервный сервер уровня приложений, вы также найдете в статье "Activating a Fail-Over Application-Tier Server" по адресу http://msdn2.microsoft.com/en-us/li-brary/ms252486(VS.80).aspx.
  • Страницы:

    Обзор

    В этой лекции описан общий подход к развертыванию Microsoft® Visual Studio® 2005 Team Foundation Server (TFS) , а также основные решения, которые необходимо принимать при развертывании TFS в организации. В лекции рассказывается о двух вариантах развертывания и объясняется, как выбрать между двумя этими вариантами.

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

    Архитектура TFS

    Архитектура TFS показана на рис.16.1.

    (рис 16.1) Архитектура TFS

    С точки зрения архитектуры TFS разделен на три уровня - уровень данных ( data tier ), уровень приложений ( application tier ) и клиентский уровень ( client tier ). Разделение это логическое, и все три уровня вполне можно установить на одном и том же компьютере.

    На уровне данных Team Foundation находится Microsoft SQL Server™ 2005. С ним устанавливается ряд баз данных для хранения рабочих элементов, версий, результатов испытаний и любых отчетов.

    На уровне приложений содержатся веб-интерфейс, встроенный в Internet Information Services (IIS) , веб-службы Team Foundation и службы Microsoft Office SharePoint®. Также на уровне приложений находятся серверы сборки и прокси управления исходным кодом.

    На клиентском уровне находятся приложения, осуществляющие доступ к TFS. Разработчики используют для подключения к Team Server обозреватель Team Explorer, установленный как самостоятельное приложение или как часть Visual Studio 2005. Менеджеры проекта пользуются Microsoft Office Excel® или Microsoft Office Project. Для подключения к серверу можно применять и инструменты сторонних разработчиков.

    Подробнее - в лекции 2.

    Сценарии развертывания

    Существуют следующие способы развертывания TFS:

  • Развертывание с одним сервером;
  • в рабочей группе;
  • при помощи Microsoft Active Directory®.
  • Развертывание с несколькими серверами.
  • Односерверное развертывание в рабочей группе

    В этом варианте создается рабочая группа без использования контроллера домена Active Directory. Такой подход удобен в небольших коллективах. Для подключения к серверу каждому пользователю необходима локальная учетная запись на нем. При использовании рабочих групп раздельное развертывание не поддерживается.

    Односерверное развертывание в Active Directory

    Если вы используете Active Directory, вам доступны оба варианта развертывания. Вы вольны установить уровни данных и приложений как на одном, так и на нескольких серверах.

    Какой тип развертывания выбрать?

    Чтобы выбрать вариант развертывания, максимально отвечающий потребностям вашей организации, ответьте на следующие вопросы:

  • Сколько пользователей мне предстоит поддерживать? Если в ваших планах значится более 400 пользователей, вам, вероятно, стоит подумать о раздельном развертывании.
  • Сколько проектов я буду поддерживать при помощи TFS? Если проектов много, вам, скорее всего, лучше развернуть TFS на нескольких серверах. Каждый экземпляр TFS способен поддерживать до 5000 проектов. Если у вас более 5000 проектов, одним экземпляром Team Foundation Server вам не обойтись.
  • Могу ли я выделить для TFS специальный сервер? При односерверном развертывании TFS компьютер не должен выполнять никакие иные функции, то есть, не должен быть почтовым сервером, файловым сервером или сервером баз данных для других приложений.
  • Преимущества односерверного развертывания

    У односерверного развертывания есть следующие преимущества:

  • Простота
  • Все аспекты TFS управляются на одном сервере.
  • На одном сервере настраиваются права и разрешения пользователей и групп.
  • Только для одного сервера нужно настраивать обслуживание и резервное копирование.
  • Доступность Поскольку как уровень приложений, так и уровень данных размещены на одном сервере, при планировании развертывания вам не нужно учитывать сетевые ограничения и задержки.
  • Преимущества раздельного развертывания

    У раздельного развертывания есть следующие преимущества:

  • Масштабируемость В варианте развертывания с одним сервером можно обслуживать не более 400 пользователей, тогда как разделение функций серверов позволяет увеличить количество пользователей до 2000.
  • Отказоустойчивость На время ремонта или планового обслуживания можно перенаправить сервер уровня приложений на другой сервер уровня данных. А вот резервный сервер уровня приложений настроить нельзя.
  • Односерверное развертывание

    Типичное развертывание с одним сервером показано на рис.16.2. На сервере установлены уровни данных и приложений TFS, а также SharePoint Services и SQL Server 2005.

    (рис 16.2) Типичное развертывание с одним сервером

    Развертывание на раздельных серверах

    Типичный вариант развертывания с несколькими серверами показан на рис.16.3. Уровень приложений TFS установлен совместно с SharePoint Services. На другом компьютере размещены уровень данных TFS и SQL Server 2005.

    (рис 16.3) Типичное раздельное развертывание

    Другие серверы

    Как в односерверном, так и в раздельном варианте вы вольны установить также сервер сборки и прокси-сервер. Их можно установить как на том же сервере, что и уровень приложений, так и на других серверах.

    Установка сервера сборки

    Чтобы повысить производительность сборки и снизить нагрузку на уровень приложений, разместите службы сборки на отдельном сервере. Например, это нужно сделать, если сборки планируется проводить достаточно часто.

    Прокси-сервер Team Foundation

    Прокси-сервер Team Foundation кеширует копии файлов, включенных в систему управления исходным кодом. Используйте прокси-сервер, если вы обращаетесь к серверу управления исходным кодом по сети и испытываете проблемы с ее быстродействием.

    Топологии TFS

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

    Простая топология

    На рис.16.4 показана самая простая топология TFS - уровни приложений и данных развернуты на одном и том же сервере. Прокси-сервер TFS развернут на отдельном сервере. Доступ к серверу имеется с клиентских рабочих станций в том же домене.

    Эта конфигурация подходит для команд разработчиков и для пилотных проектов с числом пользователей не более 400.

    (рис 16.4) Простая топология TFS

    Топология умеренной сложности

    На рис.16.5 показан вариант с топологии с разделением уровней. Службы приложений развернуты на одном сервере, базы данных - на другом.

    (рис 16.5) Топология TFS умеренной сложности

    На рис.16.5 показано также испытательное оборудование и серверы сборки, развернутые на отдельных узлах. Клиентские узлы находятся либо в том же домене, что и серверы, либо в доменах, которые связаны с серверами отношениями доверия. Топологии этого уровня сложности уместны в больших командах разработки с количеством пользователей от 400 до 2000.

    Сложная топология

    Сложная топология, показанная на рис.16.6, близка к предыдущему случаю. Однако теперь в нее добавлены компоненты отказоустойчивости - резервный сервер уровня приложений и уровень данных с использованием технологий кластеризации SQL.

    (рис 16.6) Сложная топология TFS

    Кроме того, на рис.16.6 показан географически удаленный дочерний домен, связанный с основным доменом при помощи низкоскоростного соединения. Клиенты в этом домене для более эффективного доступа к системе управления исходным кодом используют прокси-сервер TFS.

    Дополнительные соображения

    При развертывании TFS учитывайте следующее:

  • Если у вас уже есть настроенный сервер .
  • В крупных проектах выигрыша позволяет добиться перемещение механизма и куба на отдельный компьютер. Вы можете задать кластеризацию и http:// msdn2.microsoft.com/en-us/library/ms252505(VS.80).aspx.
  • Стратегия масштабирования и архивации TFS

    Планируя установку и развертывание Team Foundation Server, вы должны среди прочего решить, как будете управлять архивацией серверов и их восстановлением после сбоев. Выбор соответствующих стратегий определяется размером системы и доступными ресурсами. Поскольку уровень данных опирается на SQL Server 2005, подбор стратегии зависит от того, какой подход к архивации SQL Server вы в данный момент используете.

    Если вы используете зеркалирование или кластеризацию SQL Server 2005, тот же самый подход можно применить и к уровню данных TFS. Вам также предстоит решить, как поступать в случае сбоя на сервере уровня приложений. Чтобы добиться отказоустойчивости, подготовьте резервный сервер уровня приложений и обеспечьте возможность быстрого переключения на него.

    Выбор стратегии для компании

    Выбирая стратегию установки архивации и восстановления TFS, учитывайте следующие соображения:

  • размер команд;
  • количество проектов;
  • размер проектов;
  • расположение команд;
  • потребность в отказоустойчивости;
  • потребность в архивации.
  • Рекомендуемое оборудование Team Foundation Server

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

    Таб.16.1 поможет вам решить, какой вариант установки стоит выбрать и какое оборудование использовать.

    Подбор оборудования для TFS
    Конфигурация Уровень ЦП Жесткий диск Память
    Один сервер, менее 20 пользователей Сервер уровня приложений и данных Одиночный процессор, 2,2 ГГц 8 Гб 1 Гб
    Один сервер; от 20 до 100 пользователей Сервер уровня приложений и данных Двойной процессор, 2,2 ГГц 30 Гб 2 Гб
    Несколько серверов; от 100 до 250 пользователей Сервер уровня приложений Одиночный процессор, 2,2 ГГц 20 Гб 1 Гб
    Сервер уровня данных Двойной процессор, 2,2 ГГц 80 Гб 2 Гб
    Несколько серверов; от 250 до 2000 пользователей Сервер уровня приложений Двойной процессор, 2,8 ГГц 40 Гб 4 Гб
    Сервер уровня данных Счетверенный процессор, 2,7 ГГц Накопитель прямого подключения, 14 000-15 000 RPM RAID 0 16 Гб

    Стратегия архивации и восстановления

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

    Архивация

    Планирование стратегии архивации является частью плана развертывания TFS. Учитывайте следующие соображения:

  • частоту архивации;
  • частоту полной и добавочной архивации;
  • требования к хранению архивов, например, внутри организации или вне ее.
  • Вы вольны использовать ту же методику архивации, что используете для любой БД SQL Server 2005. Восстановление TFS из архивов проводится по одному из трех сценариев:

  • восстановление только данных;
  • полное восстановление односерверной установки;
  • полное восстановление раздельной установки.
  • Восстановление только данных применяется в случае сбоя на уровне данных. С помощью архивных данных и журналов вы полностью восстановите БД. Восстановление серверов требуется при их выходе строя. В этом случае вы можете восстановить полную БД на втором компьютере.

    Резервный сервер уровня приложения

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

    Восстановление после сбоя

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

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

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

    Уровень данных

    Кластеризация серверов уровня данных

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

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

    Устанавливать .

    Зеркалирование серверов уровня данных

    Зеркалирование сервера состоит в синхронизации данных на этом сервере с их копией на другом сервере. Сервер уровня данных является главным, а сервер с зеркалированными данными - резервным или зеркальным сервером. Если сервер уровня данных выходит из строя, переключиться на зеркальный сервер можно вручную.

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

    Зеркалирование может быть синхронным или асинхронным. Можно также менять главный и зеркальный серверы ролями. Когда производится смена ролей (role switching), зеркальный сервер становится главным, а бывший главный - зеркальным. В принципе, смену ролей можно производить неоднократно.

    Автоматическое переключение TFS с главного на зеркальный сервер не поддерживается, это нужно делать вручную.

    Чтобы настроить зеркалирование SQL для уровня данных, выполните следующие действия:

  • Выполните полную архивацию всех БД и журнала транзакций.
  • Создайте резервную копию ключа шифрования Reporting Services.
  • Установите на зеркальном сервере SQL Server 2005.
  • Восстановите данные с уровня данных на зеркальном сервере.
  • Для каждой БД на главном сервере уровня данных запустите мастер настройки зеркального сервера Configure Database Mirroring Security Wizard.
  • Начните зеркалирование.
  • Чтобы вручную переключиться на зеркальный сервер, выполните следующие действия:

  • На уровне приложений TFS:
  • Перенастройте Report Service на использование нового сервера.
  • Остановите веб-узел по умолчанию.
  • Остановите веб-узел SharePoint Web.
  • Остановите службу SharePoint Timer.
  • Остановите службу TfsServerScheduler.
  • Основите пул приложений ReportServer.
  • Остановите пул приложений TFS App Pool.
  • Убедитесь, что на зеркальном сервере уровня данных созданы все необходимые учетные записи служб.
  • Переключите все БД главного сервера на зеркальный сервер.
  • Создайте на новом сервере хранилище данных.
  • Настройте сервер уровня приложений на использование зеркального сервера уровня данных:
  • Введите в командной строке TFSAdminUtil RenameDT MirrorDataTierServer.
  • Перезапустите IIS.
  • Измените строку подключения Reporting Services, включив в нее ссылку на зеркальный сервер уровня данных.
  • Задайте на сервере SharePoint использование зеркального сервера уровня данных.
  • Запустите службу SharePoint Timer.
  • Запустите службу TfsServerScheduler.
  • Запустите пул приложений ReportServer.
  • Запустите пул приложений TFS App Pool. и. Запустите Reporting Services.
  • Вызовите веб-службу StampWorkItemCache.
  • Уровень приложений

    Отказоустойчивость уровня приложений

    Настроив главный сервер уровня приложений, подготовьте также резервный компьютер для "теплой замены" на случай выхода главного сервера из строя.

    Резервное оборудование и ПО

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

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

    Переключение сервера уровня приложений

    Переключение на резервный сервер уровня приложений производится вручную. Если главный сервер вышел из строя, выполните следующие действия:

  • Отключите главный сервер.
  • На резервном сервере:
  • Зарегистрируйтесь как администратор.
  • Запустите TFSAdminUtil с параметром ActivateAT.
  • Запустите на резервном сервере веб-службы. Эта команда выполняет следующие действия:
  • Регистрирует имя резервного сервера в интеграционной БД TFS.
  • Подключает резервный сервер уровня приложений к активному серверу уровня данных.
  • Проверяет, что в результате подключения корректный сервер уровня приложений соединен с корректным сервером уровня данных. Подробнее об активации резервного сервера уровня приложений читайте в статье "How to: Activate a Fail-Over Application-Tier Server" по адресу http://msdn2.microsoft.com/en-us/library/ms252501(VS.80).aspx.
  • Резюме

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

    На уровне данных удобно использовать тот же механизм архивации, который принят в вашей организации для других архивов SQL Server 2005. Отказоустойчивость можно обеспечить при помощи зеркалирования или кластеризации.

    Автоматическое восстановление уровня данных после сбоя не производится. Если вам нужно быстро вернуть систему в рабочее состояние, подготовьте резервный сервер для быстрого "теплого" переключения.

    Дополнительные ресурсы

  • Если вы не совсем разобрались в архитектуре TFS, перечитайте лекцию 2.
  • Подробнее об установке .
  • Дополнительную информацию о пределах масштабирования .
  • Дополнительную информацию о том, как переместить куб .
  • Дополнительную информацию о кластеризации .
  • Дополнительную информацию о создании отказоустойчивого кластера .
  • Дополнительную информацию о том, как настроить кластер .
  • Дополнительную информацию о том, как переместить сайт .
  • Подробную информацию о масштабируемости .
  • Дополнительную информацию о восстановлении после сбоев вы найдете в статье "Visual Studio Team System User Education" по адресу http://www. microsoft.com/technet/itshowcase/content/vs05teamsystemnote.mspx.
  • Дополнительную информацию о архивации .
  • Дополнительную информацию о кластеризации серверов уровня данных вы найдете в статье "Clustering the Data-Tier Server" по адресу http:// msdn2.microsoft.com/en-gb/library/ms252505(VS.80).aspx.
  • Дополнительную информацию о зеркалировании уровня данных Team Foundation Server вы найдете в статье "Mirroring the Team Foundation Data-Tier Server" по адресу http://msdn2.microsoft.com/en-gb/library/ aa980644(VS.80).aspx.
  • Дополнительную информацию о настройке зеркалирования SQL Server на уровне данных вы найдете в статье "How to: Configure SQL Server Mirroring for the Team Foundation Data-Tier Server" по адресу http:// msdn2.microsoft.com/en-us/library/aa980629(VS.80).aspx.
  • Дополнительную информацию о восстановлении уровня данных вы найдете в статье "How To: Fail Over to a Mirrored Data-Tier Server" по адресу http://msdn2.microsoft.com/en-gb/library/aa980627(VS.80).aspx.
  • Дополнительную информацию о восстановлении уровня данных при недоступности главного сервера вы найдете в статье "How To: Fail Over to a Mirrored Data-Tier Server if the Principal Data-Tier Server is Unavailable" по адресу http://msdn2.microsoft.com/en-gb/library/aa980528(VS.80).aspx.
  • Дополнительную информацию о том, как активировать резервный сервер уровня приложений, вы найдете в статье "How To: Activate a Fail-Over Application-Tier Server" по адресу http://msdn2.microsoft.com/en-us/li-brary/ms252501(VS.80).aspx.
  • Дополнительную информацию о том, как активировать резервный сервер уровня приложений, вы также найдете в статье "Activating a Fail-Over Application-Tier Server" по адресу http://msdn2.microsoft.com/en-us/li-brary/ms252486(VS.80).aspx.
  • Вернуться к учебному плану