SlideShare a Scribd company logo
1 of 64
Download to read offline
Jenkins in da cloud.
Управление Jenkins в облаках
(внутренности)
St. Petersburg Jenkins Meetup
15 февраля 2017
© 2017 CloudBees, Inc. All Rights Reserved. 2
Обо мне
@oleg_nenashev
oleg-nenashev
© 2017 CloudBees, Inc. All Rights Reserved. 3
© 2017 CloudBees, Inc. All Rights Reserved. 4
А что у Вас?
Приватные или публичные
облака?
© 2017 CloudBees, Inc. All Rights Reserved. 5
Jenkins
– это Cloud-Native?
© 2017 CloudBees, Inc. All Rights Reserved. 6
НЕТ
(ИМХО докладчика)
Disclaimer:
Ø Презентация отражает личное мнение докладчика
Ø Мнение докладчика может не совпадать с позицией
компании CloudBees и/или сообщества Jenkins
Ø Мнение докладчика может не совпадать с Вашим
мнением
© 2017 CloudBees, Inc. All Rights Reserved. 7
üЧТО ЕСТЬ В JENKINS?
üЧЕГО НЕ ХВАТАЕТ?
О чём доклад?
© 2017 CloudBees, Inc. All Rights Reserved. 8
ИМХО автора. Jenkins – пока не Cloud-Native
• Появился до того, как
клауды стали мейнстримом
• Архитектура ядра не была
рассчитана на клауды
• Фичи – в плагинах
http://stats.jenkins-ci.org/jenkins-stats/
Hudson Jenkins
© 2017 CloudBees, Inc. All Rights Reserved. 9
ИМХО докладчика. Не Cloud-Native
9
IV
III
II
I CRON
wannabe
….
III+
© 2017 CloudBees, Inc. All Rights Reserved. 10
Хотелки
Ø Configuration as Code для системы
Ø Configuration as Code для задач
Ø Запуск в контейнерах
Ø High Availability
Ø Внешнее хранилище данных
© 2017 CloudBees, Inc. All Rights Reserved. 11
Хотелки
Ø Configuration as Code для системы
Ø Configuration as Code для задач
Ø Запуск в контейнерах
Ø High Availability
Ø Внешнее хранилище данных
© 2017 CloudBees, Inc. All Rights Reserved. 12
Configuration as Code в Jenkins
ЗадачиСистемные
конфигурации
© 2017 CloudBees, Inc. All Rights Reserved. 13
Системные конфигурации… as Code
Внешние тулы
Jenkins CLI
and REST
API
python-
jenkins
jenkins-client
(java)
Configuration
Management
Ansible, Chef,
…
Docker,
Docker
Compose
...
Решения
внутри проекта
Jenkins
Groovy Boot
Hooks
Scriptler
Plugin
SCM Sync
Configuration
Unsafe
Just examples…
© 2017 CloudBees, Inc. All Rights Reserved. 14
Jenkins 2 и External Configuration Management
© 2017 CloudBees, Inc. All Rights Reserved. 15
• Примеры…
• chef-cookbooks/jenkins (Issue #466)
• puppet-jenkins (Issue #575 )
• python-jenkins
• ansible-jenkins (not all implementations)
• jenkinsci/docker (for a standard image)
• …
• Сейчас…
• System Property в ядре
Jenkins 2 и External Configuration Management
© 2017 CloudBees, Inc. All Rights Reserved. 16
Groovy Hooks
• Универсальное решение
• Расширяемых механизм хуков
• init, boot-failure – в ядре
• Скрипты
• WEB-INF/HOOK.groovy в jenkins.war
• WEB-INF/HOOK.groovy.d/*.groovy в jenkins.war
• $JENKINS_HOME/HOOK.groovy
• $JENKINS_HOME/HOOK.groovy.d/*.groovy в lexical order
https://wiki.jenkins-
ci.org/display/JENKINS/Groovy+Hook+Script
© 2017 CloudBees, Inc. All Rights Reserved. 17
• Репозиторий для системных
Groovy-скриптов
• Решаемые задачи:
• Управление конфигурациями Jenkins
• Управление ими… в рантайме
• Кастомные шаги сборки
Scriptler Plugin
https://plugins.jenkins.io/scriptler
© 2017 CloudBees, Inc. All Rights Reserved. 18
Scriptler Plugin
• Внешние репозитории
скриптов
• Приватные репозитории
• Документация J
© 2017 CloudBees, Inc. All Rights Reserved. 19
Scriptler Plugin
© 2017 CloudBees, Inc. All Rights Reserved. 20
Итак, что нового?
© 2017 CloudBees, Inc. All Rights Reserved. 21
Итак, что нового?
• Нет единого решения
• Configuration Management –
вне проекта Jenkins
• Нет активных проектов
© 2017 CloudBees, Inc. All Rights Reserved. 22
System Config DSL Plugin
• Groovy DSL
• Source:
• https://github.com/jenkinsci/system
-config-dsl-plugin
• Начат Kohsuke Kawaguchi в 2015
• Статус:
• Работает для базовых задач
• Заброшен(?)
© 2017 CloudBees, Inc. All Rights Reserved. 23
Хотелки
Ø Configuration as Code для системы
Ø Configuration as Code для задач
Ø Запуск в контейнерах
Ø High Availability
Ø Внешнее хранилище данных
© 2017 CloudBees, Inc. All Rights Reserved. 24
Описание задач в Jenkins … as Code
Job DSL
Pipeline (бывш. Workflow)
Jenkins Job Builder
Groovy
Groovy
YAML
Ещё несколько плагинов…
Предлагается по-умолчанию в Jenkins 2
© 2017 CloudBees, Inc. All Rights Reserved. 25
•Groovy DSL для описания задач
•Тип задачи в Jenkins (Pipeline Job)
•Open-source экосистема для X-as-code
25
Что такое Jenkins Pipeline?
© 2017 CloudBees, Inc. All Rights Reserved. 26
Специфика Pipeline
Описание всего
процесса одной
задачей
© 2017 CloudBees, Inc. All Rights Reserved. 27
• Pipeline не привязан к конкретной ноде или рабочей
директории
• Параллелизация
• Команда parallel() – не нужны связки задач
• Множественные node() в одной задаче
• => + parallel() – запуск тестов на разных машинах
тестов на машинах
Специфика Pipeline
© 2017 CloudBees, Inc. All Rights Reserved. 28
Пример – Императивный Pipeline
28
• Синтаксис на базе Groovy
• Шаги для типовых операций
• Описания задач можно хранить в SCM
• Jenkinsfile – описание задачи в корне репозитория
• Шаг git() заменяется на “checkout scm”
• http://bit.ly/pipeline-tutorial
© 2017 CloudBees, Inc. All Rights Reserved. 29
Пример – Декларативный Pipeline
© 2017 CloudBees, Inc. All Rights Reserved. 30
• Global CPS Library
• Git внутри Jenkins
• Внешние библиотеки
• Хранятся в SCM
• Versioning
Библиотеки
© 2017 CloudBees, Inc. All Rights Reserved. 31
Больше о Pipeline
• Записи/слайды с предыдущих митапов
• Документация:
• https://jenkins.io/doc/book/pipeline/
• Блог Jenkins:
• https://jenkins.io/node/
• Онлайн-митапы:
• https://www.meetup.com/Jenkins-online-
meetup/events/237317346/ (сегодня)
HOT!
• Declarative Pipeline
• BlueOcean
• Visual Editor
• …
© 2017 CloudBees, Inc. All Rights Reserved. 32
•Оба плагина полезны
•Разная архитектура
•Разные области применения
•Да, некоторая конкуренция есть
FAQ. Pipeline vs. JobDSL
© 2017 CloudBees, Inc. All Rights Reserved. 33
Хотелки
Ø Configuration as Code для системы
Ø Configuration as Code для задач
Ø Запуск в контейнерах
Ø High Availability
Ø Внешнее хранилище данных
© 2017 CloudBees, Inc. All Rights Reserved. 34
Jenkins в Контейнерах
Мастер в Контейнере
• Один Мастер
• Много мастеров
Агенты в Контейнерах
• Перманентные агенты
• Агенты по требованию
© 2017 CloudBees, Inc. All Rights Reserved. 35
•Предоставление нод по требованию
•Все Cloud-плагины
•Экзотические плагины (напр. Swarm плагин)
Cloud API
http://javadoc.jenkins.io/hudson/slaves/Cloud.html
© 2017 CloudBees, Inc. All Rights Reserved. 36
© 2017 CloudBees, Inc. All Rights Reserved. 37
• Docker Plugin
• Yet Another Docker Plugin
• Docker Custom Build
Environment Plugin
• Docker Pipeline Plugin
• Docker Build Step
• Docker Traceability
• DockerHub Notifications
• …
Jenkins и Docker
Агенты
Другое
© 2017 CloudBees, Inc. All Rights Reserved. 38
Docker Pipeline Plugin
• Можно шарить воркспейсы
• Docker Volume
• External Workspace Manager
• Много нод в одном Pipeline
• Overhead, но воспроизводимость
See also: Kubernetes
Pipeline Plugin
© 2017 CloudBees, Inc. All Rights Reserved. 39
Пример. “CD” для IRC-бота Jenkins
def imageName = 'jenkinsciinfra/ircbot’
node('docker') {
checkout scm
sh 'git rev-parse HEAD > GIT_COMMIT'
commit = readFile('GIT_COMMIT').take(6)
def imageTag = "build${commit}"
stage('Build ircbot’) {
withMavenEnv
(["BUILD_NUMBER=${env.BUILD_NUMBER}:${commit}"]) {
sh 'make bot' // Make invokes Maven
}}
stage ('Build container’) {
def whale = docker.build("${imageName}:${imageTag}”)
}
stage 'Deploy container') {
whale.push()
} } https://github.com/jenkins-infra/ircbot
Docker Registry
Server
Jenkins
SCM
Puppet
© 2017 CloudBees, Inc. All Rights Reserved. 40
7 кругов
виртуализации
Какое-то железо
vSphere / AWS
ОС *nix
Docker
ОС *nix
JVM
© 2017 CloudBees, Inc. All Rights Reserved. 41
Какое-то железо
vSphere / AWS
ОС *nix
Docker
ОС *nix
JVM
ИЛИ
ТАК
?
© 2017 CloudBees, Inc. All Rights Reserved. 42
НЕ используйте Master в контейнерах, если…
• У вас большой инстанс
• Вы запускаете один
контейнер на хост
• Ваш Jenkins будет
сильно расти
• Виртуализация, VM
• Виртуализация, VM
• Виртуализация, VM
© 2017 CloudBees, Inc. All Rights Reserved. 43
Используйте Master в контейнерах…
üДля прототипирования
üДля тестирования
üДля мелких инстансов
üДля автомасштабирования сетапов с
большим числом мастеров
© 2017 CloudBees, Inc. All Rights Reserved. 44
Хотелки
Ø Configuration as Code для системы
Ø Configuration as Code для задач
Ø Запуск в контейнерах
Ø High Availability
Ø Внешнее хранилище данных
© 2017 CloudBees, Inc. All Rights Reserved. 45
High Availability
https://go.cloudbees.com/docs/cloudbees-
documentation/cookbook/book.html#ch13
© 2017 CloudBees, Inc. All Rights Reserved. 46
• “Нормальное” хранилище данных (Pluggable Storage)
• Внешнее логгирование
• Горячий резерв (multi-master)
• Бонус: Горизонтальное масштабирование
Что надо?
High Availability
• Начали обсуждения на FOSDEM 2016
• Jenkins 2… 3… 4…
© 2017 CloudBees, Inc. All Rights Reserved. 47
Хотелки
Ø Configuration as Code для системы
Ø Configuration as Code для задач
Ø Запуск в контейнерах
Ø High Availability
Ø Внешнее хранилище данных
© 2017 CloudBees, Inc. All Rights Reserved. 48
• Анонсирован на Jenkins World 2016
• Основные entity:
•Артефакты, Логи
•Сборки: результаты тестов и т.п.
•Fingerprints
•…
Pluggable Storage для Jenkins
© 2017 CloudBees, Inc. All Rights Reserved. 49
•Есть Extension Point (ArtifactManager)
•А реализаций… нет
Артефакты
© 2017 CloudBees, Inc. All Rights Reserved. 50
Логи в Jenkins
Логи сборок
Системные логи
Другое
• Логи агентов
• Поллинг SCM
• Индексирование в Multibranch
• …
java.util.logging
© 2017 CloudBees, Inc. All Rights Reserved. 51
External Build Logging
Мастер Ноды
Логи с операций
на мастере
Build Console• Все логи идут на диск мастера
• Агенты репортят логи на мастер
• Логи для консоли… читаются с
диска (и progressive, да)
© 2017 CloudBees, Inc. All Rights Reserved. 52
External Build Logging. Подход
Master
Node
Logstash
Elasticsearch
Kibana
Логи с мастера
Логи с нод
Build
Console
• Убрать все логи в
общее хранилище
• Не нагружать мастер
Storage
Visualizer
© 2017 CloudBees, Inc. All Rights Reserved. 53
External Build Logging. Прототип
• Текущий статус: прототип
• Jenkins World 2016 Hackathon:
• Поддержка AbstractProject и, частично, Pipeline
• https://speakerdeck.com/onenashev/jw2016-hackathon-external-
build-logging-prototype-demo
• Декабрь 2016 (Jesse Glick):
• Полная поддержка Pipeline
• Мини-дизайн для реализации
• Код: https://github.com/jenkinsci/logstash-plugin/pull/18
© 2017 CloudBees, Inc. All Rights Reserved. 54
External Build Logging. Прототип
© 2017 CloudBees, Inc. All Rights Reserved. 55
External Build Logging. Прототип
© 2017 CloudBees, Inc. All Rights Reserved. 56
Pluggable Storage. Планы…
Пока нет…
© 2017 CloudBees, Inc. All Rights Reserved. 57
А что есть сейчас?
© 2017 CloudBees, Inc. All Rights Reserved. 58
Пример. CloudBees Jenkins Enterprise
• Решает часть задач
• High Availability – тёплый резерв
• Shared Cloud и Shared Slave
• Single Sign On (SSO)
• Мониторинг и Аналитика
• ClusterOps
• Private SaaS Edition (уст.)
• Провижионинг мастеров и
агентов
https://www.cloudbees.com/products/cloudbees-
jenkins-enterprise
© 2017 CloudBees, Inc. All Rights Reserved. 59
Пример. CloudBees Jenkins Enterprise
© 2017 CloudBees, Inc. All Rights Reserved. 60
CloudBees Jenkins Enterprise
• Платформы:
• Docker, Mesos and OpenStack or Amazon EC2
• Метрики
• Единый кластер с SSO и интеграцией мастеров
• В демо – 2000 активных инстансов
• В бою – несколько сотен
https://www.cloudbees.com/products/cloudbees-
jenkins-platform/private-saas-edition/features
© 2017 CloudBees, Inc. All Rights Reserved. 61
Пример. DotCI
http://groupon.github.io/DotCi/
• Основан на Jenkins
• High Availability
• Docker
• Pluggable Storage (MongoDB)
• ….
• НО:
• Ограниченная совместимость (не Jenkins)
• Кастомные плагины и шаги сборки
© 2017 CloudBees, Inc. All Rights Reserved. 62
Итого
• Jenkins постепенно развивается в
нужном направлении
• Стоит попробовать:
•Jenkins Pipeline
•Jenkins & Docker для агентов
• Агенты в контейнерах – это удобно
• Jenkins-мастер в контейнерах - это риск
© 2017 CloudBees, Inc. All Rights Reserved. 63
Спасибо!
Контакты:
E-mail: onenashev@cloudbees.com
GitHub: oleg-nenashev
Twitter: @oleg_nenashev
Software at the speed of ideas
THANK YOU!
www.cloudbees.com

More Related Content

What's hot

Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыOleg Nenashev
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
 
Проникновение в Docker с примерами
Проникновение в Docker с примерамиПроникновение в Docker с примерами
Проникновение в Docker с примерамиДмитрий Столяров
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupBadoo Development
 
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...Ontico
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019corehard_by
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TKConf
 
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Ontico
 
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)Александр Сигачев
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годBadoo Development
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасRuslan Sharipov
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25Alex Chistyakov
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to productionAnton Turetsky
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиOSLL
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
 

What's hot (20)

Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
Проникновение в Docker с примерами
Проникновение в Docker с примерамиПроникновение в Docker с примерами
Проникновение в Docker с примерами
 
Что такое Docker
Что такое DockerЧто такое Docker
Что такое Docker
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
 
Docker 1.9
Docker 1.9Docker 1.9
Docker 1.9
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
 
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
 
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
 
Введение в Docker
Введение в DockerВведение в Docker
Введение в Docker
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
 

Similar to SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности

SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем RemotingOleg Nenashev
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliverySQALab
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Vad Tymoshyk
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015Ivan Evtukhovich
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаAlexander Kirillov
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаOpen-IT
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)Roman Dvornov
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годAnton Turetsky
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Ruslan Sharipov
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на DockerМихаил Бакулин
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...IT-Portfolio
 

Similar to SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности (20)

SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на Docker
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
 

SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности

  • 1. Jenkins in da cloud. Управление Jenkins в облаках (внутренности) St. Petersburg Jenkins Meetup 15 февраля 2017
  • 2. © 2017 CloudBees, Inc. All Rights Reserved. 2 Обо мне @oleg_nenashev oleg-nenashev
  • 3. © 2017 CloudBees, Inc. All Rights Reserved. 3
  • 4. © 2017 CloudBees, Inc. All Rights Reserved. 4 А что у Вас? Приватные или публичные облака?
  • 5. © 2017 CloudBees, Inc. All Rights Reserved. 5 Jenkins – это Cloud-Native?
  • 6. © 2017 CloudBees, Inc. All Rights Reserved. 6 НЕТ (ИМХО докладчика) Disclaimer: Ø Презентация отражает личное мнение докладчика Ø Мнение докладчика может не совпадать с позицией компании CloudBees и/или сообщества Jenkins Ø Мнение докладчика может не совпадать с Вашим мнением
  • 7. © 2017 CloudBees, Inc. All Rights Reserved. 7 üЧТО ЕСТЬ В JENKINS? üЧЕГО НЕ ХВАТАЕТ? О чём доклад?
  • 8. © 2017 CloudBees, Inc. All Rights Reserved. 8 ИМХО автора. Jenkins – пока не Cloud-Native • Появился до того, как клауды стали мейнстримом • Архитектура ядра не была рассчитана на клауды • Фичи – в плагинах http://stats.jenkins-ci.org/jenkins-stats/ Hudson Jenkins
  • 9. © 2017 CloudBees, Inc. All Rights Reserved. 9 ИМХО докладчика. Не Cloud-Native 9 IV III II I CRON wannabe …. III+
  • 10. © 2017 CloudBees, Inc. All Rights Reserved. 10 Хотелки Ø Configuration as Code для системы Ø Configuration as Code для задач Ø Запуск в контейнерах Ø High Availability Ø Внешнее хранилище данных
  • 11. © 2017 CloudBees, Inc. All Rights Reserved. 11 Хотелки Ø Configuration as Code для системы Ø Configuration as Code для задач Ø Запуск в контейнерах Ø High Availability Ø Внешнее хранилище данных
  • 12. © 2017 CloudBees, Inc. All Rights Reserved. 12 Configuration as Code в Jenkins ЗадачиСистемные конфигурации
  • 13. © 2017 CloudBees, Inc. All Rights Reserved. 13 Системные конфигурации… as Code Внешние тулы Jenkins CLI and REST API python- jenkins jenkins-client (java) Configuration Management Ansible, Chef, … Docker, Docker Compose ... Решения внутри проекта Jenkins Groovy Boot Hooks Scriptler Plugin SCM Sync Configuration Unsafe Just examples…
  • 14. © 2017 CloudBees, Inc. All Rights Reserved. 14 Jenkins 2 и External Configuration Management
  • 15. © 2017 CloudBees, Inc. All Rights Reserved. 15 • Примеры… • chef-cookbooks/jenkins (Issue #466) • puppet-jenkins (Issue #575 ) • python-jenkins • ansible-jenkins (not all implementations) • jenkinsci/docker (for a standard image) • … • Сейчас… • System Property в ядре Jenkins 2 и External Configuration Management
  • 16. © 2017 CloudBees, Inc. All Rights Reserved. 16 Groovy Hooks • Универсальное решение • Расширяемых механизм хуков • init, boot-failure – в ядре • Скрипты • WEB-INF/HOOK.groovy в jenkins.war • WEB-INF/HOOK.groovy.d/*.groovy в jenkins.war • $JENKINS_HOME/HOOK.groovy • $JENKINS_HOME/HOOK.groovy.d/*.groovy в lexical order https://wiki.jenkins- ci.org/display/JENKINS/Groovy+Hook+Script
  • 17. © 2017 CloudBees, Inc. All Rights Reserved. 17 • Репозиторий для системных Groovy-скриптов • Решаемые задачи: • Управление конфигурациями Jenkins • Управление ими… в рантайме • Кастомные шаги сборки Scriptler Plugin https://plugins.jenkins.io/scriptler
  • 18. © 2017 CloudBees, Inc. All Rights Reserved. 18 Scriptler Plugin • Внешние репозитории скриптов • Приватные репозитории • Документация J
  • 19. © 2017 CloudBees, Inc. All Rights Reserved. 19 Scriptler Plugin
  • 20. © 2017 CloudBees, Inc. All Rights Reserved. 20 Итак, что нового?
  • 21. © 2017 CloudBees, Inc. All Rights Reserved. 21 Итак, что нового? • Нет единого решения • Configuration Management – вне проекта Jenkins • Нет активных проектов
  • 22. © 2017 CloudBees, Inc. All Rights Reserved. 22 System Config DSL Plugin • Groovy DSL • Source: • https://github.com/jenkinsci/system -config-dsl-plugin • Начат Kohsuke Kawaguchi в 2015 • Статус: • Работает для базовых задач • Заброшен(?)
  • 23. © 2017 CloudBees, Inc. All Rights Reserved. 23 Хотелки Ø Configuration as Code для системы Ø Configuration as Code для задач Ø Запуск в контейнерах Ø High Availability Ø Внешнее хранилище данных
  • 24. © 2017 CloudBees, Inc. All Rights Reserved. 24 Описание задач в Jenkins … as Code Job DSL Pipeline (бывш. Workflow) Jenkins Job Builder Groovy Groovy YAML Ещё несколько плагинов… Предлагается по-умолчанию в Jenkins 2
  • 25. © 2017 CloudBees, Inc. All Rights Reserved. 25 •Groovy DSL для описания задач •Тип задачи в Jenkins (Pipeline Job) •Open-source экосистема для X-as-code 25 Что такое Jenkins Pipeline?
  • 26. © 2017 CloudBees, Inc. All Rights Reserved. 26 Специфика Pipeline Описание всего процесса одной задачей
  • 27. © 2017 CloudBees, Inc. All Rights Reserved. 27 • Pipeline не привязан к конкретной ноде или рабочей директории • Параллелизация • Команда parallel() – не нужны связки задач • Множественные node() в одной задаче • => + parallel() – запуск тестов на разных машинах тестов на машинах Специфика Pipeline
  • 28. © 2017 CloudBees, Inc. All Rights Reserved. 28 Пример – Императивный Pipeline 28 • Синтаксис на базе Groovy • Шаги для типовых операций • Описания задач можно хранить в SCM • Jenkinsfile – описание задачи в корне репозитория • Шаг git() заменяется на “checkout scm” • http://bit.ly/pipeline-tutorial
  • 29. © 2017 CloudBees, Inc. All Rights Reserved. 29 Пример – Декларативный Pipeline
  • 30. © 2017 CloudBees, Inc. All Rights Reserved. 30 • Global CPS Library • Git внутри Jenkins • Внешние библиотеки • Хранятся в SCM • Versioning Библиотеки
  • 31. © 2017 CloudBees, Inc. All Rights Reserved. 31 Больше о Pipeline • Записи/слайды с предыдущих митапов • Документация: • https://jenkins.io/doc/book/pipeline/ • Блог Jenkins: • https://jenkins.io/node/ • Онлайн-митапы: • https://www.meetup.com/Jenkins-online- meetup/events/237317346/ (сегодня) HOT! • Declarative Pipeline • BlueOcean • Visual Editor • …
  • 32. © 2017 CloudBees, Inc. All Rights Reserved. 32 •Оба плагина полезны •Разная архитектура •Разные области применения •Да, некоторая конкуренция есть FAQ. Pipeline vs. JobDSL
  • 33. © 2017 CloudBees, Inc. All Rights Reserved. 33 Хотелки Ø Configuration as Code для системы Ø Configuration as Code для задач Ø Запуск в контейнерах Ø High Availability Ø Внешнее хранилище данных
  • 34. © 2017 CloudBees, Inc. All Rights Reserved. 34 Jenkins в Контейнерах Мастер в Контейнере • Один Мастер • Много мастеров Агенты в Контейнерах • Перманентные агенты • Агенты по требованию
  • 35. © 2017 CloudBees, Inc. All Rights Reserved. 35 •Предоставление нод по требованию •Все Cloud-плагины •Экзотические плагины (напр. Swarm плагин) Cloud API http://javadoc.jenkins.io/hudson/slaves/Cloud.html
  • 36. © 2017 CloudBees, Inc. All Rights Reserved. 36
  • 37. © 2017 CloudBees, Inc. All Rights Reserved. 37 • Docker Plugin • Yet Another Docker Plugin • Docker Custom Build Environment Plugin • Docker Pipeline Plugin • Docker Build Step • Docker Traceability • DockerHub Notifications • … Jenkins и Docker Агенты Другое
  • 38. © 2017 CloudBees, Inc. All Rights Reserved. 38 Docker Pipeline Plugin • Можно шарить воркспейсы • Docker Volume • External Workspace Manager • Много нод в одном Pipeline • Overhead, но воспроизводимость See also: Kubernetes Pipeline Plugin
  • 39. © 2017 CloudBees, Inc. All Rights Reserved. 39 Пример. “CD” для IRC-бота Jenkins def imageName = 'jenkinsciinfra/ircbot’ node('docker') { checkout scm sh 'git rev-parse HEAD > GIT_COMMIT' commit = readFile('GIT_COMMIT').take(6) def imageTag = "build${commit}" stage('Build ircbot’) { withMavenEnv (["BUILD_NUMBER=${env.BUILD_NUMBER}:${commit}"]) { sh 'make bot' // Make invokes Maven }} stage ('Build container’) { def whale = docker.build("${imageName}:${imageTag}”) } stage 'Deploy container') { whale.push() } } https://github.com/jenkins-infra/ircbot Docker Registry Server Jenkins SCM Puppet
  • 40. © 2017 CloudBees, Inc. All Rights Reserved. 40 7 кругов виртуализации Какое-то железо vSphere / AWS ОС *nix Docker ОС *nix JVM
  • 41. © 2017 CloudBees, Inc. All Rights Reserved. 41 Какое-то железо vSphere / AWS ОС *nix Docker ОС *nix JVM ИЛИ ТАК ?
  • 42. © 2017 CloudBees, Inc. All Rights Reserved. 42 НЕ используйте Master в контейнерах, если… • У вас большой инстанс • Вы запускаете один контейнер на хост • Ваш Jenkins будет сильно расти • Виртуализация, VM • Виртуализация, VM • Виртуализация, VM
  • 43. © 2017 CloudBees, Inc. All Rights Reserved. 43 Используйте Master в контейнерах… üДля прототипирования üДля тестирования üДля мелких инстансов üДля автомасштабирования сетапов с большим числом мастеров
  • 44. © 2017 CloudBees, Inc. All Rights Reserved. 44 Хотелки Ø Configuration as Code для системы Ø Configuration as Code для задач Ø Запуск в контейнерах Ø High Availability Ø Внешнее хранилище данных
  • 45. © 2017 CloudBees, Inc. All Rights Reserved. 45 High Availability https://go.cloudbees.com/docs/cloudbees- documentation/cookbook/book.html#ch13
  • 46. © 2017 CloudBees, Inc. All Rights Reserved. 46 • “Нормальное” хранилище данных (Pluggable Storage) • Внешнее логгирование • Горячий резерв (multi-master) • Бонус: Горизонтальное масштабирование Что надо? High Availability • Начали обсуждения на FOSDEM 2016 • Jenkins 2… 3… 4…
  • 47. © 2017 CloudBees, Inc. All Rights Reserved. 47 Хотелки Ø Configuration as Code для системы Ø Configuration as Code для задач Ø Запуск в контейнерах Ø High Availability Ø Внешнее хранилище данных
  • 48. © 2017 CloudBees, Inc. All Rights Reserved. 48 • Анонсирован на Jenkins World 2016 • Основные entity: •Артефакты, Логи •Сборки: результаты тестов и т.п. •Fingerprints •… Pluggable Storage для Jenkins
  • 49. © 2017 CloudBees, Inc. All Rights Reserved. 49 •Есть Extension Point (ArtifactManager) •А реализаций… нет Артефакты
  • 50. © 2017 CloudBees, Inc. All Rights Reserved. 50 Логи в Jenkins Логи сборок Системные логи Другое • Логи агентов • Поллинг SCM • Индексирование в Multibranch • … java.util.logging
  • 51. © 2017 CloudBees, Inc. All Rights Reserved. 51 External Build Logging Мастер Ноды Логи с операций на мастере Build Console• Все логи идут на диск мастера • Агенты репортят логи на мастер • Логи для консоли… читаются с диска (и progressive, да)
  • 52. © 2017 CloudBees, Inc. All Rights Reserved. 52 External Build Logging. Подход Master Node Logstash Elasticsearch Kibana Логи с мастера Логи с нод Build Console • Убрать все логи в общее хранилище • Не нагружать мастер Storage Visualizer
  • 53. © 2017 CloudBees, Inc. All Rights Reserved. 53 External Build Logging. Прототип • Текущий статус: прототип • Jenkins World 2016 Hackathon: • Поддержка AbstractProject и, частично, Pipeline • https://speakerdeck.com/onenashev/jw2016-hackathon-external- build-logging-prototype-demo • Декабрь 2016 (Jesse Glick): • Полная поддержка Pipeline • Мини-дизайн для реализации • Код: https://github.com/jenkinsci/logstash-plugin/pull/18
  • 54. © 2017 CloudBees, Inc. All Rights Reserved. 54 External Build Logging. Прототип
  • 55. © 2017 CloudBees, Inc. All Rights Reserved. 55 External Build Logging. Прототип
  • 56. © 2017 CloudBees, Inc. All Rights Reserved. 56 Pluggable Storage. Планы… Пока нет…
  • 57. © 2017 CloudBees, Inc. All Rights Reserved. 57 А что есть сейчас?
  • 58. © 2017 CloudBees, Inc. All Rights Reserved. 58 Пример. CloudBees Jenkins Enterprise • Решает часть задач • High Availability – тёплый резерв • Shared Cloud и Shared Slave • Single Sign On (SSO) • Мониторинг и Аналитика • ClusterOps • Private SaaS Edition (уст.) • Провижионинг мастеров и агентов https://www.cloudbees.com/products/cloudbees- jenkins-enterprise
  • 59. © 2017 CloudBees, Inc. All Rights Reserved. 59 Пример. CloudBees Jenkins Enterprise
  • 60. © 2017 CloudBees, Inc. All Rights Reserved. 60 CloudBees Jenkins Enterprise • Платформы: • Docker, Mesos and OpenStack or Amazon EC2 • Метрики • Единый кластер с SSO и интеграцией мастеров • В демо – 2000 активных инстансов • В бою – несколько сотен https://www.cloudbees.com/products/cloudbees- jenkins-platform/private-saas-edition/features
  • 61. © 2017 CloudBees, Inc. All Rights Reserved. 61 Пример. DotCI http://groupon.github.io/DotCi/ • Основан на Jenkins • High Availability • Docker • Pluggable Storage (MongoDB) • …. • НО: • Ограниченная совместимость (не Jenkins) • Кастомные плагины и шаги сборки
  • 62. © 2017 CloudBees, Inc. All Rights Reserved. 62 Итого • Jenkins постепенно развивается в нужном направлении • Стоит попробовать: •Jenkins Pipeline •Jenkins & Docker для агентов • Агенты в контейнерах – это удобно • Jenkins-мастер в контейнерах - это риск
  • 63. © 2017 CloudBees, Inc. All Rights Reserved. 63 Спасибо! Контакты: E-mail: onenashev@cloudbees.com GitHub: oleg-nenashev Twitter: @oleg_nenashev
  • 64. Software at the speed of ideas THANK YOU! www.cloudbees.com