jenkins evolutions

48
Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Jenkins Evolutions Toomas Römer ZeroTurnaround Tartu, Estonia, 5500miles @toomasr http://dow.ngra.de/

Upload: kira

Post on 06-Jan-2016

81 views

Category:

Documents


2 download

DESCRIPTION

Jenkins Evolutions. Toomas Römer ZeroTurnaround Tartu, Estonia, 5500miles @ toomasr http://dow.ngra.de/. Why Evolutions?. Testing. Why Evolutions?. Continuous Integration. Why Evolutions?. Continuous Deployment. Why Evolutions?. Workflow management Trigger jobs Join jobs - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Jenkins Evolutions

Toomas RömerZeroTurnaroundTartu, Estonia, 5500miles

@toomasrhttp://dow.ngra.de/

Page 2: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Why Evolutions?

Testing

Page 3: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Why Evolutions?

Continuous Integration

Page 4: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Why Evolutions?

Continuous Deployment

Page 5: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Why Evolutions?

Workflow management– Trigger jobs– Join jobs

Building softwareTesting buildsPropagating DVCS repositoriesUpdating website– Changelog– Documentation– Nightly builds

Release management

Page 6: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Why Evolutions?

AuthenticationAuthorizationLoggingNotificationsRemote machines

Page 7: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Why Evolutions?

Page 8: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Why Evolutions?

Cron on Steroids

Page 9: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Agenda

Background

Stories–Functional Tests–Servlet Tests–Random Thoughts

Page 10: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Background - 2008

First installation

Clicked “Run” when wanted to test stuff

Page 11: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Background - 2011

200 jobs

5 dedicated machines

Amazon ~7000 instance-hour per month

3 in house plugins developed, 2 abandoned

Custom dashboard (35 x 215 grid)

Page 12: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Custom Dashboard

Page 13: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Story of Functional Tests

Page 14: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Page 15: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Page 16: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Per JDK– Per functional test

• Compile couple of classes• Run some methods and assert• Recompile couple of classes• Run some methods and assert• …

Page 17: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Which Jenkins feature is the best fit here?

Page 18: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Page 19: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Creates about 10 000 new files

Compile about 1700 Java class files

Invoke the JVM 550 times

Page 20: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Groovy Script

Page 21: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Page 22: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

How to get test results? Jenkins feature…

Page 23: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Page 24: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Sloooow

Page 25: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

IO

CPU

Memory

Page 26: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Page 27: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Cloud– 1 small instance per JDK

– Manual update of AMIs

– Slow

– Scales!

Page 28: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Which Jenkins plugin to use?

Page 29: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

Which Jenkins plugin to use for results?

Page 30: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Functional JDK Tests

SSD– 30% gain in time, that’s it

Page 31: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Story of Servlet Tests

Page 32: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Servlet tests

Start a container version– Websphere, Weblogic, Glassfish etc.

Deploy applications

Test results, reload changes, test results…

Page 33: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Servlet Tests

Page 34: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Servlet Tests

Interface aliases

Page 35: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Servlet Tests – 1 server, 2 jobs

Which Jenkins feature to use?

Page 36: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Servlet Tests – 1 server, 2 jobs

Page 37: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

ServletTests – 1 server, 2 jobs

Page 38: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

ServletTests

Deployment

Page 39: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Servlet test

Start TomcatCopy WAR files to webapps/

GET /some-urlAssertUpdate applicationGET /some-urlAssert

Page 40: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Sloooow

Page 41: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Servlet tests

Memory

IO

CPU

Page 42: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Testing Multiple Containers

Cloud– 1 Small instance per Container

– Need to update AMIs

– Slow

– Isolation

Page 43: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Single Machine

Port Hell

Memory Limits

Speed

Page 44: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Story of DVCS

Page 45: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Dev and stable

Continuous integration– Slow feedback cycle

– Red results

– Envs impossible to duplicate

Page 46: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Dev and stable

2 phase continuous integration– Subset of the full test suite

– On success propagate to stable• hg push …

– Run full test suite

Page 47: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

General observations

Fight for executors– Don’t do multiple releases on the same day

Optimum utilization

Feedback should be quick

Page 48: Jenkins Evolutions

Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf

Thank You To Our SponsorsPlatinumSponsor

GoldSponsor

SilverSponsor

BronzeSponsors

Coming Soon: The CloudBees Newsletter for Jenkins

Please complete the Jenkins survey to help us better serve the community

(bonus: a chance to win an Apple TV!)