Slide 1

Slide 1 text

1 © Copyright 2016 EMC Corporation. All rights reserved. GENERIC JOBS В JENKINS ИЛИ КАК СОБРАТЬ ВСЕ ЧТО УГОДНО

Slide 2

Slide 2 text

2 © Copyright 2016 EMC Corporation. All rights reserved. INTRODUCE YOURSELF

Slide 3

Slide 3 text

3 © Copyright 2016 EMC Corporation. All rights reserved. INTRODUCTION

Slide 4

Slide 4 text

4 © Copyright 2016 EMC Corporation. All rights reserved. • Большие и корпоративные • Cloud-native application development • DPA- автоматизация мониторинга, анализа и составления репортов для backup и recovery окружений • Снижение сложности, затрат и устранение ручных усилий Используем Jenkins Server для решения задач: • Continuous Integration • Delivery • Releasing • Customization • Pipeline Cloud build infrastructure

Slide 5

Slide 5 text

5 © Copyright 2016 EMC Corporation. All rights reserved. Roadblocks & challenges • В облаке построение build инфраструктуры привычными flow не подходит • Разным микросервисам требуются разные инструменты сборки • В проекте используются скрипты, которые всегда соответствовать правильной версии • Снижение усилий направленных на настройку slave-ов

Slide 6

Slide 6 text

6 © Copyright 2016 EMC Corporation. All rights reserved. Agenda  Introduction - Cloud build infrastructure - Roadblocks & challenges  Generic Jobs - Параметризация Jenkins Build - Использование groovy scripts - Multi Project Jenkins Job - Blue Green Deployment Job - Virtual Machine Packaging Job  Wrappers - Build tools wrappers - Запуск task с помощью wrapper - Pros & Cons  Conclusion - Additional notes - Q&A

Slide 7

Slide 7 text

7 © Copyright 2016 EMC Corporation. All rights reserved. GENERIC JOBS

Slide 8

Slide 8 text

8 © Copyright 2016 EMC Corporation. All rights reserved. OVERVIEW Generic build позволяет собирать проекты любого типа с нестандартной конфигурацией и применением различных build tool-ов и опций. Помимо этого: - Встроенный язык сценариев - Пользовательские custom-сбороки - Использование make-скриптов на post, pre-build steps - Input branch parameters & options

Slide 9

Slide 9 text

9 © Copyright 2016 EMC Corporation. All rights reserved. GENERIC JOBS Параметризированный Jenkins Build

Slide 10

Slide 10 text

10 © Copyright 2016 EMC Corporation. All rights reserved. Использование Groovy scripts Jenkins имеет встроенный язык сценариев, Groovy. Полезен когда необходимо сделать что- то что не предусмотрено каким-либо плагином или параметрами. GENERIC JOBS

Slide 11

Slide 11 text

11 © Copyright 2016 EMC Corporation. All rights reserved. GENERIC JOBS Multi Project Jenkins Job

Slide 12

Slide 12 text

12 © Copyright 2016 EMC Corporation. All rights reserved. Конфигурация Split Install Job Silent install ./run.sh запускается после установки Измерение performance: CP, memory

Slide 13

Slide 13 text

13 © Copyright 2016 EMC Corporation. All rights reserved.

Slide 14

Slide 14 text

14 © Copyright 2016 EMC Corporation. All rights reserved. Post-build execute shell

Slide 15

Slide 15 text

15 © Copyright 2016 EMC Corporation. All rights reserved. Расширение Email Publisher

Slide 16

Slide 16 text

16 © Copyright 2016 EMC Corporation. All rights reserved. GENERIC JOBS Blue Green Deployment Jenkins Job 2 инстанса master-джобы позволяет работать над одним(синим), пока другой(зеленый) остается стабильным Алгоритм Джобы: 1. На каждом шаге проверяется наличие микросервисов указанных в параметрах в продакшен листе 2. Деплоится новый артефакт микросервиса в клауд 3. При добавлении каждого нового инстанса к приложению, проверяется его статус. При каждой ошибке, происходит rollback 4. Удаляется старый URL из нового приложения 5. Останавливается старое приложение 6. Обновляется продакшен лист микросервисов

Slide 17

Slide 17 text

17 © Copyright 2016 EMC Corporation. All rights reserved. Расширение Active Choices Parameter

Slide 18

Slide 18 text

18 © Copyright 2016 EMC Corporation. All rights reserved. GENERIC JOBS Virtual Machine Packaging Job

Slide 19

Slide 19 text

19 © Copyright 2016 EMC Corporation. All rights reserved. WRAPPERS

Slide 20

Slide 20 text

20 © Copyright 2016 EMC Corporation. All rights reserved. • Универсальные модули (как для *nix и windows систем) • Удобное дополнение для build server-ов, применимое в облаке, где контролировать построение build инфраструктуры обычным способом не подходит • Могут быть полезны когда разным сервисам требуются разные версии build tool • Если в проекте используются скрипты, ими удобно управлять используя wrapper • Support tools: Maven, Ant, Gradle (OS: Win 64, Linux) Как реализован wrapper: Указываем версию tool во wrapper.properties distributionUrl = http://distributions/tool-1.12-bin.zip Определяется место установки дистрибутива, откуда будет вызван tool-launcher.jar Скачивается/распаковывается архив Установка build tool Wrapper Build tools wrappers

Slide 21

Slide 21 text

21 © Copyright 2016 EMC Corporation. All rights reserved. • Декларируем wrapper task: build.gradle -> task wrapper(type: Wrapper) { gradleVersion = '2.6' //собрать gradle 2.6 } • Запускаем task: Bash $ ./gradlew Windows gradlew.bat clean install :wrapper BUILD SUCCESSFUL • Cгенерированные файлы сохраняются в vcs: gradlew, gradle-wrapper.jar Wrapper Запуск task с помощью wrapper

Slide 22

Slide 22 text

22 © Copyright 2016 EMC Corporation. All rights reserved.

Slide 23

Slide 23 text

23 © Copyright 2016 EMC Corporation. All rights reserved.

Slide 24

Slide 24 text

24 © Copyright 2016 EMC Corporation. All rights reserved. • Configuration as Code • Reproducible, stable & self-contained builds • Wrapper хранится в VCS : - Всегда соответствует версии build скрипта - В любой момент времени можно сделать checkout версии двух годовой давности • Тем не менее коммитить wrapper в VCS не совсем правильно • Если ваша организация добавляет скрипты, ими удобно управлять используя wrapper Wrapper Pros & cons

Slide 25

Slide 25 text

25 © Copyright 2016 EMC Corporation. All rights reserved. CONCLUSION

Slide 26

Slide 26 text

26 © Copyright 2016 EMC Corporation. All rights reserved. ADDITIONAL NOTES • Jenkins – это мощный инструмент непрерывной интеграции, который автоматизирует множество процессов и рутинных задач связанных с настройкой и мониторингом изменений при работе с сервером. • Но, помимо этого, Jenkins все же стоит рассматривать как настраиваемую платформу • Большое число «плагинов» позволяет использовать Jenkins во многих сценариях • Но если встает необходимость добавить что-то что не предусмотрено плагинами, то свободное определение настроек (generic jobs) и модули будут незаменимы.

Slide 27

Slide 27 text

27 © Copyright 2016 EMC Corporation. All rights reserved. Q&A

Slide 28

Slide 28 text

No content