SlideShare a Scribd company logo
JFokus 2012                             Stockholm, Feb 14th 2012   #jfokus


       Jenkins Evolutions

        Toomas Römer
        ZeroTurnaround
        Tartu, Estonia, 500km

                                          @toomasr
                                http://dow.ngra.de/
2
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?




               Testing
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?




      Continuous Integration
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?




     Continuous Deployment
JFokus 2012                   Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?

     Workflow management
      – Trigger jobs
      – Join jobs
     Building software
     Testing builds
     Propagating DVCS repositories
     Updating website
      – Changelog
      – Documentation
      – Nightly builds
     Release management
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?

      Authentication
      Authorization
      Logging
      Notifications
      Remote machines
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?




              Cron on Steroids
JFokus 2012            Stockholm, Feb 14th 2012   #jfokus



   Why Evolutions?




      Unopinionated build tool
              (via @lusis)
JFokus 2012                Stockholm, Feb 14th 2012   #jfokus



   Agenda



      Background

      Stories
      – Functional Tests
      – Servlet Tests
      – Random Thoughts
JFokus 2012                  Stockholm, Feb 14th 2012   #jfokus



   Background - 2008

     First installation




     Clicked “Run” when wanted to test stuff
JFokus 2012                   Stockholm, Feb 14th 2012   #jfokus



   Background - 2012

     200 300 jobs

     5 8 dedicated machines

     Amazon ~7000 instance-hour per month

     3 in house plugins developed, 2
     abandoned

     Custom dashboard (35 x 215 grid)
JFokus 2012   Stockholm, Feb 14th 2012   #jfokus




                                            14
JFokus 2012   Stockholm, Feb 14th 2012   #jfokus




                                            15
JFokus 2012            Stockholm, Feb 14th 2012   #jfokus




https://github.com/jenkinsci/jenkins-
scripts




                                                     15
JFokus 2012           Stockholm, Feb 14th 2012   #jfokus



   Custom Dashboard
JFokus 2012         Stockholm, Feb 14th 2012   #jfokus




     Story of Functional Tests
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
JFokus 2012                           Stockholm, Feb 14th 2012   #jfokus



   JRebel 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
         •   …
JFokus 2012                   Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




     Which Jenkins feature is the best fit here?
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




     Groovy Script
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
JFokus 2012                  Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




     How to get test results? Jenkins feature…
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




              Output JUnit XML!
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
JFokus 2012                 Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
     Creates about 10 000 new files



     Compile about 1700 Java class files



     Invoke the JVM 550 times
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




              Sloooow
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
     IO



     CPU



     Memory
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
     Bare metal



     Cloud



     Bare metal
JFokus 2012                        Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
     Cloud
      – 1 small instance per JDK

      – Manual update of AMIs

      – Slow

      – Scales!
JFokus 2012                  Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




     Which Jenkins plugin to use?
JFokus 2012             Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




          Amazon EC2 Plugin
JFokus 2012                   Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests




     Which Jenkins plugin to use for results?
JFokus 2012                     Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests
     Bare metal
      – 8 core & 16GB RAM gaming machines

      – Recycled developer machines

      – Marketing demo machines (iMacs)
JFokus 2012                           Stockholm, Feb 14th 2012   #jfokus



   JRebel Functional JDK Tests


     SSD
      – 30% gain in time, that’s it
JFokus 2012     Stockholm, Feb 14th 2012   #jfokus




   Story of Servlet Tests
JFokus 2012                      Stockholm, Feb 14th 2012   #jfokus



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



     Deploy applications



     Test results, reload changes, test results…
JFokus 2012         Stockholm, Feb 14th 2012   #jfokus



   Servlet tests




          How do you start a
               server?
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus



   Servlet tests




          Duh! With a startup
                script!
JFokus 2012                  Stockholm, Feb 14th 2012   #jfokus



   Servlet Tests – 1 app server, 2 jobs




     Which Jenkins feature to use?
JFokus 2012              Stockholm, Feb 14th 2012   #jfokus



   Servlet Tests – 1 app server, 2 jobs
