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

Интернет-доступ к Team Foundation Server

Показывать лекцию целиком

Обзор

Из этой лекции вы узнаете, как предоставить удаленный доступ к TFS через Интернет. Доступны три варианта удаленного доступа:

  • посредством виртуальной частной сети ( VPN );
  • посредством обратного прокси, например, Microsoft Internet Security and Acceleration (ISA) Server ;
  • разместив сервер TFS в экстрасети.
  • В версиях TFS до Service Pack 1 (SP1) поддерживается только VPN -доступ. В версию TFS SP1 добавлена поддержка обычной ( Basic ) проверки подлинности, благодаря чему помимо VPN стали возможными решения с экстрасетью и обратным прокси.

    В лекции также подробно описаны процедуры установки и настройки сертификатов и SSL для использования с обычной или краткой ( Digest ) проверкой подлинности. Из раздела "Повышение эффективности удаленного доступа" вы узнаете, как сократить объем передаваемой по Интернету информации.

    Основные стратегии

    Ниже перечислены основные стратегические варианты предоставления удаленного доступа к TFS -серверу:

  • VPN-подключение TFS находится в интрасети. Внешние пользователи подключаются к нему посредством VPN, внутренние - непосредственно.
  • Публикация TFS посредством обратного прокси TFS находится в интрасети. Клиентские запросы из Интернета направляются к нему одним или несколькими обратными прокси, например, ISA Server.
  • Размещение TFS в экстрасети ("сценарий с размещением") Если доступ к TFS нужен только внешним клиентам, его можно разместить в экстрасети, вне пределов действия брандмауэра.
  • Типичные сценарии использования удаленного доступа к TFS таковы:

  • Удаленный офис В этом случае вы наверняка обеспечили удаленным сотрудникам вход в сеть посредством VPN, и потому вам удобно использовать вариант с VPN. Он прост в реализации, обеспечивает уверенную безопасность, открывает удаленный доступ ко всем компонентам TFS и позволяет использовать TFS -прокси для повышения производительности.
  • Разбросанная команда Если вы не предоставили удаленным пользователям доступ VPN или доступ к домену, используйте вариант с обратным прокси. Это решение сложнее в настройке, но оно позволяет удаленным пользователям обращаться к TFS в интрасети без использования VPN.
  • Работа в сообществе Если вы поддерживаете работу группы удаленных пользователей, специально для которых установили TFS, используйте вариант с экстрасетью. Он позволит максимально отделить удаленных пользователей от ресурсов внутренней сети.
  • VPN-подключение

    Архитектура подключения к TFS посредством VPN показана на рис.17.1.

    Этот подход позволяет удаленным командам разработчиков использовать прямое VPN -подключение к TFS во внутренней сети. Если у вас установлен TFS без SP1 или если вам требуется встроенная проверка подлинности Windows, помимо VPN никаких других вариантов у вас и нет. Впрочем, TFS предназначен для работы в низкоскоростных сетях, подобных VPN, и потому в этом варианте обеспечит вполне приемлемую производительность.

    Преимущества

  • Работают все компоненты TFS, включая TFS Proxy.
  • Поддерживается использование встроенной проверки подлинности Windows ; возможно использование существующей инфраструктуры предприятия.
  • Велика вероятность того, что VPN -доступ у вас уже и так настроен.
  • (рис 17.1) Архитектура доступа к TFS посредством VPN

    Недостатки

    В вашей инфраструктуре решение .

    Публикация TFS посредством обратного прокси

    В этом случае вы устанавливаете TFS -сервер во внутренней сети и используете возможность веб-публикации в ISA Server для предоставления доступа к нему из внешней сети. Удаленные пользователи обращаются к TFS посредством SSL и используют обычную проверку подлинности. Чтобы воспользоваться этим вариантом, вы должны установить TFS SP1.

    Сети без контроллера домена в периметре

    На рис.17.2 показана архитектура предоставления доступа к TFS посредством ISA для случая, когда контроллер домена находится во внутренней сети.

    (рис 17.2) Доступ к TFS посредством ISA, контроллер домена расположен во внутренней сети

    Если в сети периметра нет контроллера домена, откройте на брандмауэре порт, через который внешние пользователи TFS могли посредством протокола LDAP (Lightweight Directory Access Protocol) подключаться к внутреннему контроллеру домена через ISA Server для проверки подлинности.

    Сеть с контроллером домена в периметре

    На рис.17.3 показана архитектура предоставления доступа к TFS посредством ISA для случая, когда контроллер домена находится в сети периметра.

    (рис 17.3) Доступ к TFS посредством ISA, контроллер домена расположен в сети периметра

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

    Преимущества

  • Обратные прокси, наподобие ISA Server, проверяют не только подлинность пользователей, но и трафик.
  • Удаленным пользователям не нужен доступ к домену.
  • Удаленным пользователям не нужен доступ к VPN.
  • Недостатки

  • В удаленных филиалах нельзя использовать TFS Proxy
  • Удаленным пользователям не разрешено добавлять пользователей в группы TFS.
  • Удаленным пользователям не разрешено добавлять группы Microsoft Active Directory® в папки системы управления исходным кодом.
  • У удаленных пользователей не будет возможности запускать сборку или управлять ею.
  • Удаленным пользователям нельзя будет создавать новые командные проекты.
  • Удаленным пользователям нельзя будет публиковать в TFS результаты тестирования.
  • Примечание Всегда используйте обычную проверку подлинности в сочетании с SSL. Иначе учетные данные будут передаваться открытым текстом.

    Размещение TFS в экстрасети

    На рис.17.4 показана архитектура размещения TFS в экстрасети.

    (рис 17.4) TFSразмещен в экстрасети

    В этом варианте вся инфраструктура TFS, включая и уровень приложений, и уровень данных, располагается в сети периметра, за пределами внутренней сети. Все подключения к TFS - и от внешних, и от внутренних пользователей - производятся из Интернета. TFS способен работать как с контроллером домена ( domain controller, DC ), так и без него. Если из сети периметра доступа к DC нет, функции TFS, связанные с Active Directory, работать не будут. Например, в такой ситуации нельзя будет добавлять пользователей в группы TFS или добавлять группы Active Directory в папки системы управления исходным кодом.

    Преимущества

  • Пользователи TFS четко отделены от внутренней сети.
  • Удаленным пользователям не нужен доступ к домену.
  • Недостатки

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

    Обычная проверка подлинности и SSL

    Если вы установили TFS SP1 и хотите воспользоваться сценарием развертывания TFS в экстрасети или с использованием обратного прокси, вам придется разрешить обычную проверку подлинности при помощи SSL, соответствующим образом настроив IIS на уровне приложений TFS. При использовании обычной проверки подлинности учетные данные передают по Интернету в незащищенной кодировке Base64. Чтобы защитить учетные данные, применяйте обычную проверку подлинности только по подключениям HTTPS, в которых используется SSL.

    Настройте фильтр Internet Server API (ISAPI) так, чтобы удаленные клиенты подключались при помощи обычной проверки подлинности с SSL, а локальным клиентам разрешалась бы встроенная проверка подлинности Windows. Фильтр ISAPI выделяет клиентов, которых вы настроили как " external/Internet ", и удаляет проверку подлинности NTLM по отклику 401, чтобы заставить эти клиенты использовать другие методы проверки подлинности, например, обычную.

    Дополнительная информация

    Подробнее о настройке .

    Подробнее о настройке .

    Более подробную информацию об ISAPI -фильтрах для TFS вы найдете в публикации "The TFS extranet ISAPI filter mechanics" из блога Джеймса Мэннингса (James Manning) по адресу " type="url" />http://blogs.msdn.com/jmanning/ar-chive/2006/10/27/the-tfs-quot-extranet-quot-isapi-filter-mechanics.aspx" type="url" />.

    Team Foundation Server Proxy

    На рис.17.5 показана архитектура использования Team Foundation Server Proxy.

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

    Чтобы повысить производительность удаленного филиала, подключающегося к TFS через VPN, установите там TFS Proxy Вообще, для обеспечения удаленного доступа TFS Proxy не требуется, но удобен в качестве кеша для файлов системы управления исходным кодом. Когда удаленному клиенту понадобится файл исходного кода из хранилища, он сначала запросит его в TFS Proxy Если в прокси имеется локальная версия, возвращена клиенту будет она. Если локальной версии в кеше нет, прокси запросит исходный код у удаленного TFS -сервера. Это позволяет сократить сетевой трафик и ускорить работу с исходным кодом в удаленном филиале.

    Советы по повышению производительности прокси

    Настраивая прокси, учитывайте следующие соображения:

  • Убедитесь, что кеширование включено, и следите за производительностью кеша. Вообще, регулярно просматривайте счетчики производительности (устанавливаемые по умолчанию) и журналы событий (на предмет наличия ошибок и предупреждений) прокси-сервера. TFS Proxy сохраняет информацию о производительности кеша в XML -файле ProxySta-tistics.xml, который находится в папке App_Data установочной папки прокси. Интервал сохранения информации можно изменить.
  • Запускайте по расписанию задачу переноса на прокси-сервер последних версий файлов. Это гарантирует, что в кеше прокси всегда хранятся наиболее актуальные версии и что последующие запросы клиентов можно будет удовлетворить из кеша.
  • Если вы заранее знаете о готовящейся передаче больших файлов по медленной сети ( < 3 Мбит/с ), присвойте соответствующее значение параметру executionTimeout в файле Web.config. Значение по умолчанию равно одному часу - <httpRuntime executionTimeout="3600"/>.
  • Если вы собираете отключить прокси на длительный срок, отключите его использование на клиентах, чтобы избежать безрезультатных соединений. По умолчанию попытки подключения осуществляются каждые 5 минут.
  • Чтобы предотвратить ненужную передачу файлов и запретить просмотр определенных рабочих областей, сделайте их скрытыми ( cloaked ). Это сокращает сетевой трафик и экономит локальное дисковое пространство, поскольку предотвращает копирование в локальную рабочую область файлов и папок, которые вам в данный момент не нужны. Скрыть можно и существующее сопоставление папок в рабочей области, однако лучше создать для сокрытия специальное сопоставление.
  • Более подробную информацию вы найдете в разделе "Распределенная и удаленная разработка" части "Руководство по управлению исходным кодом".

    Зеркальные учетные записи

    Работа TFS Proxy в удаленных офисах поддерживается только при использовании подключения VPN. Однако в небольших удаленных группах это возможно и при развертывании TFS в экстрасети или при помощи обратного прокси. Для этого вам понадобятся зеркальные учетные записи ( mirrored accounts ).

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

    Дополнительная информация

  • Подробную информацию о .
  • Подробную информацию об управлении .
  • Подробную информацию о диагностике .
  • Удаленный сервер сборки

    На рис.17.6 показана архитектура использования удаленного сервера сборки.

    (рис 17.6) Архитектура удаленного сервера сборки

    Чтобы повысить эффективность работы удаленной команды, настройте в удаленном офисе собственный сервер сборки. Если там установлен TFS Proxy сервер будет действовать подобно любому другому клиенту системы управления исходным кодом, перед каждой сборкой запрашивая исходный код у прокси. У удаленного сервера сборки есть следующие преимущества:

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

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

    Резюме

    Если вы используете TFS без SP1, для удаленного доступа вам доступно только VPN -подключение. При установленном TFS SP1 вы можете развернуть TFS в экстрасети или при помощи обратного прокси, используя обычную проверку подлинности с SSL.

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

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

  • Подробную информацию о настройке удаленного доступа к .
  • Подробную информацию об использовании .
  • Подробную информацию об использовании обычной и краткой проверки подлинности в .
  • Подробную информацию о .
  • Подробную информацию об управлении .
  • Подробную информацию о диагностике .
  • Подробную информацию о проверке производительности .
  • Вернуться к учебному плану