45
Jenkins 2 и планы на будущее Moscow Jenkins Meetup 2 ноября 2016

Moscow Jenkins Meetup #1. Jenkins 2 и планы на будущее

Embed Size (px)

Citation preview

Jenkins 2 и планына будущее

Moscow Jenkins Meetup2 ноября 2016

2© 2016 CloudBees, Inc. All Rights Reserved.

Закончил СПбПУ, к.т.н.CloudBees, Jenkins Developer•CloudBees – один из основных контрибьюторов Jenkins

•Занимаюсь Open-Source•Занимаюсь CloudBees Jenkins Platform

Jenkins Project, Core Team•Работаю с Hudson/Jenkins ~8 лет•Автоматизация в Hardware/Embedded•Занимаюсь ядром Jenkins•Поддерживаю (?) плагины

> whoami

@oleg_nenashevoleg-nenashev

3© 2016 CloudBees, Inc. All Rights Reserved.

Мой “Зал позора”(c)

О чём доклад?

üО JenkinsüО релизе Jenkins 2üО дальнейших планах

4

Disclaimer:• Даннаяпрезентацияотражаетличноемнениедокладчика• Личноемнениедокладчикаможетнесовпадатьс

официальнойпозициейCloudBeesилисообществаJenkins

5© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins – этоСистема

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

Сервер/фрэймворкАвтоматизации

6© 2016 CloudBees, Inc. All Rights Reserved.

Система

Инфра-структура

Доку-мен-тация

Инфра-структура

Плагины Конфиги

Инфра-структура

Шаб-лоны

Система на базе Jenkins Гибок и

расширяем

Минимален «из коробки»

Требует настройки

7© 2016 CloudBees, Inc. All Rights Reserved.7

>1000 плагинов

Интеграция с сотнями инструментов

Управление процессамиавтоматизации

Автоматизация любых задач

Code & Commit Build & Config Scan & Test Release Deploy

8© 2016 CloudBees, Inc. All Rights Reserved.

Кто такой Jenkins?Сборка

Тестиро-вание

Создание пакетов

Развер-тывание

Отчёты, анали-тика

и другое

• Сервер автоматизации• Continuous Integration• Continuous Delivery• DevOps• …

• Веб-интерфейс• Распределенная система• >1000 плагинов• Open-source (MIT)

https://jenkins.io

9© 2016 CloudBees, Inc. All Rights Reserved.

Популярность Jenkins

http://stats.jenkins-ci.org/jenkins-stats/

• 140,000 инсталляций• 6 миллионов задач• ~300 коммиттеров за

полгода• ~2 новых плагина в

неделю• ~50 релизов плагинов

в неделю

10© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins Universe

* Исх. Автор: Kuiper oort (dumb version).jpg: NASADump version updated by Manco Capac in order to have a better full image. No Credit required for this current version.derivative work: Skab (talk), Chesnok (talk) - Kuiper oort (dumb version).jpg, Общественное достояние, https://commons.wikimedia.org/w/index.php?curid=8812483

Core Team Разработчики плагинов

Профес-сиональныеадмины

Пользователи

~25 ~300

~тысячи

~миллионы

• Число пользователей растет быстрее числа разработчиков

• Размер Core Team почти не изменился с 2011г.

• Не хватает ментейнеровплагинов

11© 2016 CloudBees, Inc. All Rights Reserved.

Kohsuke:“Jenkinsproject– этобазар”• Самоорганизация• Большоечислоучастников• Разныеинтересыипроекты

Сообщество Jenkins

12© 2016 CloudBees, Inc. All Rights Reserved.

Сообщество разработчиковJenkinsb

oard

CoreTeam

Security

Release/LTS

Events

INFRA Website

"Команды"плагинов

IRC на FreeNode• #jenkins, #jenkins-meeting, #jenkins-community

Jenkins JIRA• Ядро и плагины• Компонент “_unsorted” – Если непонятно

Рассылки• …@googlegroups.com• jenkinsci-dev, jenkinsci-cert• jenkinsci-users

13© 2016 CloudBees, Inc. All Rights Reserved.

Итак, всё хорошо?

14© 2016 CloudBees, Inc. All Rights Reserved.

15© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins 1.х. Что было не так?

CI уже не моден•… must-have

Смена фокуса в ПО•Continuous Delivery•Continuous Deployment•DevOps•Everything as Code

Рой Buzzword’ов

16© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins 1.х. Что было не так?Изменение экосистемы•Публичные и приватные облака•Docker, Docker, Docker, Docker, …•Централизация систем автоматизации•Требования к надежности

Конкурирующие сервисы•Travis, Appveyor, GoCD, GitLab CI, …•Configuration as Code•Cloud-Native•Проще для маленьких команд

17© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins 1.х. Что было не так?

L

Устаревшийвеб-интерфейс

Сложность настройки системы и задач

Неполная документация

Интеграционные проблемы

Было: Проект от хакеров для хакеров (open-source)

Стало: не все хотят/могут копаться в коде

18© 2016 CloudBees, Inc. All Rights Reserved.

Проблемы роста

Jenkins рос быстрее Dev-комьюнити

19© 2016 CloudBees, Inc. All Rights Reserved.

Масштабируемость ограничена

Агент 1

Агент 2

Агент N. . .

• Мастер решает большую часть задач• Удалённые задачи ВСЕГДА нагружают мастер• Ввод-вывод на мастере

Горизонтальное масштабирование

??? GearmanCloudBees Jenkins Platform

20© 2016 CloudBees, Inc. All Rights Reserved.

Апгрейды…

Ø Обновление ядраØ Обновление плагина и рестарт

“Just works”?

21© 2016 CloudBees, Inc. All Rights Reserved.

Апгрейды…

Не “Just works”

22© 2016 CloudBees, Inc. All Rights Reserved.

Нестабильность ядра?

“Правильные термины”:• Latest and Greatest => Weekly release• LTS => Стабильный Релиз• ??? => Long-Term Support (LTS)▸ Не в Jenkins open-source (ресурсы)▸ Вендоры: CloudBees Jenkins Platform

Jenkins 1.х. Что было не так?

23© 2016 CloudBees, Inc. All Rights Reserved.

Ветки LTS (Long-Term Support) выбираются каждые 12 недель и поддерживаются в течение трёх месяцев (бэкпортинг фиксов, больше тестирования)

Еженедельные релизы с новыми исправлениями и улучшениями. Только автоматическое тестирование, стабильность не гарантирована.

24© 2016 CloudBees, Inc. All Rights Reserved.

>5 лет бинарной совместимости

• Плагины для Hudson 2 ещё работают!

• Для пользователей:• Архитектурные проблемы• Устаревший UI• Интеграционные проблемы в плагинах

• Для разработчиков Jenkins: • Высокая стоимость поддержки• Порог входа

Jenkins 2

• Планирование – FOSDEM 2016• Релиз 2.0 - в апреле 2016• Long-Term Support (LTS) – июль 2016• ~50% инсталляций обновились на Jenkins 2

26© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins 2. Как это было?

Ожидание

Реальность

Почти сферическийВ вакууме

КонсервативныйНо всё-таки новый

27© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins 2. Как это было?

Ожидание Реальность“Cделать хорошо”“Убрать все, что мешает”Мега-релиз

Много контрибьюторов

Релиз 2.0 в короткий срок (несколько месяцев)

Минимальные измененияСохранение совместимостиИтеративность

~10 человек + CloudBees

А ведь сделали J

28© 2016 CloudBees, Inc. All Rights Reserved.

Новый вебсайт (jenkins.io)Security-опции по-умолчаниюУлучшения UI:•Новый мастер установки/апгрейда•Улучшение страниц конфигурации

Изменение набора плагиновJenkins Pipeline •Configuration as Code для задач

Jenkins 2. Что внутри?

http://bit.ly/jenkins20

29© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins защищен с момента запуска

30© 2016 CloudBees, Inc. All Rights Reserved.

Security по-умолчанию & DevOpsМногие тулы не были готовы…

