Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Виктор Стрелков - Jabber как инструмент разработчика

1,472 views

Published on

  • Be the first to comment

Виктор Стрелков - Jabber как инструмент разработчика

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

×