JFokus 2012              Stockholm, Feb 14th 2012   #jfokus



   Servlet Tests – 1 app server, 2 jobs
JFokus 2012        Stockholm, Feb 14th 2012   #jfokus



   Servlet Tests
JFokus 2012        Stockholm, Feb 14th 2012   #jfokus



   Servlet Tests




        How do you deploy an
            application?
JFokus 2012                Stockholm, Feb 14th 2012   #jfokus



   Servlet Tests
     Start Tomcat
     Copy WAR files to webapps/

     GET /some-url
     Assert
     Update application
     GET /some-url
     Assert
JFokus 2012        Stockholm, Feb 14th 2012   #jfokus




              Sloooow
JFokus 2012        Stockholm, Feb 14th 2012   #jfokus



   Servlet Tests
     Memory



     IO



     CPU
JFokus 2012                      Stockholm, Feb 14th 2012   #jfokus



   Testing Multiple Containers
     Cloud
      – 1 Small instance per Container

      – Need to update AMIs

      – Slow

      – Isolation
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus



   Single Machine
     Port Hell



     Memory Limits



     Speed
JFokus 2012   Stockholm, Feb 14th 2012   #jfokus




    Story of DVCS
JFokus 2012        Stockholm, Feb 14th 2012   #jfokus



   Story of DVCS
JFokus 2012                       Stockholm, Feb 14th 2012   #jfokus



   Story of DVCS
     Problem
      – Many JDKs
      – Many App Servers
      – Many Servlet Containers
JFokus 2012                       Stockholm, Feb 14th 2012   #jfokus



   Story of DVCS
     Problem
      – Many JDKs
      – Many App Servers
      – Many Servlet Containers


     Slow feedback cycle
JFokus 2012                       Stockholm, Feb 14th 2012   #jfokus



   Story of DVCS
     Problem
      – Many JDKs
      – Many App Servers
      – Many Servlet Containers


     Slow feedback cycle
JFokus 2012                       Stockholm, Feb 14th 2012   #jfokus



   Story of DVCS
     Problem
      – Many JDKs
      – Many App Servers
      – Many Servlet Containers


     Slow feedback cycle

     Difficult to install environments
JFokus 2012                      Stockholm, Feb 14th 2012   #jfokus



   Story of DVCS


                  Tests green?
               Push to branch/repository

     DEV                                      STABLE
n tests on N servers                           m tests on M
      (30 min)                                   servers
                                                (3 hours)
JFokus 2012        Stockholm, Feb 14th 2012   #jfokus



   Story of DVCS
JFokus 2012   Stockholm, Feb 14th 2012   #jfokus




      General stuff
JFokus 2012    Stockholm, Feb 14th 2012   #jfokus




    Fight for executors
JFokus 2012          Stockholm, Feb 14th 2012   #jfokus




              Optimum
              utilization
JFokus 2012     Stockholm, Feb 14th 2012   #jfokus




        Quick feedback
JFokus 2012      Stockholm, Feb 14th 2012   #jfokus




        There is an app
        plugin for that
JFokus 2012   Stockholm, Feb 14th 2012   #jfokus




       Q&A

More Related Content

Similar to Jenkins Evolutions

Cdi - why still not buddy?
Cdi - why still not buddy?Cdi - why still not buddy?
Cdi - why still not buddy?
Leopoldo Barreiro
 
Jenkins data mining on the command line - Jenkins User Conference NYC 2012
Jenkins data mining on the command line - Jenkins User Conference NYC 2012Jenkins data mining on the command line - Jenkins User Conference NYC 2012
Jenkins data mining on the command line - Jenkins User Conference NYC 2012
Noah Sussman
 
実践Android Developer Testing
実践Android Developer Testing実践Android Developer Testing
実践Android Developer Testingussy
 
Mercurial DVCS
Mercurial DVCSMercurial DVCS
Mercurial DVCS
Hosam Aly
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ Nuxeo
Julien Carsique
 
Jeeves -natural language interface application
Jeeves -natural language interface applicationJeeves -natural language interface application
Jeeves -natural language interface application
Karan Harsh Wardhan
 
