Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SPb Jenkins Meetup #0 - Who is Mr. Jenkins?

SPb Jenkins Meetup #0 - Who is Mr. Jenkins?

Мой доклад с St. Petersburg Jenkins Meetup #0. http://www.meetup.com/St-Petersburg-Jenkins-Meetup/events/226875933/

Презентация посвящена текущему состоянию проекта Jenkins, проблемам его использования и основным трендам развития.

English version: https://speakerdeck.com/onenashev/who-is-mr-jenkins-english-version

568e3391c8b528f2b255443e4cca27ca?s=128

Oleg Nenashev

December 09, 2015
Tweet

Transcript

  1. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    ©  2015  CloudBees,   Inc.    All  Rights  Reserved Who is Mr. Jenkins? Текущее состояние, проблемы и основные тренды развития Олег Ненашев, CloudBees Inc. St.  Petersburg  Jenkins  Meetup  #0 #jenkins_spb 9  декабря  2015г.
  2. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    > Whoami – Олег Ненашев • Бэкграунд: R&D в HW/Embedded SW • Контрибьютор Jenkins – OSS: Core & Security, плагины • Разработчик в CloudBees – CloudBees Jenkins Platform https://ru.linkedin.com/in/onenashev @oleg_nenashev Twitter: LinkedIn: GitHub:    https://github.com/oleg-­‐nenashev
  3. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    ©  2015  CloudBees,   Inc.    All  Rights  Reserved План доклада 3 • Введение.  Что  такое  Jenkins? • Проблемы  и  правила  использования • Тренды  в  комьюнити • Jenkins  2.0
  4. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Disclaimer • Презентация не является тренингом • Презентация отражает личное мнение докладчика • Личное мнение докладчика может не совпадать с позицией компании 4
  5. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Jenkins 101 5 • 2005  – Появление  Hudson  (Sun) • 2008  – Популяризация,  Duke's  Choice  Award • 2011  – Конфликт  с  Oracle,  форк Jenkins • Лицензия:  MIT  (ядро) • https://github.com/jenkinsci/
  6. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Популярность Jenkins 6 http://stats.jenkins-­‐ci.org/jenkins-­‐stats/ • ~300   коммиттеров за  полгода • ~3  новых   плагина  в   неделю • ~30  релизов   плагинов  в   неделю
  7. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Who is Mr. Jenkins? 7 Jenkins – Система   Непрерывной  Интеграции Фреймворк Автоматизации
  8. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Почему “автоматизации”? 8 Непрерывной  Интеграции Continuous   Integration Continuous   Delivery DevOps Автоматизация   бухучёта Home   Automation CRON  с  WebUI
  9. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Почему “фреймворк”? 9 Система Гибок  и  расширяем Минимален  «из  коробки» Требует  настройки
  10. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    10 Система Инфра-­‐ структура Доку-­‐ мен-­‐ тация Инфра-­‐ структура Конфиги Инфра-­‐ структура Шаб-­‐ лоны Система на базе Jenkins
  11. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Как растёт Jenkins? После установки 11
  12. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Как растёт Jenkins? Рабочая версия 12 Десятки  Проектов Единицы  Нод Единицы  Плагинов Единицы  Юзеров
  13. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Как растёт Jenkins? Популяризация 13 Сотни  Проектов Десятки  Нод Десятки  Плагинов Десятки  Юзеров
  14. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    14 «Crab  Nebula»  участника NASA,  ESA,  J.  Hester  and  A.  Loll  (Arizona  State  University)  -­‐ HubbleSite:  gallery,  release..  Под лицензией Общественное достояниес сайта Викисклада -­‐ https://commons.wikimedia.org/wiki/File:Crab_Nebula.jpg#/media/File:Crab_Nebula.jpg Здесь  был  Jenkins И  тут… Проектам  тоже   досталось
  15. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Почему это происходит? 15
  16. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Правило №0. Проектируйте системы автоматизации как внутренние продукты 16
  17. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    UX 17 Где  найти  документацию? Как  найти/выбрать  плагин? А  этот плагин  вообще  живой? Как  ЭТО  настроить? Почему  мой  фикс  не  смотрят? Куда  смотрит  мэйнтейнер? Почему  UI  неудобен? Как  мне  это  реализовать?
  18. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Кривая обучения 18 Скрипты,  CRON Плагины Advanced-­‐фичи, Свои  плагины
  19. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Масштабируемость ограничена 19 Нода 1 Нода 2 Нода N .  .  . • Мастер  решает  большую  часть  задач • Удалённые  задачи  ВСЕГДА нагружают  мастер • Ввод-­‐вывод  на  мастере Multi-­‐ tenancy ??? Gearman CloudBees  Jenkins  Platform
  20. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Проблемы роста 20 Jenkins  рос  быстрее  Dev-­‐комьюнити
  21. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    >5 лет бинарной совместимости 21 • Плагины  для  Hudson  2  ещё  работают! • НО: • Архитектурные  проблемы • Старые  библиотеки • Устаревший  UI • Интеграционные  проблемы  в  плагинах
  22. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Все проблемы решаемы! 22
  23. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Правило №1. Не нагружайте Master! 23
  24. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Правило 1. Не нагружайте Master! •Используйте лейблы для задания нод •… или Job Restrictions Plugin 24
  25. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Правило №2. Тестируйте изменения! 25
  26. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Тестовые Сервера •Must-have для больших инсталляций •Максимальное покрытие 26 Нужна  новая   фича/плагин Нужен  фикс Тестовый   сервер Продакшн Только  showstopper’ы Зеркало?
  27. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Правило №3. Используйте LTS на продакшне 27
  28. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Jenkins LTS-релизы • LTS стабильнее • Есть бэкпортинг багов, 3 месяца 28
  29. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Особенности LTS •LTS не освобождает от тестирования – Регрессии – SECURITY - фиксы •3 месяца – это мало, что делать? – Custom-fork ядра [и плагинов] – Enterprise-решения на базе Jenkins – Помогайте комьюнити 29
  30. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Правило №4 Memento Mori 30
  31. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Jenkins может сломаться •Апдейты могут сломать систему ⇒ВСЕГДА делайте бэкап – Periodic Backup Plugin, Backup Plugin, … •Config History Plugin – бэкап конфигов •Naginator Plugin – failover задач 31
  32. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Job Config History Plugin – бэкап конфигов 32 •Системные конфиги •Проекты •Ноды
  33. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Мониторинг •Monitoring Plugin (Java Melody) •Репортинг в системы мониторинга –Nagios, Zenoss, Zabbix, … •Централизованный сбор логов 33 Не  забывайте  про   инфраструктуру  и  бэкенд !
  34. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Summary • У Jenkins довольно много проблем • Jenkins эффективен, если уметь их решать • Информация: – http://jenkins-ci.org - Блоги, Wiki, багтрекер – Материалы Jenkins User Conference: o https://www.cloudbees.com/company/events/juc – Не помогает? o IRC: #jenkinsci o https://groups.google.com/forum/#!forum/jenkinsci-users 34
  35. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Тренды развития систем автоматизации •Смена фокуса с CI в разработке софта –Continuous Delivery –DevOps •Централизация систем автоматизации •Коммерческие решения 35
  36. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Реорганизация Комьюнити •Появление команд •Комьюнити-менеджер •Рост числа девелоперов •Перевыборы Jenkins Board 36 Board Core  Team Security LTS Community Website INFRA
  37. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    “Adopt a plugin!” 37 http://bit.ly/adoptplugin
  38. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Automation as Code 38 Job  DSL DotCI Workflow Jenkinsfile +  Multibranch
  39. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    39
  40. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Планы 40 Jenkins  1.x “Jenkins  3.x” Jenkins  2.x Середина  2016 Конец  2016  (?) • Веб-­‐сайт • Фокус  на  UX  и  инфраструктуре • Минимальные нарушения   совместимости • Архитектурные   изменения • Как  минимум  1  LTS-­‐линейка
  41. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Jenkins 2.0. Веб-сайт •Статический web-site, исходники на GitHub ⇒Контрибьюторам проще жить •Переработка контента – Структурирование информации – БОЛЬШЕ информации – Выход за пределы Continuous Integration 41 http://bit.ly/jenkins20
  42. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Jenkins 2.0. А что в ядре? •UX: – “Plugin gallery” – Улучшение веб-интерфейсов (конфиги и пр.) •Обновление WebUI-библиотек •Механизм устаревания и удаления API 42 http://bit.ly/jenkins20
  43. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Update Manager 2.0 43
  44. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    «Jenkins 3.0» •Цель – архитектурные изменения •Список фич – TBD – Database storage – Remoting 3.0 – … 44
  45. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Чем помочь? 45 http://bit.ly/jenkinscidev GOTO:
  46. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    ©  2015  CloudBees,   Inc.    All  Rights  Reserved 46
  47. sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved

    Ссылки • Проект Jenkins – http://jenkins-ci.org – Организация в GitHub: http://github.com/jenkinsci/ • CloudBees – Сайт: https://www.cloudbees.com – CloudBees Jenkins Platform – https://www.cloudbees.com/products/cloudbees-jenkins-platform 47