Team Foundation Server
Team Foundation Server (TFS) — это интегрированная платформа для управления жизненным циклом приложений (ALM), разработанная корпорацией Microsoft. TFS предоставляет набор инструментов для совместной работы команды разработчиков, включая управление исходным кодом, отслеживание рабочих элементов (задач, ошибок, требований), автоматизацию сборки и тестирования, а также выпуск релизов. Система предназначена для использования в проектах любого масштаба, от небольших команд до крупных корпоративных организаций, и тесно интегрируется с другими продуктами Microsoft, такими как Visual Studio и Azure DevOps. Первая версия TFS была выпущена в 2005 году. В 2018 году Microsoft объявила о замене TFS на Azure DevOps Server — облачную и локальную версию платформы, которая сохранила и расширила функциональность предшественника.
История
Предпосылки создания
До появления TFS разработчики Microsoft использовали Visual SourceSafe (VSS) для управления версиями. VSS был простым в использовании, но имел серьёзные ограничения: он не поддерживал параллельную разработку, не имел встроенных средств автоматизации и плохо масштабировался. С ростом сложности проектов и переходом на распределённые команды потребовалась более мощная и надёжная система. В 2003 году Microsoft начала разработку нового продукта, который должен был объединить управление исходным кодом, отслеживание рабочих элементов и автоматизацию сборки.
Первые версии (2005–2010)
Первая версия, TFS 2005, была выпущена в марте 2006 года (после задержек). Она поддерживала централизованное управление версиями (с возможностью ветвления и слияния), систему отслеживания рабочих элементов на базе SQL Server, а также интеграцию с Visual Studio 2005. В 2007 году вышла TFS 2008, которая добавила поддержку непрерывной интеграции, улучшенную отчётность и возможность работы с несколькими проектами.
Развитие и расширение (2010–2015)
TFS 2010 (апрель 2010 года) стала важным этапом: была введена поддержка гибких методологий разработки (Agile, Scrum), улучшен интерфейс работы с рабочими элементами, а также добавлена возможность автоматического развёртывания сборок. В TFS 2012 (сентябрь 2012 года) появилась поддержка Git — распределённой системы управления версиями, что сделало TFS привлекательным для команд, использующих Git. Версия TFS 2013 (ноябрь 2013 года) принесла улучшенную интеграцию с облачными сервисами Microsoft, а также возможность использования TFS через веб-интерфейс.
Переход к Azure DevOps (2015–2019)
В TFS 2015 (август 2015 года) была впервые представлена система сборки на основе агентов (Build vNext), которая заменила устаревшую XAML-архитектуру. В 2018 году Microsoft анонсировала Azure DevOps — облачную версию платформы, а также Azure DevOps Server — локальную версию, которая стала преемником TFS. Последней версией TFS стала TFS 2018 (ноябрь 2017 года). После этого Microsoft прекратила выпуск новых версий TFS, сосредоточившись на Azure DevOps Server, который сохранил совместимость с TFS и добавил новые функции, такие как конвейеры YAML и улучшенное управление артефактами.
Архитектура и компоненты
TFS состоит из нескольких ключевых компонентов, работающих на стороне сервера и клиента.
Серверная часть
- SQL Server — центральное хранилище всех данных TFS: исходного кода, рабочих элементов, отчётов, метаданных. Для работы TFS требуется экземпляр Microsoft SQL Server (локальный или удалённый).
- Службы TFS — набор веб-сервисов, которые обеспечивают взаимодействие между клиентами и базой данных. Включают службу управления проектами, службу сборки, службу управления версиями и другие.
- Прокси-сервер — опциональный компонент для ускорения работы удалённых команд, который кэширует данные на локальном сервере.
Клиентская часть
- Visual Studio — основная среда разработки, интегрированная с TFS. Разработчики могут выполнять операции управления версиями, просматривать рабочие элементы, запускать сборки и тесты непосредственно из IDE.
- Веб-интерфейс — позволяет управлять проектами, просматривать отчёты, настраивать процессы сборки и выпуска без установки Visual Studio.
- Командная строка (tf.exe) — утилита для автоматизации операций с TFS из скриптов и пакетных файлов.
- Другие клиенты — поддержка Eclipse, IntelliJ IDEA (через плагины), а также мобильные приложения для просмотра статуса проектов.
Система управления версиями
TFS поддерживает два типа систем управления версиями:
- TFVC (Team Foundation Version Control) — централизованная система, где весь код хранится на сервере. Разработчики получают локальные копии (workspaces) и отправляют изменения на сервер.
- Git — распределённая система, где каждый разработчик имеет полную копию репозитория. TFS поддерживает Git с версии 2012, включая работу с ветками, слияниями и запросами на включение (pull requests).
Ключевые возможности
Управление рабочими элементами
TFS предоставляет гибкую систему для отслеживания задач, ошибок, требований, тестов и других артефактов. Рабочие элементы могут быть настроены под конкретные методологии разработки (Agile, Scrum, CMMI). Каждый элемент имеет поля (заголовок, описание, статус, приоритет, исполнитель), может быть связан с другими элементами и с кодом. Система поддерживает иерархию: требования могут декомпозироваться на задачи, а задачи — на подзадачи.
Автоматизация сборки и тестирования
TFS включает в себя систему непрерывной интеграции (CI). Разработчики могут настроить автоматическую сборку проекта при каждом изменении кода, а также запуск юнит-тестов, интеграционных тестов и статического анализа кода. Результаты сборки (успех/неудача, артефакты, логи) сохраняются и доступны для просмотра. В TFS 2015 была введена система сборки на основе агентов, которая позволяет выполнять сборки на выделенных серверах или в облаке.
Управление выпусками
Система управления выпусками (Release Management) позволяет автоматизировать развёртывание приложений на различные среды (тестовую, стейджинг, продакшн). Поддерживается развёртывание на локальные серверы, облачные платформы (Azure, AWS) и контейнеры (Docker). Процесс выпуска может включать несколько этапов с ручным утверждением на каждом этапе.
Отчётность и аналитика
TFS интегрируется с SQL Server Reporting Services (SSRS) и Power BI, предоставляя готовые отчёты по состоянию проектов: скорость команды, количество ошибок, время выполнения задач, качество кода. Отчёты могут быть настроены под конкретные метрики и KPIs.
Интеграция с другими инструментами
TFS поддерживает интеграцию с популярными инструментами разработки и управления:
- Azure DevOps — облачная версия, которая может синхронизироваться с локальным TFS.
- GitHub — возможность связывать коммиты и запросы на включение с рабочими элементами TFS.
- Jira — через сторонние коннекторы.
- Slack, Microsoft Teams — уведомления о событиях в TFS.
Применение
TFS используется в различных отраслях для управления проектами разработки программного обеспечения. Основные сценарии применения:
- Корпоративная разработка — крупные компании (например, в России — Сбербанк, Ростелеком, Газпром нефть) используют TFS для централизованного управления проектами, контроля версий и автоматизации сборок.
- Аутсорсинг и аутстаффинг — TFS позволяет организовать работу распределённых команд, обеспечивая прозрачность и контроль над процессом.
- Разработка встроенного ПО — поддержка TFVC и Git, а также возможность настройки сборок под различные платформы (Windows, Linux, iOS, Android).
- Государственные и оборонные проекты — TFS может быть развёрнут в изолированной среде (on-premises), что соответствует требованиям безопасности и конфиденциальности.
Преимущества и недостатки
Преимущества
- Глубокая интеграция с экосистемой Microsoft — Visual Studio, Azure, Office 365, Active Directory.
- Гибкость — поддержка централизованного и распределённого управления версиями, настройка процессов под любые методологии.
- Масштабируемость — поддержка проектов с тысячами разработчиков и миллионами файлов.
- Безопасность — разграничение прав доступа на уровне проектов, репозиториев и рабочих элементов, поддержка аудита.
- Локальное развёртывание — полный контроль над данными, что важно для организаций с высокими требованиями к безопасности.
Недостатки
- Сложность настройки и администрирования — требует квалифицированного персонала и ресурсов (SQL Server, серверное оборудование).
- Привязка к платформе Windows — серверная часть TFS работает только на Windows Server, хотя клиенты доступны для macOS и Linux.
- Стоимость — лицензирование TFS (Server CAL) может быть дорогим для крупных организаций.
- Устаревание — с 2019 года Microsoft не выпускает новые версии TFS, переведя пользователей на Azure DevOps Server.
Сравнение с аналогами
| Характеристика | TFS / Azure DevOps Server | GitLab | Jenkins | Atlassian Jira + Bitbucket |
|---|---|---|---|---|
| Управление версиями | TFVC, Git | Git | Git (через плагины) | Git |
| CI/CD | Встроенная | Встроенная (GitLab CI) | Внешняя (плагины) | Внешняя (Bamboo, Jenkins) |
| Отслеживание задач | Встроенное | Встроенное | Нет | Встроенное (Jira) |
| Развёртывание | Локальное, облачное | Облачное, локальное | Локальное | Облачное, локальное |
| Интеграция с Microsoft | Полная | Ограниченная | Ограниченная | Ограниченная |
| Стоимость | Высокая (лицензии) | Бесплатно (Community), платно (Enterprise) | Бесплатно | Платно (Jira + Bitbucket) |
Интересные факты
- TFS изначально разрабатывался под кодовым названием «Rosario» (по названию города в Аргентине).
- В 2011 году Microsoft открыла исходный код некоторых компонентов TFS, включая клиентскую библиотеку для Git.
- TFS поддерживает до 1000 проектов на одном сервере и до 10 000 пользователей.
- В России TFS активно использовался в государственных информационных системах, включая систему «Электронный бюджет» и портал «Госуслуги».
Источники
- Microsoft Docs: Team Foundation Server documentation (2018)
- «Team Foundation Server 2015: The Complete Guide» by Michael H. Smith
- «Профессиональная разработка с Team Foundation Server» (русский перевод, 2016)
- Статья «История Team Foundation Server» на Habr.com (2019)
- Официальный блог Microsoft DevOps (2018)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →