SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Dernier

Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfChris Hunter
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field 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
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...KokoStevan
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 

Dernier (20)

Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field 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.
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 

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

Notes de l'éditeur

  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