Известные проблемы…• chef-cookbooks/jenkins (Issue #466)• puppet-jenkins (https://Issue #575 )• python-jenkins• …

Исправлены• ansible-jenkins (не все реализации)• Jenkinsci/docker (для стандартного образа)

31© 2016 CloudBees, Inc. All Rights Reserved.

Мастер установки Jenkins 2 [1/2]

32© 2016 CloudBees, Inc. All Rights Reserved.

Мастер установки Jenkins 2 [2/2]

При выборе пункта – popup-окно со списком зависимостей

33© 2016 CloudBees, Inc. All Rights Reserved.

Страницы настроек. Вкладки

ВкладкиСтарый режим

34© 2016 CloudBees, Inc. All Rights Reserved.

Pipeline - этоØGroovy DSL для описания задач•Альтернативы – Job DSL, Jenkins Job BuilderØТип задачи в Jenkins (Pipeline, Multi-branch Pipeline)•Описание задач можно хранить в SCM - Jenkinsfile•Автоматическое сознание задач для веток и pull-request’овØЭкосистема для Automation-as-Code•>20 Pipeline-плагинов (“ядро?”)•Множество фич (UI, Стабильность)•Интеграции // Run on a node having the “my_fpga” label

node("linux && ml509") { git url:"http://github.com/myorg/myproject.git"sh "make all"

} http://bit.ly/pipeline-tutorial

35© 2016 CloudBees, Inc. All Rights Reserved.

Основные фичи Pipeline

Groovy – все плюсы ООП•Обработка ошибок•Библиотеки (с @Grab из груви)

Нет привязки к отдельной машине•Команда parallel() – не нужны связки джобов•Множественные node() в одной задаче

Интерактивные шагиУстойчивость к рестартам мастера и проблемам с сетьюUI: Pipeline Stage View, Blue Ocean

36© 2016 CloudBees, Inc. All Rights Reserved.

Подробнее о Pipeline?

Следующий доклад…// Сегодня

37© 2016 CloudBees, Inc. All Rights Reserved.

Jenkins 2. Дальнейшие Планы

• Развитие экосистемы Pipeline• UI/UX, BlueOcean• Масштабирование/Надёжность• Инфраструктура

38© 2016 CloudBees, Inc. All Rights Reserved.

• Новый JavaScript-фреймворк для создания UI в Jenkins• Jenkins Design Language• Jenkins JS Builder• Node.js, React• Интеграция в механизм плагинов

• Улучшение UI в ядре• Доработка страниц навигации и настройки задач• Оптимизация «тяжелых элементов» - очередь,

история сборок и пр.• BlueOcean – попытка сделать новый UI

UI/UX

39© 2016 CloudBees, Inc. All Rights Reserved.

Blue Ocean

Новый Web UI для JenkinsФокус – Jenkins Pipeline

https://jenkins.io/projects/blueocean/

40© 2016 CloudBees, Inc. All Rights Reserved.

Масштабирование и надежностьCloud-Native Jenkins• В процессе обсуждения…

Pluggable Storage•Использование внешних хранилищ данных•Минимизация использования диска и сети•External Logging – Logstash и Co

Улучшение механизма коммуникации с агентами•Remoting 3 / JNLP4•Диагностика агентов в случае отказов•Возможность обновления Remoting без апдейта ядра

41© 2016 CloudBees, Inc. All Rights Reserved.

Было: “сапожник без сапог”Партнерство с Azure•https://jenkins.io/blog/2016/05/18/announcing-azure-partnership/

Планы:•Релиз-flow без человеческого фактора•Переезд на Azure – больше ресурсов •Переезд с jenkins.ci.cloudbees.com▸OSS-only сетап

Jenkins 2. Инфраструктура

42© 2016 CloudBees, Inc. All Rights Reserved.

Интеграция нового parent POM в плагины•POM больше не привязан к версии ядра => можно обновлять flow без ядра

•Статический анализ – хотя бы FindBugs•PR-builder может патчить Parent POM▸Bleeding Edge – тестирование

Другие фреймворки•Acceptance Test Harness•Plugin Compatibility фреймворков

Jenkins 2. Борьба за качество

43© 2016 CloudBees, Inc. All Rights Reserved.

Основные кандидаты:• Механизм устаревания API• Pluggable Storage - подключение внешних хранилищ▸Логи, Артефакты, конфиги, …

• Горизонтальное масштабирование• Переработка remoting – переезд коммуникаций на стандартную open-source шину

Stay tuned!

Архитектурные изменение Jenkins

44© 2016 CloudBees, Inc. All Rights Reserved.

1. Jenkins продолжает развиваться2. Jenkins 2 – не просто маркетинговый релиз3. Обновляться надо

• Гайды по апгрейду – на сайте• Обновляться надо аккупатно

4. Стоит попробовать:• Jenkins Pipeline / Multi-Branch Pipeline• BlueOcean

Выводы

Software at the speed of ideas

THANK YOU!www.cloudbees.com

Вопросы?Offline: http://gitter.im/jenkinsci-ru