jenkins evolutions

Post on 06-Jan-2016

81 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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

Jenkins Evolutions

Toomas RömerZeroTurnaroundTartu, Estonia, 5500miles

@toomasrhttp://dow.ngra.de/

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

Why Evolutions?

Testing

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

Why Evolutions?

Continuous Integration

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

Why Evolutions?

Continuous Deployment

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

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

Why Evolutions?

AuthenticationAuthorizationLoggingNotificationsRemote machines

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

Why Evolutions?

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

Why Evolutions?

Cron on Steroids

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

Agenda

Background

Stories–Functional Tests–Servlet Tests–Random Thoughts

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

Background - 2008

First installation

Clicked “Run” when wanted to test stuff

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)

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

Custom Dashboard

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

Story of Functional Tests

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

Functional JDK Tests

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

Functional JDK Tests

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• …

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

Functional JDK Tests

Which Jenkins feature is the best fit here?

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

Functional JDK Tests

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

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

Functional JDK Tests

Groovy Script

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

Functional JDK Tests

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

Functional JDK Tests

How to get test results? Jenkins feature…

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

Functional JDK Tests

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

Functional JDK Tests

Sloooow

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

Functional JDK Tests

IO

CPU

Memory

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

Functional JDK Tests

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

Functional JDK Tests

Cloud– 1 small instance per JDK

– Manual update of AMIs

– Slow

– Scales!

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

Functional JDK Tests

Which Jenkins plugin to use?

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

Functional JDK Tests

Which Jenkins plugin to use for results?

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

Functional JDK Tests

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

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

Story of Servlet Tests

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…

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

Servlet Tests

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

Servlet Tests

Interface aliases

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

Servlet Tests – 1 server, 2 jobs

Which Jenkins feature to use?

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

Servlet Tests – 1 server, 2 jobs

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

ServletTests – 1 server, 2 jobs

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

ServletTests

Deployment

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

Servlet test

Start TomcatCopy WAR files to webapps/

GET /some-urlAssertUpdate applicationGET /some-urlAssert

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

Sloooow

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

Servlet tests

Memory

IO

CPU

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

Testing Multiple Containers

Cloud– 1 Small instance per Container

– Need to update AMIs

– Slow

– Isolation

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

Single Machine

Port Hell

Memory Limits

Speed

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

Story of DVCS

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

Dev and stable

Continuous integration– Slow feedback cycle

– Red results

– Envs impossible to duplicate

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

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

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!)

top related