High Stakes Testing on Sakai with Samigo and a Locked-down OS image
High Stakes Testing on Sakai with Samigo and a Locked-down OS imageHigh Stakes Testing on Sakai with Samigo and a Locked-down OS image
High Stakes Testing on Sakai with Samigo and a Locked-down OS image
kenro00
 
CodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as codeCodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as codeCodecamp Romania
 
Ostd.ksplice.talk
Ostd.ksplice.talkOstd.ksplice.talk
Ostd.ksplice.talk
Udo Seidel
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for Jenkins
Larry Cai
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DAnton Weiss
 
The challenge - testing the oVirt project
The challenge - testing the oVirt projectThe challenge - testing the oVirt project
The challenge - testing the oVirt projectEyal Edri
 
Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDB
Pablo Godel
 
Web Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the Basics
Andy Davies
 
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Wooga
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDB
Nicola Iarocci
 
Easier with visual studio productivity tools
Easier with visual studio productivity toolsEasier with visual studio productivity tools
Easier with visual studio productivity tools
Chris Eargle
 
Diseño de APIs con Ruby
Diseño de APIs con RubyDiseño de APIs con Ruby
Diseño de APIs con RubySoftware Guru
 
Migrations for Java
Migrations for JavaMigrations for Java
Migrations for Java
Rafael Ponte
 

Similar to Jenkins Evolutions (20)

Cdi - why still not buddy?
Cdi - why still not buddy?Cdi - why still not buddy?
Cdi - why still not buddy?
 
Jenkins data mining on the command line - Jenkins User Conference NYC 2012
Jenkins data mining on the command line - Jenkins User Conference NYC 2012Jenkins data mining on the command line - Jenkins User Conference NYC 2012
Jenkins data mining on the command line - Jenkins User Conference NYC 2012
 
実践Android Developer Testing
実践Android Developer Testing実践Android Developer Testing
実践Android Developer Testing
 
Mercurial DVCS
Mercurial DVCSMercurial DVCS
Mercurial DVCS
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ Nuxeo
 
Jeeves -natural language interface application
Jeeves -natural language interface applicationJeeves -natural language interface application
Jeeves -natural language interface application
 
High Stakes Testing on Sakai with Samigo and a Locked-down OS image
High Stakes Testing on Sakai with Samigo and a Locked-down OS imageHigh Stakes Testing on Sakai with Samigo and a Locked-down OS image
High Stakes Testing on Sakai with Samigo and a Locked-down OS image
 
CodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as codeCodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as code
 
Ostd.ksplice.talk
Ostd.ksplice.talkOstd.ksplice.talk
Ostd.ksplice.talk
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for Jenkins
 
An Introduction to EclipseRT
An Introduction to EclipseRTAn Introduction to EclipseRT
An Introduction to EclipseRT
 
Continuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&DContinuous Delivery for Mobile R&D
Continuous Delivery for Mobile R&D
 
The challenge - testing the oVirt project
The challenge - testing the oVirt projectThe challenge - testing the oVirt project
The challenge - testing the oVirt project
 
Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDB
 
Web Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the Basics
 
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...
 
Developing RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDBDeveloping RESTful Web APIs with Python, Flask and MongoDB
Developing RESTful Web APIs with Python, Flask and MongoDB
 
Easier with visual studio productivity tools
Easier with visual studio productivity toolsEasier with visual studio productivity tools
Easier with visual studio productivity tools
 
Diseño de APIs con Ruby
Diseño de APIs con RubyDiseño de APIs con Ruby
Diseño de APIs con Ruby
 
Migrations for Java
Migrations for JavaMigrations for Java
Migrations for Java
 

Recently uploaded

The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
MIRIAMSALINAS13
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 

Recently uploaded (20)

The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXXPhrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
Phrasal Verbs.XXXXXXXXXXXXXXXXXXXXXXXXXX
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 

