scaling software builds with jenkins

65
Scaling Software Builds with Jenkins 01

Upload: aestas-it

Post on 13-May-2015

1.430 views

Category:

Technology


0 download

DESCRIPTION

This talk revolves around the scalability strategies for Jenkins, the most used Continuous Integration server. In particular, the talk focuses on how to scale Jenkins on the cloud (Amazon EC2) and create a build matrix so that the code can be built on different OSes. Furthermore, we will also look at the Cloudbees offering.

TRANSCRIPT

Page 1: Scaling software builds with Jenkins

Scaling Software Buildswith Jenkins

01

Page 2: Scaling software builds with Jenkins

About me

Name: Andrey Adamovich

Bio: Developer, coach, speaker, author

Company: Aestas/IT

E-mail: [email protected]

Linkedin: http://www.linkedin.com/in/andreyadamovich

•••••

02

Page 3: Scaling software builds with Jenkins

Software development process

03

Page 4: Scaling software builds with Jenkins

Why scale?04

Page 5: Scaling software builds with Jenkins

Feedback loop

05

Page 6: Scaling software builds with Jenkins

Reason 106

Page 7: Scaling software builds with Jenkins

Monolithicbuild

07

Page 8: Scaling software builds with Jenkins

Monolithic build

Time-consuming

Resource-consuming

Frustration-accumulating

•••

08

Page 9: Scaling software builds with Jenkins

Before youcan scale...09

Page 10: Scaling software builds with Jenkins

SPLIT!!!10

Page 11: Scaling software builds with Jenkins

Reason 211

Page 12: Scaling software builds with Jenkins

Too manythings to

build12

Page 13: Scaling software builds with Jenkins

Too many things to build

Too many components

Too many branches

Too many unit/integration tests

Too many validation rules

••••

13

Page 14: Scaling software builds with Jenkins

Reason 314

Page 15: Scaling software builds with Jenkins

Too manythings to test

15

Page 16: Scaling software builds with Jenkins

Too many test variations

Different operating systems

Different target platforms

Different markets

Different customers

••••

16

Page 17: Scaling software builds with Jenkins

Reason 417

Page 18: Scaling software builds with Jenkins

Lack ofresources

18

Page 19: Scaling software builds with Jenkins

Reason 519

Page 20: Scaling software builds with Jenkins

Lack of time!20

Page 21: Scaling software builds with Jenkins

Solutions?21

Page 22: Scaling software builds with Jenkins

Add morehardware!

22

Page 23: Scaling software builds with Jenkins

or...23

Page 24: Scaling software builds with Jenkins

Go to theCloud!

24

Page 25: Scaling software builds with Jenkins

Who is Jenkins?

25

Page 26: Scaling software builds with Jenkins

Architecture

26

Page 27: Scaling software builds with Jenkins

UI

27

Page 28: Scaling software builds with Jenkins

Master/Slave

28

Page 29: Scaling software builds with Jenkins

Labelling

29

Page 30: Scaling software builds with Jenkins

Slaves vs.Executors

30

Page 31: Scaling software builds with Jenkins

Executor contention

31

Page 32: Scaling software builds with Jenkins

Other types of contention

CPU contention

I/O contention

••

32

Page 33: Scaling software builds with Jenkins

Cloud slaves

33

Page 34: Scaling software builds with Jenkins

Executor scaling

34

Page 35: Scaling software builds with Jenkins

Amazon Web Services

35

Page 36: Scaling software builds with Jenkins

Elastic Compute Cloud

instances

storage

images

•••

36

Page 37: Scaling software builds with Jenkins

EC2 Console

37

Page 38: Scaling software builds with Jenkins

ALERT!!!38

Page 39: Scaling software builds with Jenkins

It's not free!39

Page 40: Scaling software builds with Jenkins

But...40

Page 41: Scaling software builds with Jenkins

There is aFree Tier!

41

Page 42: Scaling software builds with Jenkins

Cost calculations

Name Compute Units Memory Hourly Cost

t1.micro 2 0.60 GB $0.02

m1.small 1 1.70 GB $0.06

c1.medium 5 1.70 GB $0.14

m1.medium 2 3.75 GB $0.12

m1.large 4 7.50 GB $0.24

c1.xlarge 20 7.00 GB $0.58

m3.xlarge 13 15.00 GB $0.5042

Page 43: Scaling software builds with Jenkins

Labor cost

43

Page 44: Scaling software builds with Jenkins

Public access44

Page 45: Scaling software builds with Jenkins

Public Clouds

VMWare vCloud

Ubuntu Enterprise Cloud

Microsoft Azur

Google Cloud

Digital Ocean

Cloudbees Cloud

••••••

45

Page 46: Scaling software builds with Jenkins

Private Clouds

OpenStack

VMWare vSphere

Amazon VPC

•••

46

Page 47: Scaling software builds with Jenkins

Jenkins plugins

47

Page 48: Scaling software builds with Jenkins

Jenkins EC2 plugin

Allow Jenkins to start slaves on EC2 or Ubuntu Enterprise Cloud

(Eucalyptus) on demand, and kill them as they get unused. With this

plugin, if Jenkins notices that your build cluster is overloaded, it'll start

instances using the EC2 API and automatically connect them as

Jenkins slaves.

48

Page 49: Scaling software builds with Jenkins

Preparation49

Page 50: Scaling software builds with Jenkins

1. Configure access/secret key

50

Page 51: Scaling software builds with Jenkins

2. Configure key pair

51

Page 52: Scaling software builds with Jenkins

3. Configure security group

52

Page 53: Scaling software builds with Jenkins

4. Select machine image

Amazon base images

AWS market place

Create your own

•••

53

Page 54: Scaling software builds with Jenkins

5.1. Configure EC2 plugin

54

Page 55: Scaling software builds with Jenkins

5.2. Configure EC2 plugin

55

Page 56: Scaling software builds with Jenkins

5.3. Configure EC2 plugin

56

Page 57: Scaling software builds with Jenkins

Demo57

Page 58: Scaling software builds with Jenkins

Cloudbees

Company behind Jenkins

Kohsuke Kawaguchi (author of Hudson/Jenkins) works there

Jenkins Enterprise Edition

Jenkins Cloud = DEV@Cloud

••••

58

Page 59: Scaling software builds with Jenkins

DEV@Cloud

API & SDK

Pricing based on size (# masters/executors/slaves)

Slave OS variety

iOS coming soon

Windows Phones/Tablets coming soon

Manual or auto-scaling

Minute-based pricing

•••

••

••

59

Page 60: Scaling software builds with Jenkins

Free-tier

300 free build minutes a month

1 build executor

FOSS programme for open-source projects

•••

60

Page 61: Scaling software builds with Jenkins

Services Partner

61

Page 62: Scaling software builds with Jenkins

Questions?62

Page 63: Scaling software builds with Jenkins

GitHub projects

Jenkins setup:

https://github.com/aestasit/talks2013-devconfu-scaling-builds-setup

Slides:

https://github.com/aestasit/talks2013-devconfu-scaling-builds-slides

63

Page 64: Scaling software builds with Jenkins

Scaling Software Builds with Jenkins

Author: Andrey Adamovich

Company: Aestas/IT

E-mail: [email protected]

Linkedin: http://www.linkedin.com/in/andreyadamovich

••••

64

Page 65: Scaling software builds with Jenkins

Feedback

65