Jenkins Slave Cloud with Apache Mesos. Klaus Azesberger Reinhard Kiesswetter Infonova GmbH

Size: px
Start display at page:

Download "Jenkins Slave Cloud with Apache Mesos. Klaus Azesberger Reinhard Kiesswetter Infonova GmbH"

Transcription

1 Jenkins Cloud with Apache Mesos Klaus Azesberger Reinhard Kiesswetter Infonova GmbH

2 Agenda Our Jenkins Reasons to adopt our approach Pains of a static slave cloud Live Demo of setup and common ops use cases

3 Standing on the shoulders of giants Vinod Kone ebay PaaS team

4 Our Jenkins 300 Developers 35 + Projects ~ 2500 Jobs One Jenkins to rule them all

5 Features you need with centralized approach Jenkins Master High Availability Maintenance without downtime 100 % reliable pre-prod environment Rollbacks Isolation of builds (through reused VMs)

6 Should you adopt our approach? Costs of this setup Size (of your Jenkins) doesn't matter SysAdmin background helps

7 What we want A single, unified scalable HW resource pool (Mesos)......to run any kind and size of slaves s should be instantly available and lightweight (Docker)

8 Setup listing Jenkins Mesos Plugin Mesos Master Cluster (with Zookeeper) Mesos s Jenkins Docker Images CoreOS Monitoring

9 Problems with static approach Managing Instances Installs Updates / Versioning Backward compatibility Balancing between Labels Sizing Static slaves have a history

10 Problems with static approach Managing Instances Balancing between Labels Sizing Label 2 Label 3 Label 4 Label 1

11 Problems with static approach Managing Instances Build queue Balancing between Labels Sizing Label 2 Label 3 Label 4 Label 1

12 Problems with static approach Managing Instances Build queue Balancing between Labels Sizing Label 2 Label 3 Label 4 Label 1

13 Problems with static approach Managing Instances Balancing between Labels Sizing Waste of Resources VS. Long or even failed builds

14 Setup listing Jenkins Mesos Plugin Mesos Master Cluster (with Zookeeper) Mesos s Jenkins Docker Images CoreOS Monitoring

15 Some Mesos context Scheduler Launches tasks Receives resource offers Executor Executes tasks Launched by the Mesos slave Framework

16 Mesos Jenkins master Standby master Mesos master Standby master Mesos slave Mesos slave Mesos slave Docker executor Docker executor Docker executor Jenkins slave Jenkins slave Jenkins slave

17 Mesos Jenkins Plugin explained Jenkins Mesos Plugin Scheduler cloud Jenkins Master Job Queue Jenkins (Task) Mesos master Job Mesos slave Docker executor 18

18 M S Private Docker Registry 19

19 Sharing is caring

20 Ansible in short 21 Automate setup Automate maintenance Execute commands on a set of hosts yml + python + ssh No agents

21 Demo: Use Cases Scale out HW Update SW (firefox) One can also provide legacy support Change Sizing of slaves One can also provide a set of different sizingvariants

22 Migration without new server Build queue Label 1 Label 2 Label 3 Label 4

23 Jenkins slaves Mesos slaves Label 1 Label 2 Label 3 Label 4

24 Load during business hours Label 1 Label 2 Label 3 Label 4

25 Load during the night Label 1 Label 2 Label 3 Label 4

26 Lessons learned When configuring systemd services keep in mind that the coreos node could be autoupdated at any time When building docker containers for your jenkins slaves respect settings like Timezone and character encoding You should do a soft migration to the mesos cloud with projects that can provide some meaningful feedback in case of problems

27 Klaus Azesberger Technology Architect INFONOVA GmbH A BearingPoint Company Seering 6 A-8141 Unterpremstätten/Graz Austria Tel: Fax: Mobile: [email protected] Reinhard Kiesswetter Senior System Engineer INFONOVA GmbH A BearingPoint Company 32 Seering 6 A-8141 Unterpremstätten/Graz Austria Tel: Fax: Mobile: [email protected]

28 Thank You Sponsors