В этой лекции рассказывается, как настраивать непрерывную интеграцию при помощи Team Build и Microsoft Visual Studio Team Foundation Server (TFS) . Непрерывная интеграция используется для оперативного получения информации о качестве сборки немедленно после возврата исправленного кода в систему. При командной разработке оперативность очень важна, особенно если исправления объединяются с изменениями, внесенными другими разработчиками, и приводят к сбою в сборке. Непрерывная интеграция позволяет быстро исправлять код, не мешая работе других членов команды. Тем самым повышаются качество и согласованность сборки.
По умолчанию Team Foundation Server не поддерживает непрерывную интеграцию. Однако ее можно добавить при помощи расширений Microsoft.
Основные сведения о возможностях автоматизации и планового выполнения сборок приводятся в лекции 7.
Непрерывная интеграция (continuous integration) - процесс создания сборок при каждом возврате кода в систему управления исходным кодом.
Перечислим различные стратегии непрерывной интеграции:
Выполнение сборки после каждого возврата кода - простейшая стратегия непрерывной интеграции, позволяющая получать информацию о качестве кода наиболее оперативным способом. Однако, если возвраты происходят слишком часто и сервер сборки не успевает их обрабатывать, следует использовать другой подход, при котором сборка выполняется после определенного числа возвратов или по истечении определенного периода времени. Чтобы принять обоснованное решение, определите следующие параметры:
Если время, необходимое для выполнения сборки, превышает среднее время между возвратами, сборки начнут выстраиваться в очередь, поскольку одна сборка еще не будет выполнена, когда произойдет возврат, инициирующий выполнение следующей сборки. Чрезмерная длина очереди сборок может повлиять на производительность сервера и заблокировать начало других сборок, например, плановых. Выявите временное "окно", во время которого часто выполняются возвраты, и определите, достаточно ли у вас времени, чтобы очередь успела очиститься после окончания периода высокой нагрузки. Подробнее - в разделе "Как настроить непрерывную сборку в Visual Studio Team Foundation Server".
Если в результате создания сборок после каждого возврата сервер оказался перегружен, попробуйте выполнять сборку через определенное число возвратов. Это самый простой сценарий скользящего выполнения сборки, но у него есть серьезный недостаток. Поскольку должно произойти определенное число возвратов, прежде чем сервер выполнит сборку, последний возврат рабочего дня почти гарантированно сборку не инициирует, а значит, информация о качестве кода будет получена с задержкой.
Создание сборок через определенные промежутки времени после возврата - более совершенный способ. Он позволяет гарантированно получить сборку с небольшой задержкой относительно возврата. Учтите, что с каждой сборкой может быть связано разное число возвратов - от одного до нескольких. Чем больше возвратов, тем сложнее определить, который из них вызвал сбой.
Создание сборок по обоим условиям - после определенного числа возвратов или по истечении определенного промежутка времени - позволяет обеспечить максимальную согласованность сборок, по-прежнему не перегружая сервер. Используйте скользящую сборку, если при непрерывной интеграции возникает большая очередь сборок, обработка которой требует много времени. Используйте средний интервал между возвратами, чтобы задать число возвратов, которое должен получить сервер, прежде чем выполнить сборку. Используйте таймаут, чтобы гарантировать выполнение сборки даже в том случае, если получено небольшое число возвратов.
Чтобы определить оптимальный интервал выполнения сборки, разделите среднее время между возвратами на длительность процесса сборки. Допустим, сборка занимает 10 минут, а среднее время между возвратами - 5 минут. Установите выполнение сборки после двух возвратов и таймаут 10 минут. При этом сборка в любом случае завершится к тому времени, когда будет инициирована следующая сборка. Если сервер все равно чрезмерно перегружается, эти значения можно увеличить.
По умолчанию в Team Foundation Server 2005 не включено решение непрерывной интеграции, но в нем имеется среда, позволяющая реализовать такое решение самостоятельно.
Подробнее о настройке непрерывной интеграции в TFS рассказывается в разделе "Как настроить непрерывную сборку в Visual Studio Team Foundation Server ". В качестве примера там используется решение, предоставленное командой разработчиков Visual Studio Team System. Оно устанавливает веб-службу, работающую от имени учетной записи, имеющей доступ к серверу TFS. Сервер TFS способен отправлять сообщения электронной почты или вызывать веб-службу при наступлении определенного события. Предлагаемое решение непрерывной интеграции использует механизм событий для связывания веб-службы с событием CheckinEvent. В результате каждый раз, когда происходит возврат, веб-служба инициирует выполнение сборки.
Используйте непрерывную интеграцию, чтобы выполнять сборку каждый раз, когда разработчик возвращает код в базу данных. Хотя Team Build по умолчанию не предоставляет решения с использованием непрерывной интеграции, можно настроить сборку и реализовать собственное решение.
В зависимости от требований к проекту непрерывная интеграция настраивается различными способами:
Visual Studio Team Foundation Server ".Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.