SlideShare ist ein Scribd-Unternehmen logo
1 von 67
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

Weitere ähnliche Inhalte

Ähnlich wie Jenkins Evolutions

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 2012Noah Sussman
 
実践Android Developer Testing
実践Android Developer Testing実践Android Developer Testing
実践Android Developer Testingussy
 
Mercurial DVCS
Mercurial DVCSMercurial DVCS
Mercurial DVCSHosam Aly
 
JUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJUC Paris 2012 — Jenkins @ Nuxeo
JUC Paris 2012 — Jenkins @ NuxeoJulien Carsique
 
Jeeves -natural language interface application
Jeeves -natural language interface applicationJeeves -natural language interface application
Jeeves -natural language interface applicationKaran 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 imagekenro00
 
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.talkUdo Seidel
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for JenkinsLarry 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 MongoDBPablo Godel
 
Web Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsAndy 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 MongoDBNicola Iarocci
 
Easier with visual studio productivity tools
Easier with visual studio productivity toolsEasier with visual studio productivity tools
Easier with visual studio productivity toolsChris 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 JavaRafael Ponte
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxPooja Bhuva
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxannathomasp01
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17Celine George
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...Amil baba
 

Kürzlich hochgeladen (20)

Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 

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

Hinweis der Redaktion

  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