воскресенье, 20 марта 2011 г.

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

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

     

     Пользователи TFS работают с уровнем приложений с помощью различных Веб-сервисов. Уровень приложений использует уровень данных для доступа к базам данных (хранилища исходных кодов, хранилища данных, данные о сборке).
    Сейчас рассмотрим каждый уровень TFS подробнее:

       Клиентский уровень состоит из объектной модели (API для взаимодействия с TFS, например Team Explorer), компонентов Visual Studio Industry Partners (настройки и языки программирования для Visual Studio от сторонних производителей), интеграции с Microsoft Office (удобное ведение отчетов), инфраструктуры политик изменений файлов (механизм проверок исходного кода при изменении файлов).

       Уровень приложений состоит из Веб-сервисов, с которыми взаимодействует клиентский уровень. Они разделяются на сервисы обработки данных (Team Foundation Data Services) и сервисы интегрирования (Team Foundation Integration Services).
    Сервисы обработки данных обеспечивают взаимодействие с уровнем данных. Они включают в себя сервис контроля версий, для взаимодействия с базой данных исходного кода, сервис отслеживания рабочих элементов, для создания и обновления рабочих элементов и сервис сборки, для выполнения процессов сборки (MSBuild).

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

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

       В завершении статьи хотелось бы сказать, что уровень приложений и уровень данных могут находиться как на одном, так и на различных серверах. Это зависит от количества человек в команде. Для небольших команд лучше использовать один сервер. Несколько серверов лучше использовать для больших команд (450 человек и более).

    суббота, 19 февраля 2011 г.

    Немного о TFS

       Прежде всего хотелось бы сказать что для командной разработки программного продукта жизненно необходимо понимать важность системы контроля версий.
      Существует много различных систем и все они по своему хороши и у всех есть свои недостатки.И этот пост посвящен TFS 2010
      Team Foundation Server - это платформа для командной работы от Microsoft, созданная для управления жизненным циклом приложения, позволяющая создавать программное обеспечение высокого уровня.


    Преимущества TFS:
    - Быстрая и удобная установка(TFS 2010)
    - Интеграция с Visual Studio
    - Bug Tracking
    - Система автоматизации сборок
    - Удобный  merge кода
    - Поддержка клиентов на различных платформах
    - Поддержка автоматического тестирования
    - Построение отчетов на основе SQL Server Reporting Services
    - Создание Share Point - сайта для проекта, который может использоваться для отслеживания прогресса продукта

    Недостатки TFS:
    - Высокая стоимость


    Управление проектом:
     - Поддержка различных методологий разработки программного обеспечения(Microsoft Solutions Framework)
     - Настройка рабочего процесса под себя(exel-отчеты, использование реляционного хранилища)
     - Простота использования(развитые панели управления, поддержка Microsoft Office SharePoint Server и Web parts)
     -  Трассировка(позволяет в реальном времени записывать информацию о выполнении приложения)
     - Масштабируемость

    ПользователиЦПЖесткий дискПамятьЗаметки
    Менее 20Одноядерный процессор, 2.2 ГГц8 Гб2 ГбTFS/SQL на одном сервере
    От 20 до 250Одноядерный процессор, 3.6 ГГц230 Гб2 ГбВыделенный сервер
    От 250 до 450Двухядерный процессор, 2.8 ГГц500 Гб4 ГбВыделенный сервер
    От 450 до 2,200Двухядерный процессор, 2.8 ГГц31/136* Гб4 ГбБолее одного сервера
    Более 2,200Четырех ядерный процессор, 2.2 ГГц31/136* Гб4 ГбБолее одного сервера

    Подведем итог:
      Если вам необходима не просто система контроля версий, а полный контроль над жизненным циклом проекта, то Team Foundation Server - это лучший выбор!