НОУ ІНТУІТ, Лекція, Архітектура Team Foundation Server
У цій лекції ви познайомитеся з архітектурою TFS та основними топологіями розробки. Логічно TFS має трирівневу архітектуру, що складається з клієнтського рівня (client tier), рівня додатків (application tier) і рівня даних (data tier). Клієнти TFS взаємодіють із рівнем програм за допомогою різних веб-служб. Рівень програм користується різними базами даних Microsoft SQL Server лише на рівні даних.
Ви можете встановити рівень додатків та рівень даних як на одному фізичному сервері, так і на різних серверах. Здебільшого вибір визначається розміром групи. Односерверне розгортання доречніше у групах, що налічують менше 50 членів, хоча досить потужний сервер здатний підтримувати і до 400 користувачів. Багатосерверне розгортання дозволяє збільшити кількість користувачів до 2000 року.
З цієї лекції ви дізнаєтеся про основні компоненти TFS і про їх взаємодію один з одним, а також про призначення кожного з цих компонентів і про те, як зазвичай їх розгортання .
Якщо ви не знайомі з TFS, спочатку прочитайте лекцію 1. У ній описано, як групи розробників та тестувальників взаємодіють з TFS, щоб спростити співпрацю та підвищити ефективність розробки програмного забезпечення.
Архітектура Team Foundation Server
У TFS використана логічна трирівнева архітектура, що поділяється на рівень клієнта, а також рівнідодатків та даних. Клієнти TFS взаємодіють із рівнем програм за допомогою різних веб-служб. У свою чергу рівень додатків підтримується різними базами даних на рівні даних. Компоненти рівня TFS та їх взаємодія проілюстровані на рис.2.1.

