докладчика •Личное мнение докладчика может не совпадать с позицией сообщества Jenkins или компании CloudBees •Презентация не является тренингом Disclaimer 4
не так? •Смена фокуса в разработке софта •Continuous Delivery/Deployment •DevOps •Everything as Code •Проблемы UX в Jenkins •Сложность настройки системы и задач •Неполная документация •Интеграционные проблемы 8
базового набора плагинов •Security-‐опции включены по-‐умолчанию •Улучшения UI: •Новый мастер установки/апгрейда •Улучшение страниц конфигурации задач •Категоризация задач •Folders и Pipeline по-‐умолчанию Jenkins 2. Что внутри? http://bit.ly/jenkins20 10
SCM • Синтаксис на базе Groovy • Описания задач можно хранить в SCM • Jenkinsfile – описание задачи в корне репозитория • Десятки плагинов и интеграций: • Stage View, Multi-‐Branch, … http://bit.ly/pipeline-‐tutorial 17
не нужны связки джобов •Множественные node() в одной задаче •=> + parallel() – запуск тестов на разных машинах тестов на машинах •Интерактивные шаги •Устойчивость к рестартам мастера и проблемам с сетью на слейвах Основные фичи Pipeline 18
Тарасова в 12:30 •Островок SPb Jenkins Community • Мои предыдущие доклады: •Митапы по Jenkins в СПб •QA:Conference: “Jenkins 2 для автоматизаторов”: http://bit.ly/jenkins2-‐qaconf Подробнее о Pipeline 19
определённые в свойствах задачи •Можно повлиять на окружение (передать PATH, JAVA_HOME и т.д.) •Пользователь с правами на запуск задачи может вызвать эксплойт •Фикс интегрирован в Jenkins 2.3 и 1.651.3 •https://wiki.jenkins-‐ci.org/display/SECURITY/ Jenkins+Security+Advisory+2016-‐05-‐11 Риски апгрейда. SECURITY-‐170 27
•Job vs. AbstractProject •“Особенности”реализации – не все старые плагины правильно приводят типы •=> риск ClassCastException •Большинство open-‐source плагинов исправлено Риски. Новые плагины 30
CSS-‐классы •Кастомные Javascript’ы и CSS могут развалиться •Примеры: •Simple Theme Plugin •Плагины, которые используют JavaScript в конфигурациях 31 Риски. Изменение UI
но многие тулы к этому не были готовы… •Известные проблемы… •chef-‐cookbooks/jenkins(Issue #466) •puppet-‐jenkins (https://Issue #575 ) •python-‐jenkins •… •Исправлены •ansible-‐jenkins(не все реализации) •Jenkinsci/docker (для стандартного образа) Security по-‐умолчанию & DevOps 32
надо •Jenkins 1.x в комьюнитибольше не развивается •Новых релизов не планируется •Срочности нет, большинство фич доступно в Jenkins 1.x (Pipeline и т.п.) •ВСЕГДА тестируйте обновления Jenkins! Рекомендации по апдейту 33
в ядре •BlueOcean– попытка сделать новый UI •Масштабирование и надёжность Jenkins •Pluggable Storage -‐ подключениебаза данных •Переработка механизма коммуникаций с нодами Jenkins 2.x. Планы 34
планы после конференции Jenkins World (сентябрь) •Основные кандидаты: •Механизм устаревания API •Pluggable Storage -‐ подключениебаза данных •Переработка remoting – переезд коммуникаций на стандартную open-‐source шину •Stay tuned! 39