Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемwww.addconf.ru
1 1 Jabber как инструмент разработчика Continuous Integration по протоколу XMPP Стрелков Виктор, руководитель отдела исследований и контроля качества
2 2 Немного о нас Positive Technologies - одна из ведущих российских компаний в области информационной безопасности Сегодня более 250 сотрудников занято в разработке:- сканера безопасности XSpider- системы контроля защищенности MaxPatrolНам 10 лет. Мы выросли в 4 раза за последние 2 года. Анализирует безопасность продуктов крупнейших софтверных вендоров (Cisco, Citrix и др.)
3 3 Форум Positive Hack Days участников (ожидается) 6 потоков 10 семинаров 8 соревнований Состязание CTF Главный гость - Брюс Шнайер Партнеры форума:
4 4 Как мы помогаем пользователям SurfPatrol.ru Информирует о состоянии защищенности ПК Уведомляет о необходимости обновления и помогает с обновлением Рассказывает об опасностях в киберпространстве
5 5 Как получить полную информацию о проекте? CI Built? Deployed? Compiled? Tested? Docs? CI – ответ на все вопросы
6 6 Непрерывная интеграция – очевидная необходимость Наличие организованного CI позволяет: Обнаружить ошибки на ранней стадии Сократить затраты на выполнение регулярных активностей Контролировать состояние проекта Многое другое…
7 7 Что включает в себя CI Выполнение сборки Запуск тестов Выпуск документации Развертывание (подготовка) Уведомление Типовые стадии непрерывной интеграции
8 8 Стоявшие перед нами ограничения Максимально сократить время простаивания задачи любого рода в очереди Наши проекты имеют большое количество разных конфигураций, запуск задачи для новой конфигурации должен быть легким и зависеть от как можно меньшего количества дополнительных действий Сигналом для задачи являлось внешнее событие Существовали внешние приложения, которые должны были реагировать на результат выполнения той или иной задачи Негативные воздействия на весь процесс разработки от падения сервера или несобираемого билда должны быть минимальны
9 9 Выбор своего пути Чего хотелось Распределяемость ресурсов Легкая интеграция с внешним миром Масштабируемость Что предлагали Общие машинные ресурсы Изолированность от окружения Централизованное управление
10 10 Проблема – сервер занят Выполнение длительных операций на сервере CI заставляет ждать других участников процесса
11 11 Проблема – связь с внешним миром Интеграция элементов другой системы с all-in-one CI сервером может стать проблемой
12 12 Проблема – необходимость гибкого управления Под гибким управлением мы понимали: Сборку любой ветки любой конфигурации Запуск любых автотестов над любой сборкой Возможность опубликовать любую сборку, прошедшую любой набор тестов И любая активность инициируется любым участником!
13 13 Решение – распределенный CI по XMPP
14 14 Как это работает: общий вид j j BUILD SERVER DEV TEAM TEST SERVER TEST TEAM DEPLOY SERVER Hudson + jabber plugin Типовой серверный модуль Приложение/скрипт + jabber-net.dll Типовое место пользователя Любой IM + jabber- плагин Бонус Можно интегрировать в систему любой готовый CI с поддержкой jabber
15 15 Как это работает: в частности Any-server.exe/.py Jabber-net.dll Config.xml Входящие сообщения Обработчик и Исходящие сообщения Шаблон серверного модуля
16 16 Старт процесса Developer (Miranda + jabber plugin) build /trunk /fulltest /deploy Build Server (msbuild + jabber- net.dll) Разработчик инициирует полный цикл, посылая запрос на сервер сборки
17 17 Переход к тестам Build Server (msbuild + jabber- net.dll) fulltest XXXX /deploy Test Server (python scripts + jabber-net.dll) build XXXX - OK В случае успеха, после сборки управление передается на тест- сервер
18 18 Переход к развертыванию Test Server (python scripts + jabber-net.dll) deploy XXXX Deploy Server (msi compiler + jabber-net.dll) full tests for XXXX - OK После успешного прогона тестов управление передается на сервер развертывания
19 19 Завершение цикла Deploy Server (msi compiler + jabber-net.dll) Deploy XXXX is OK Release Manager (Miranda + jabber plugin) Deploy XXXX is OK При завершении цикла оповещаются запустивший процесс + список обязательных заинтересованных лиц
20 20 Процесс переменной длины Test manager (Miranda + jabber plugin) /bvt XXXX Test Server (python scripts + jabber-net.dll) Далеко не всегда оправданно запускать полный цикл. Developer (Miranda + jabber plugin) /build trunk Build Server (msbuild + jabber- net.dll) bvt tests for XXXX - OK Build XXXX - OK
21 21 Множество вариантов Таким образом сравнительно небольшим количеством параметров описывается все многообразие требуемых действий над множеством конфигураций Примеры наборов команд:build /trunk /testbuild /21.r.3.SAP /nightly /deploytest /rc /fulldeploy /release
22 22 Не увлекайтесь смайликами
23 23 Дополнительные плюсы в итоге Легкое конфигурирование Связь между модулями, нет центра Достаточно подключить jabber и добавиться в ростер Разделяемость ресурсов Независимость серверов друг от друга Отказоустойчивость Унифицированный способ общения Человек и бот – общий язык
24 24 Все имеет цену Минусы подхода: Потребность в машинных ресурсах Внедрение/разработка займет время Отсутствие части функционала готовых решений
25 25 С чего начать? Шаги к внедрению: Поднять Jabber-сервер + IM Определить роли, аккаунты, добавить в ростер Описать набор команд Написать типовой скрипт/приложение и/или выбрать готовый CI с поддержкой джаббера Погонять каждый модуль в автономном режиме Запустить в комплексе
26 26 Спасибо за внимание! Вопросы? facebook.com/vsstrelkov Все иллюстрации, использованные в данной презентации, принадлежат их уважаемым владельцам. В случае, если вы являетесь их правообладателем и против размещения этих иллюстраций–напишите, пожалуйста, письмо по адресу и я уберу их из слайдов.
Еще похожие презентации в нашем архиве:
© 2023 MyShared Inc.
All rights reserved.