Клієнтський рівень
Клієнтський рівень складається з наступних компонентів:
- Об'єктна модель Team Foundation ServerВідкритий інтерфейс API для взаємодії з TFS, використовується для створення клієнтських програм, що обмінюються даними з TFS.
- компоненти Visual Studio Industry Partners (VSIP)Інструменти сторонніх постачальників, надбудови та мови для використання у Visual Studio
- Інтеграція з Microsoft OfficeНабір додаткових компонентів для Microsoft Office Excel і Microsoft Office Project , що дозволяють вимагати та оновлювати робочі елементи в базі даних TFS Work Item Tracking . Особливо корисний для менеджерів проекту, які вже широко використовують ці інструменти.
- Інструменти командного рядкаІнструменти, що дозволяють взаємодіяти з TFS з командного рядка. В основному використовуються для роботи з функціями контролю якості вихідного коду, також корисні для автоматизації процесів, що повторюються, і при плануванні завдань.
- Політики повернення після редагування (check-in policy)Розширюваний механізм перевірки коду в процесі повернення після редагування.
Рівень додатків
На рівні програм клієнтського рівня надається доступ до веб-служб ASP.NET. Використання цих веб-служб в інтеграторах від незалежних розробників не передбачається; тут вони наведені лише для повноти картини. Служби згруповані у наступні колекції:
- Team Foundation Data Services;
- Team Foundation Integration Services.
Служби даних Team Foundation
Ці веб-служби відповідають насамперед за операції з даними на рівні даних. До них належать такі веб-служби:
- Version ControlВикористовується на клієнтському рівні для виконання різних функційTFS контролю якості вихідного коду та для взаємодії з БД контролю якості вихідного коду.
- Work Item TrackingВикористовується на клієнтському рівні для створення, оновлення та направлення запитів до робочих елементів у БД Work Item Tracking .
- Team Foundation BuildВикористовується на клієнтському рівні та в оболонці MSBuild для виконання процесу складання.
Служби інтеграції Team Foundation
Ці веб-служби забезпечують функціональні можливості інтеграції та автоматизації та не взаємодіють з рівнем даних. До них належать такі веб-служби:
Рівень даних
Прямий доступ із клієнтських програм до даних, що зберігаються на рівні даних, у TFS не підтримується. Всі запити до даних повинні здійснюватись через веб-служби на рівні додатків. Рівень даних TFS складається з таких сховищ, які відповідають службам даних на рівні додатків.
- Відстеження робочих елементівУ цьому сховищі зберігаються всі дані, що стосуються робочих елементів.
- Керування версіямиТут зберігаються всі дані, що стосуються керування вихідним кодом.
- Team Foundation BuildТут зберігається вся інформація, що стосується TFS Team Build .
- Сховище звітівТут зберігається інформація, що стосується всіх інструментів та функцій TFS . Сховище звітів полегшує створення звітів, які поєднують дані від різних інструментів.
Топологія розгортання
Розгортання TFS виконується з використанням різних топологій – від односерверних до складних багатосерверних типологій.
Основні вимоги
Незалежно від топології вам слід пам'ятати про кілька ключових вимог.
- Встановлюйтерівень додатків і рівень даних в одному домені. При цьому вони можуть бути як на одному, так і на різних серверних вузлах.
- TFS інсталюється на комп'ютери під керуванням Microsoft Windows Server 2003 SP1 або пізнішої версії.
- Усі веб-служби рівня програм повинні встановлюватися на одному сервері.
- Встановлюйте один екземпляр TFS на одному комп'ютері.
- Не можна встановити більше одного екземпляра TFS на фізичний сервер.
- Не розподіляйте базу даних TFS між кількома серверами бази даних. Усі проекти повинні бути в одній групі серверів Team Foundation і не можуть бути розподілені за групами.
- Для розміщення порталу проекту не можна використовувати існуючу інфраструктуру Microsoft SharePoint Portal Server. Розгляньте можливість використання спеціалізованого сервера для розміщення на ньому порталів TFS SharePoint.
- Не намагайтеся встановити TFS на контролер домену - це не підтримується.
- Під час розгортання на двох серверах підготуйте облікові записи домену для служб TFS. Наприклад, вам потрібно буде створити облікові записи DOMAIN\TFSSERVICE і DOMAIN\TFSREPORTS .
Розгортання на одному сервері
Розгортання одному сервері - найпростіша топологія, придатна для груп розробників чи пілотних проектів із кількістю користувачів трохи більше 400. У цьому підході всі компоненти рівня додатків і даних встановлюються однією сервер і доступом до них здійснюється у межах одного домену.
Якщо вам потрібно встановити компоненти випробувального стенду для перевірки продуктивності, встановіть їх на серверному вузлі або одному або кількох клієнтах. На рис.2.2 показано топологію з одним сервером.

Розгортання на окремих серверах
Топологія розгортання багатосерверів використовується у великих групах розробників, що налічують до 2000 користувачів. У цій топології рівень додатків встановлюється окремо від рівня даних.
Ви можете встановити служби Team Foundation Build Services на рівень додатків, однак у великих групах рекомендується виділяти один або кілька спеціальних серверів для складання. Якщо проект потребує перевірки продуктивності, розгорніть випробувальний стенд (контролер та агенти) на додаткових серверних вузлах. На рис.2.3 показано багатосерверну топологію.

Архітектура Team Foundation Server розділена на три рівні: клієнтський, додатків та даних.
- На клієнтському рівні знаходяться компоненти клієнта, наприклад, Team Explorer у Visual Studio 2005, інтеграція з Microsoft Office та інструменти командного рядка.
- На рівні програм містяться, наприклад, служби керування версіями Team Foundation , служби відстеження робочих елементів та служби збирання.
- На рівні даних містяться БД для зберігання даних, необхідні для відстеження робочих елементів, управління версіями, групового складання та організації сховища звітів.
У продукті TFS підтримуються односерверна та багатосерверна топологія розгортання. У першому випадку рівень додатків та рівень даних встановлюються на одній машині. Односерверне розгортання виправдане для невеликих груп або під час пілотних проектів. При роздільному розгортанні рівень додатків та рівень даних встановлюються на окремих серверах. Багатосерверне розгортання корисне у великих групах із великою кількістю користувачів.