Заметки консультанта

Шамрай Александр Владимирович

Posts Tagged ‘Proxy’

Когда может понадобиться TFS Proxy?

Posted by Шамрай Александр на Апрель 26, 2009

<< Перейти в раздел «Team Foundation Proxy Server FAQ»

Кеширующий прокси полезен в следующих случаях:

  1. Когда TFS используется в конфигурации с географически разделенными командами и между этими командами каналы связи имеют низкую пропускную способность.
  2. Когда в организации большое количество рабочих мест и сервер приложений перегружен большим количеством запросов. В этом случае можно использовать несколько кеширующих прокси внутри организации и тем самым балансировать и снижать нагрузку на сервер приложений.

Posted in Microsoft, Proxy FAQ, Team Foundation Server FAQ, Visual Studio | Отмечено: , , , , , | Leave a Comment »

Как узнать сколько пользователей не используют TFS Proxy?

Posted by Шамрай Александр на Апрель 26, 2009

<< Перейти в раздел «Team Foundation Proxy Server FAQ»

Когда клиент TFS выполняет операцию «Get Latest», на сервере выполняется три операции:

  1. Инициирующий Get() — сервер определяет, какие файлы необходимо обновить в рабочем пространстве.
  2. Download() — загрузка всех необходимых файлов.
  3. В конце UpdateLocalVersions() — клиент информирует сервер, какие версии и каких файлов находятся в его рабочем пространстве.

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

После того как вы установили кеширущий прокси, возможно вам будет интересно кто его не использует. Вся необходимая информация содержится в базе данных TfsActivityLogging. Т.к. кеширующий прокси работает как сервис NETWORK SERVICE, то для запроса можно  использовать фильтр, в котором необходимо исключить учетную запись компьютера кеширующего прокси (DOMAIN\COMPUTERNAME$):

SELECT
SUM([ExecutionCount]) as DownloadCount, [IdentityName], [IPAddress]
FROM [TfsActivityLogging].[dbo].[tbl_Command]
WITH (NOLOCK)
WHERE Command = ‘Download’
AND IdentityName NOT LIKE ‘%$’
GROUP BY IPAddress, IdentityName
ORDER BY SUM([ExecutionCount]) DESC

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

  1. Пользователь не использует кеширующий прокси.
  2. Пользователь использует кеширующий прокси, но прокси-сервер был недоступен и клиент загрузил файлы напрямую с сервера приложений.

Источник: How many users are not using a TFS Proxy server?

Posted in Microsoft, Proxy FAQ, Team Foundation Server FAQ, Visual Studio | Отмечено: , , , , , | Leave a Comment »

Порядок взаимодействия клиента с TFS Proxy

Posted by Шамрай Александр на Апрель 25, 2009

Перевёл небольшую статейку How Team Foundation Server Proxy 2008 works, которая описывает последовательность действий при взаимодействии клиентского рабочего места TFS Proxy.

Взаимодействие

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

  1. Клиент проходит аутентификацию на сервере.
    1. Сервер обрывает подключение, если аутентификация не прошла. Выход.
  2. Клиент посылает запрос на получение файла на сервер.
  3. Сервер проверяет права на чтение клиента к файлу.
    1. Сервер отвечает «file does not exist», если клиент не имеет прав на чтение к файлу. Выход.
  4. Сервер посылает ответ на загрузку файла клиенту.
  5. Клиент передает полученный ответ кеширующему прокси и ожидает файл.
    1. Если кеширующий прокси не возвращает файл через определенный промежуток времени, клиент использует полученный ответ, чтоб получить файл напрямую с сервера. Выход.
  6. Кешируюший прокси проверяет наличие файла в кеше.
    1. Если файл уже существует в кеше, то кеширующий прокси возвращает его клиенту.
  7. Кеширующий прокси с помощью сервисной учетной записи проходит аутентификацию на сервере.
    1. Сервер обрывает соединение, если аутентификация не проходит. Кеширующий прокси сообщает клиенту об ошибке, и клиент пытается получить файл напрямую с сервера. Выход.
  8. Кешируюший прокси запрашивает размещение сервисов версионного контроля.
  9. Сервер проверяет наличие прав на чтение серверной информации учетной записи кеширующего прокси.
    1. Сервер обрывает соединение, если таковые права отмутствуют. Кеширующий прокси сообщает клиенту об ошибке, и клиент пытается получить файл напрямую с сервера. Выход.
  10. Сервер передает ответ кеширующему прокси о размещении сервисов версионного контроля.
  11. Кеширующий прокси скачивает файл, используя информацию клиента полученную на шаге 5.
  12. Кеширующий прокси сохраняет файл в локальном кеше.
  13. Кеширующий прокси возвращает файл клиенту. Выход.

Примечания

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

Другими словами

  1. Кеширующий прокси и сервер связаны на серверном уровне, а не на уровне проектов.
  2. Кеширующий прокси действует не вместо сервера, а  используется только для кеширования файлов.
  3. Учетную запись для кеширующего прокси можно просто добавить в группу доступа серверного уровня, например «[Server]\Proxy Service Accounts», без всяких дополнительных конфигураций безопасности. Это фактически обеспечивает доступ на чтение учетной записи к серверной информации.
    1. Можно добавить учетную запись в группу администраторов, в группу сервисов сервера или проектную группу, что тоже обеспечит доступ у серверной информации. Но этот метод не рекомендуется, т.к. обеспечивает учетной записи больше прав, чем необходимо.

Posted in Microsoft, Proxy, Team Foundation Server, Visual Studio | Отмечено: , , , | Leave a Comment »

 
%d такие блоггеры, как: