63
© 2015 CloudBees, Inc. All Rights Reserved 1 © 2015 CloudBees, Inc. All Rights Reserved Workflow, Containers, & Beyond Kohsuke Kawaguchi Creator of Jenkins @kohsukekawa

Workflow, container, and beyond

Embed Size (px)

Citation preview

Page 1: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

1© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Workflow, Containers, & Beyond

Kohsuke KawaguchiCreator of Jenkins @kohsukekawa

Page 2: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

2© 2015 CloudBees, Inc. All Rights Reserved 2

Workflow

Page 3: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

3

Page 4: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

4

Page 5: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

5

Page 6: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

6

Page 7: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

7

node(“linux”) {git ‘https://github.com/foo/bar.git’sh “mvn install”parallel({ sh “./regression-test.sh” },{ sh “./performance-test.sh” })…

}

Page 8: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

8

Key Features• Pipeline as Code• Parallel, other interesting control flow• Allocate slave nodes and workspaces

–As many as you like, whenever and wherever• Standard project concepts

–SCM, artifacts, test reports, …

Page 9: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

9

Build #153Build #153

Page 10: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

10

1.10

Page 11: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

11

Reusing Workflow

Page 12: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

12

node(“linux”) {git ‘https://github.com/foo/bar.git’sh “mvn install”parallel({ sh “./regression-test.sh” },{ sh “./performance-test.sh” })…

}

Page 13: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

13

acme_service “bar”

Page 14: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

14

Custom DSLs & Push

Page 15: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

15

vars/acme_service.groovydef call(name) { node(“linux”) {

git “https://github.com/foo/${name}.git”

sh “mvn install”parallel(

{ sh “./regression-test.sh” },{ sh “./performance-test.sh” }

)…

} }

Page 16: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

16

Use Cases• I have lots of repos that are built, tested, & deployed the same way (e.g., micro-services)

• I want to maintain centralized control of the build process

• My product developers aren’t Jenkins experts

Page 17: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

17

Using Workflow is as easy as 1, 2, 31. Create “Jenkinsfile” in repo2. Create job in Jenkins3. Specify SCM URL

Page 18: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

18

To keep it simple …

Page 19: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

19

Demo

Page 20: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

20© 2015 CloudBees, Inc. All Rights Reserved 20

Containers

Page 21: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

21

Page 22: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

22

Containerized apps

Page 23: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

23

Docker Commons Plugin

Page 24: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

24

Transforming container

Page 25: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

25

Docker Hub Notification Trigger plugin

Page 26: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

26

Validation of containers

Page 27: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

27

Promotion of containers

Page 28: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

28

Page 29: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

29

Too many image problems• Image names change all the time

• ‘latest’ changes what it points to

• Image gets transformed all the time

Page 30: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

30

Page 31: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

31

Docker Traceability Plugin

Page 32: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

33

Demo Scenario

base image

app image

app src

base src

Page 33: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

34

Demo

Page 34: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

35© 2015 CloudBees, Inc. All Rights Reserved 35

Beyond

Page 35: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

36

Title goes here

36

Page 36: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

37

Page 37: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

38

Title goes here

38

Page 38: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

39

Installation growth y/y

30%

Page 39: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

40

Next 10 years

Page 40: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

41

Page 41: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

42

Jenkins needs to adjust to this change• Our pitch on website hasn’t changed• We still bundle CVS & Subversion plugins• Lots of new stuff being done, but requires hand-assembly

Page 42: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

43

Jenkins 2.0

Page 43: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

44

Goals• Claim Continuous Delivery space

–We have lots of pieces, but we are not communicating any of them very well

• Revisit out-of-the-box experience of Jenkins

–Things people use everyday has been stale• Keep the ecosystem that makes Jenkins great

2.0 sends a clear signal that we are moving forward

Page 44: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

45

Aspirational Timeline• Announce intention publicly (now)• Discuss and nail the details of 2.0 (Sep-Oct)

• Execution (Oct-Dec)–Periodic alpha/beta releases & feedbacks–PR activities–RC

• Work on plugin “2.0 readiness” (Jan)–Ensure key plugins are compatible

• Release (end-Jan)• Drop 1.x development

Page 45: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

46

Pitfalls to avoid

Developers not getting

it

Page 46: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

47

Pitfalls to avoid

Scope creep

Page 47: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

48

Pitfalls to avoid

Disruptive 2.0

Page 48: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

49

Pitfalls to avoid

Breaking plugins

Page 49: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

50

Pitfalls to avoid

Data incompatibi

lity

Page 50: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

51

Pitfalls to avoid

Massive Internal Changes

Page 51: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

52

Pitfalls to avoid

Focusing too much on internals

Page 52: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

53

That means …• Jenkins 2.0 needs to be limited-scope “evolutionary improvements” exercise

• Not “let’s start from scratch” kind of 2.0

Page 53: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

54

Three Pillars1. Messaging changes

2. Out of the box experience that caters to CD needs

3. Targeted internal plumbing changes

Page 54: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

55

Messaging•jenkins-ci.org → jenkins.cd•More up-to-date feature list page

•Authoritative & curated getting started guide

•Easier-to-contribute blog•Room for future growth

–Better plugin directory

Page 55: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

56

Messaging Infra•Infra that enables

–Drupal → static site generation

–Confluence retirement (?)

Page 56: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

57

OOTB Experience•Initial setup wizard

–Recommend initial set of plugins•UX refresh

Page 57: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

58

OOTB Experience for CD•Deliver modern functionalities, OOTB

–Workflow–Pipeline as Code–Folders

•CloudBees is open-sourcing workflow stage view

Page 58: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

59

Internals• Policy for removing deprecated APIs• Brand-new frontend development method• Selected library upgrades

–Limited to “should be compatible” kinds• Java 8 & Servlet 3.0

Page 59: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

60

Page 60: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

61© 2015 CloudBees, Inc. All Rights Reserved 61

Discussion

Page 61: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

62© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Page 62: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

63

Integration/consumption of containers

ircbot: 51jira: 7wiki: 13

Page 63: Workflow, container, and beyond

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

64