Jenkins Evolutions

  • 1. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Jenkins Evolutions Toomas Römer ZeroTurnaround Tartu, Estonia, 500km @toomasr http://dow.ngra.de/
  • 2. 2
  • 3. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions? Testing
  • 4. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions? Continuous Integration
  • 5. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions? Continuous Deployment
  • 6. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions? Workflow management – Trigger jobs – Join jobs Building software Testing builds Propagating DVCS repositories Updating website – Changelog – Documentation – Nightly builds Release management
  • 7. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions? Authentication Authorization Logging Notifications Remote machines
  • 8. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions?
  • 9. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions? Cron on Steroids
  • 10. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Why Evolutions? Unopinionated build tool (via @lusis)
  • 11. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Agenda Background Stories – Functional Tests – Servlet Tests – Random Thoughts
  • 12. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Background - 2008 First installation Clicked “Run” when wanted to test stuff
  • 13. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Background - 2012 200 300 jobs 5 8 dedicated machines Amazon ~7000 instance-hour per month 3 in house plugins developed, 2 abandoned Custom dashboard (35 x 215 grid)
  • 14. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus 14
  • 15. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus 15
  • 16. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus https://github.com/jenkinsci/jenkins- scripts 15
  • 17. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Custom Dashboard
  • 18. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of Functional Tests
  • 19. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests
  • 20. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests
  • 21. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel 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 • …
  • 22. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Which Jenkins feature is the best fit here?
  • 23. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests
  • 24. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Groovy Script
  • 25. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests
  • 26. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests How to get test results? Jenkins feature…
  • 27. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Output JUnit XML!
  • 28. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests
  • 29. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Creates about 10 000 new files Compile about 1700 Java class files Invoke the JVM 550 times
  • 30. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Sloooow
  • 31. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests IO CPU Memory
  • 32. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests
  • 33. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Bare metal Cloud Bare metal
  • 34. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Cloud – 1 small instance per JDK – Manual update of AMIs – Slow – Scales!
  • 35. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Which Jenkins plugin to use?
  • 36. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Amazon EC2 Plugin
  • 37. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Which Jenkins plugin to use for results?
  • 38. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests Bare metal – 8 core & 16GB RAM gaming machines – Recycled developer machines – Marketing demo machines (iMacs)
  • 39. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus JRebel Functional JDK Tests SSD – 30% gain in time, that’s it
  • 40. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of Servlet Tests
  • 41. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet tests Start a container version – Websphere, Weblogic, Glassfish etc. Deploy applications Test results, reload changes, test results…
  • 42. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet tests How do you start a server?
  • 43. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet tests Duh! With a startup script!
  • 44. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet Tests – 1 app server, 2 jobs Which Jenkins feature to use?
  • 45. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet Tests – 1 app server, 2 jobs
  • 46. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet Tests – 1 app server, 2 jobs
  • 47. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet Tests
  • 48. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet Tests How do you deploy an application?
  • 49. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet Tests Start Tomcat Copy WAR files to webapps/ GET /some-url Assert Update application GET /some-url Assert
  • 50. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Sloooow
  • 51. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Servlet Tests Memory IO CPU
  • 52. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Testing Multiple Containers Cloud – 1 Small instance per Container – Need to update AMIs – Slow – Isolation
  • 53. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Single Machine Port Hell Memory Limits Speed
  • 54. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS
  • 55. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS
  • 56. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS Problem – Many JDKs – Many App Servers – Many Servlet Containers
  • 57. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS Problem – Many JDKs – Many App Servers – Many Servlet Containers Slow feedback cycle
  • 58. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS Problem – Many JDKs – Many App Servers – Many Servlet Containers Slow feedback cycle
  • 59. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS Problem – Many JDKs – Many App Servers – Many Servlet Containers Slow feedback cycle Difficult to install environments
  • 60. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS Tests green? Push to branch/repository DEV STABLE n tests on N servers m tests on M (30 min) servers (3 hours)
  • 61. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Story of DVCS
  • 62. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus General stuff
  • 63. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Fight for executors
  • 64. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Optimum utilization
  • 65. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Quick feedback
  • 66. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus There is an app plugin for that
  • 67. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus Q&A

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. Dynamic startup scripts – why not show a demo?\nDeploy applications – get stats from Rein\n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n