Непрерывная интеграция. Практическое применение

Post on 21-Dec-2014

1.283 views 0 download

description

 

Transcript of Непрерывная интеграция. Практическое применение

1

Непрерывная интеграция.Практическое применение

ДОКЛАДЧИК:

СМИРНОВ СЕРГЕЙ (НАЧ. СЕКТОРА, ОТДЕЛ 22)

s_smirnov@iac.spb.ru

СПб ГУП «СПб ИАЦ», 2013

Клуб разработчиковhttp://devclub.lan.iac.spb.ru

2

ПЛАН

1. Введение в непрерывную интеграцию

2. Практическая задача

3. Инструменты

4. Решение

5. Резюме

3

1. ВВЕДЕНИЕ В НЕПРЕРЫВНУЮ ИНТЕГРАЦИЮ

4

НЕПРЕРЫВНАЯ ИНТЕГРАЦИЯ

Кого/чего с кем/чем?Компонентов разрабатываемого ПО между собой

Для чего?Для контроля за работоспособностью

Когда?При каждом изменении

При помощи чего?Системы контроля версийСценария построенияСервера непрерывной интеграции

5

СХЕМА ИНТЕГРАЦИИ

6

РАЗРАБОТЧИКИ

Локальная проверка изменений перед фиксацией

Частая фиксация изменений

Изменения мелкие и атомарные

Информативные сообщения к каждой фиксации изменений

7

СИСТЕМА КОНТРОЛЯ ВЕРСИЙ

Хранение всех составляющих проекта:

исходные коды приложения и базы данных настройки среды разработки документация тестовые данные конфигурации различных сред развертывания библиотеки, компоненты, зависимости

Уведомление сервера CI о произведенных изменениях

Резервное копирование данных

8

СЕРВЕР CI

Сборка после каждой фиксации изменений

Сборка по расписанию

Каждый тип сборки в виде отдельной задачи

Ведение журнала и истории запусков

Запуск сборки по нажатию одной кнопки

Уведомление разработчиков

Хранение артефактов сборки

Публикация отчетов

9

СЦЕНАРИЙ ПОСТРОЕНИЯКлючевой элемент сборки

Не зависит от среды разработки (IDE)

Состоит из набора целей выполнения:

КомпиляцияИнтеграция БДЗапуск тестов (модульных, интеграционных и

т.д.)Запуска инспекций кодаЗапуск проверок следования соглашениямРазвертываниеПрочее

В качестве параметров получает файлы настроек

10

МЕХАНИЗМ ОБРАТНОЙ СВЯЗИ

Уведомление о неудачных сборках

Главная задача – оповестить и заставить отреагировать

Оповещение виновника в неудаче

Оповещение по e-mail

SMS оповещение

Световая или звуковая сигнализация

11

ПРЕИМУЩЕСТВА CI

Снижение рисков

Уменьшение ручных операций

Наличие развертываемого приложения в

любое время

Обеспечение лучшего контроля

12

CI ИЗБАВЛЯЕТ ОТ:

13

И ЕЩЕ ОТ:

14

ЛИТЕРАТУРА

15

2. ПОСТАНОВКА ЗАДАЧИ

16

ДАНО

Java веб-приложение

Библиотека модульного тестирования – Junit

Среда разработки – NetBeans

Инструмент сборки – Ant

Сервер CI – Hudson

Сервер приложений – Glassfish 3.x

Система контроля версия – Subversion

17

ТРЕБУЕТСЯ

Разработать сценарий построения для:

Сборки проекта Запуска модульных тестов Развертывания приложения на сервер

приложений Glassfish Настроить запуск построения проекта после

коммита

18

3. ИНСТРУМЕНТЫ

19

ANT Java утилита автоматизации сборки ПО

Процесс сборки описывается в XML-сценарии

Сценарий состоит из отдельных целей (Targets).

Цели содержат вызовы команд-заданий (Tasks).

Цели могут зависеть друг от друга 

Примеры целей: clean, compile, test, deploy

Примеры заданий: javac, move, copy, exec, zip

Возможность разработки собственных заданий

Наличие большого количества библиотек

20

NETBEANS

Разработка приложения

Проект содержит базовый ant сценарий построения с точками расширения:

-pre-compile -post-compile -pre-test -post-test и т.д.

Запуск и отладка сценария построения

21

HUDSON CI

Сервер непрерывной интеграции

Веб-интерфейс

Большое количество плагинов

22

SUBVERSION Система контроля версий

Возможность запуска скриптов в ответ на события

Пример запуска построения после коммита

/var/svn_repo/name/hooks/post-commit#!/bin/shREPOS="$1"REV="$2"if svnlook changed --revision $REV $REPOS | egrep …then wget … http://url:8080/.../job/buildfi

23

GLASSFISH Варианты развертывания приложения

Через веб admin console Автодеплой as-install/domains/domain-name/autodeploy Через утилиту asadmin

Варианты автоматического развертывания на удаленном сервере

Вызов локальной утилиты asadmin на машине построения (asadmin enable-secure-admin)

Загрузка war файла на удаленный сервер через scp и последующий запуск утилиты asadmin через sshexec на удаленном сервере

24

3. РЕШЕНИЕ

25

РЕШЕНИЕ

o Инструкции и исходные коды

o svn://devclub.lan.iac.spb.ru/materialso Hudson

o http://devclub.lan.iac.spb.ru:8088/hudsono Презентация и видео

o http://devclub.lan.iac.spb.ru/web/devclub/archive

26

4. РЕЗЮМЕ

27

СПАСИБО ЗА ВНИМАНИЕ!