Slide 1

Slide 1 text

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г.

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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/

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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 И  тут… Проектам  тоже   досталось

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

sd ©  2015  CloudBees,   Inc.    All  Rights  Reserved 39

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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