SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
NoRedeploys
      Instant	
  updates	
  for	
  dev	
  and	
  prod


      Anton	
  Arhipov
      Product	
  Lead,	
  JRebel
      @antonarhipov	
  @javarebel


Saturday, April 21, 12
!!!WARNING!!!




Saturday, April 21, 12
Turnaround	
  cycle
                                     Make	
  a	
  
                                     change



                         Check	
                      Build,
                          the	
                      deploy,
                         result                       wait

Saturday, April 21, 12
Build
                                Resolve	
  dependencies

                                Copy	
  staGc	
  resources

                                    Compile	
  classes

                             Package	
  modules	
  into	
  JARs

                         Package	
  everything	
  into	
  WAR/EAR
Saturday, April 21, 12
Build
                                Resolve	
  dependencies

                                Copy	
  staGc	
  resources

                                    Compile	
  classes

                             Package	
  modules	
  into	
  JARs

                         Package	
  everything	
  into	
  WAR/EAR
Saturday, April 21, 12
Exploded	
  Directory	
  Deployment




Saturday, April 21, 12
Exploded	
  Directory	
  Deployment




Saturday, April 21, 12
JeAy	
  Launcher
  public class Launcher {

       public static void main(String[] args) {

           Server server = new Server();

           SelectChannelConnector connector
                                = new SelectChannelConnector();
           connector.setPort(8080);
           server.addConnector(connector);

           WebAppContext context = new WebAppContext("war", "/");
           server.setHandler(context);
           server.start();

       }

  }
Saturday, April 21, 12
Deployment

      1–60s                     30s	
  –	
  15min       ~1min



                         applicaBon	
  deployment	
  
                           container	
  boot	
  Bme
                               navigaBon

Saturday, April 21, 12
Deployment

      1–60s                     30s	
  –	
  15min           ~1min
                                                      OOM



                         applicaBon	
  deployment	
  
                           container	
  boot	
  Bme
                               navigaBon

Saturday, April 21, 12
OutOfMemoryError
                         DEMO

Saturday, April 21, 12
Externalized,         Temporary,

                         State%

         Serializable,        Deriva6ve,

Saturday, April 21, 12
Reloading	
  Classes

                                OldClassLoader




                           MyObject.class




                         MyObject




Saturday, April 21, 12
Reloading	
  Classes

                                OldClassLoader   NewClassLoader




                           MyObject.class




                         MyObject




Saturday, April 21, 12
Reloading	
  Classes

                                OldClassLoader              NewClassLoader




                           MyObject.class                        MyObject.class




                                            Recreate	
  object
                         MyObject                                       MyObject




Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process


                         Session
         Classes             Servlet

                              State
        Libraries


              OldClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process


                         Session
         Classes             Servlet

                              State
        Libraries


              OldClassLoader           NewClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process


                         Session
         Classes             Servlet   Classes


                              State
        Libraries                      Libraries


              OldClassLoader             NewClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process


                         Session
         Classes             Servlet   Classes     Servlet

                              State
        Libraries                      Libraries


              OldClassLoader             NewClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process
                                                     init()

                         Session
         Classes             Servlet   Classes     Servlet

                              State                State
        Libraries                      Libraries


              OldClassLoader             NewClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process
                                          Serialize/deserialize


                         Session                   Session
         Classes             Servlet   Classes         Servlet

                              State                     State
        Libraries                      Libraries


              OldClassLoader             NewClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process


                         Session                   Session
         Classes             Servlet   Classes         Servlet

                              State                     State
        Libraries                      Libraries


              OldClassLoader             NewClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process


                                            Session
                                 Classes        Servlet

                                                 State
                                Libraries


                                  NewClassLoader
Saturday, April 21, 12
Web	
  ApplicaBon	
  Redeployment	
  
                          Process


                         Session                   Session
         Classes             Servlet   Classes         Servlet

                              State                     State
        Libraries                      Libraries


              OldClassLoader             NewClassLoader
Saturday, April 21, 12
OutOfMemoryError
                         Simulation

Saturday, April 21, 12
hAp://zeroturnaround.com/java-­‐ee-­‐producBvity-­‐report-­‐2011/
Saturday, April 21, 12
HotSwap
                                                        Make	
  changes	
  in	
  IDE
                     ClassLoader




                     MyObject.class
                     Code
                     101000101                               HotSwap
                     100010010            New	
  code
                                          111000100
                                          101010010




                         MyObject




Saturday, April 21, 12
JRebel
                                                        Make	
  changes	
  in	
  IDE
                     ClassLoader




                     MyObject.class
                     Code
                     101000101
                                          New	
  code
                                                            JRebel
                     100010010
                                          111000100
                                          101010010




                         MyObject




Saturday, April 21, 12
Hotswap	
  vs	
  JRebel
                         JRebel&vs&HotSwap&
                                     Hotswap
                                       HotSwap(    JRebel
                                                     JRebel(
     Changing&method&bodies&              +(          +(
     Adding/removing&methods&             ;&          +&
     Adding/removing&constructors&        ;&          +&
     Adding/removing&fields&               ;&          +&
     Adding/removing&classes&             ;&          +&
     Adding/removing&annota?ons&          ;&          +&
     Replacing&superclass&                ;&          ;&
     Adding/removing&implemented&         ;&          ;&
     interfaces&
Saturday, April 21, 12
JRebel
                                                        Make	
  changes	
  in	
  IDE
                     ClassLoader




                     MyObject.class
                     Code
                     101000101
                                          New	
  code
                                                            JRebel
                     100010010
                                          111000100
                                          101010010




                         MyObject




Saturday, April 21, 12
JRebel
                                                        Make	
  changes	
  in	
  IDE
                     ClassLoader
  Framework



                     MyObject.class
                     Code
                     101000101
                                          New	
  code
                                                            JRebel
                     100010010
                                          111000100
                                          101010010




                         MyObject




Saturday, April 21, 12
JRebel
                                                          Make	
  changes	
  in	
  IDE
                     ClassLoader
  Framework



                     MyObject.class
                     Code
                     101000101
                                          New	
  code
                                                              JRebel
                     100010010
                                          111000100
                                          101010010




                         MyObject
                                                 ConfiguraGon
                                              (XML,	
  annotaGons,..)



Saturday, April 21, 12
getResource(“hello.html”)           read(“src/main/.../hello.html”)


                            virtual	
  mapping

                                MyApp.war

Saturday, April 21, 12
in	
  acBon
Saturday, April 21, 12
JRebel	
  IntegraBon




  hAp://zeroturnaround.com/jrebel/features/frameworks/
Saturday, April 21, 12
What	
  About	
  Live	
  
                    Environments?


Saturday, April 21, 12
Saturday, April 21, 12
Saturday, April 21, 12
• LiveRebel	
  updates	
  are
            – Online
            – Automated
            – TransacBonal
            – 100%	
  Reversible
            – Instant


Saturday, April 21, 12
?   32

Saturday, April 21, 12

Más contenido relacionado

Más de Anton Arhipov

Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hourDevoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hourAnton Arhipov
 
GeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hourGeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hourAnton Arhipov
 
Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLAnton Arhipov
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
JavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersJavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersAnton Arhipov
 
GeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainersGeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainersAnton Arhipov
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleAnton Arhipov
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloadingJavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentationJUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentationAnton Arhipov
 
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingRiga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleAnton Arhipov
 
JEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloadingJEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with JavassistJEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with JavassistAnton Arhipov
 
Devclub 01/2017 - (Не)адекватное Java-интервью
Devclub 01/2017 - (Не)адекватное Java-интервьюDevclub 01/2017 - (Не)адекватное Java-интервью
Devclub 01/2017 - (Не)адекватное Java-интервьюAnton Arhipov
 
Joker 2016 - Bytecode 101
Joker 2016 - Bytecode 101Joker 2016 - Bytecode 101
Joker 2016 - Bytecode 101Anton Arhipov
 
JPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profilerJPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profilerAnton Arhipov
 
JPoint 2016 - Bytecode
JPoint 2016 - BytecodeJPoint 2016 - Bytecode
JPoint 2016 - BytecodeAnton Arhipov
 

Más de Anton Arhipov (20)

Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hourDevoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
 
GeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hourGeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hour
 
Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSL
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
JavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersJavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainers
 
GeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainersGeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainers
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassle
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
 
JavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloadingJavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloading
 
JUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentationJUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentation
 
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingRiga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassle
 
JEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloadingJEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloading
 
JEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with JavassistJEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with Javassist
 
Devclub 01/2017 - (Не)адекватное Java-интервью
Devclub 01/2017 - (Не)адекватное Java-интервьюDevclub 01/2017 - (Не)адекватное Java-интервью
Devclub 01/2017 - (Не)адекватное Java-интервью
 
Joker 2016 - Bytecode 101
Joker 2016 - Bytecode 101Joker 2016 - Bytecode 101
Joker 2016 - Bytecode 101
 
JPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profilerJPoint 2016 - Etudes of DIY Java profiler
JPoint 2016 - Etudes of DIY Java profiler
 
JPoint 2016 - Bytecode
JPoint 2016 - BytecodeJPoint 2016 - Bytecode
JPoint 2016 - Bytecode
 

Último

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

NoRedeploys: instant updates for dev and prod

  • 1. NoRedeploys Instant  updates  for  dev  and  prod Anton  Arhipov Product  Lead,  JRebel @antonarhipov  @javarebel Saturday, April 21, 12
  • 3. Turnaround  cycle Make  a   change Check   Build, the   deploy, result wait Saturday, April 21, 12
  • 4. Build Resolve  dependencies Copy  staGc  resources Compile  classes Package  modules  into  JARs Package  everything  into  WAR/EAR Saturday, April 21, 12
  • 5. Build Resolve  dependencies Copy  staGc  resources Compile  classes Package  modules  into  JARs Package  everything  into  WAR/EAR Saturday, April 21, 12
  • 8. JeAy  Launcher public class Launcher { public static void main(String[] args) { Server server = new Server(); SelectChannelConnector connector = new SelectChannelConnector(); connector.setPort(8080); server.addConnector(connector); WebAppContext context = new WebAppContext("war", "/"); server.setHandler(context); server.start(); } } Saturday, April 21, 12
  • 9. Deployment 1–60s 30s  –  15min ~1min applicaBon  deployment   container  boot  Bme navigaBon Saturday, April 21, 12
  • 10. Deployment 1–60s 30s  –  15min ~1min OOM applicaBon  deployment   container  boot  Bme navigaBon Saturday, April 21, 12
  • 11. OutOfMemoryError DEMO Saturday, April 21, 12
  • 12. Externalized, Temporary, State% Serializable, Deriva6ve, Saturday, April 21, 12
  • 13. Reloading  Classes OldClassLoader MyObject.class MyObject Saturday, April 21, 12
  • 14. Reloading  Classes OldClassLoader NewClassLoader MyObject.class MyObject Saturday, April 21, 12
  • 15. Reloading  Classes OldClassLoader NewClassLoader MyObject.class MyObject.class Recreate  object MyObject MyObject Saturday, April 21, 12
  • 16. Web  ApplicaBon  Redeployment   Process Session Classes Servlet State Libraries OldClassLoader Saturday, April 21, 12
  • 17. Web  ApplicaBon  Redeployment   Process Session Classes Servlet State Libraries OldClassLoader NewClassLoader Saturday, April 21, 12
  • 18. Web  ApplicaBon  Redeployment   Process Session Classes Servlet Classes State Libraries Libraries OldClassLoader NewClassLoader Saturday, April 21, 12
  • 19. Web  ApplicaBon  Redeployment   Process Session Classes Servlet Classes Servlet State Libraries Libraries OldClassLoader NewClassLoader Saturday, April 21, 12
  • 20. Web  ApplicaBon  Redeployment   Process init() Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoader Saturday, April 21, 12
  • 21. Web  ApplicaBon  Redeployment   Process Serialize/deserialize Session Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoader Saturday, April 21, 12
  • 22. Web  ApplicaBon  Redeployment   Process Session Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoader Saturday, April 21, 12
  • 23. Web  ApplicaBon  Redeployment   Process Session Classes Servlet State Libraries NewClassLoader Saturday, April 21, 12
  • 24. Web  ApplicaBon  Redeployment   Process Session Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoader Saturday, April 21, 12
  • 25. OutOfMemoryError Simulation Saturday, April 21, 12
  • 27. HotSwap Make  changes  in  IDE ClassLoader MyObject.class Code 101000101 HotSwap 100010010 New  code 111000100 101010010 MyObject Saturday, April 21, 12
  • 28. JRebel Make  changes  in  IDE ClassLoader MyObject.class Code 101000101 New  code JRebel 100010010 111000100 101010010 MyObject Saturday, April 21, 12
  • 29. Hotswap  vs  JRebel JRebel&vs&HotSwap& Hotswap HotSwap( JRebel JRebel( Changing&method&bodies& +( +( Adding/removing&methods& ;& +& Adding/removing&constructors& ;& +& Adding/removing&fields& ;& +& Adding/removing&classes& ;& +& Adding/removing&annota?ons& ;& +& Replacing&superclass& ;& ;& Adding/removing&implemented& ;& ;& interfaces& Saturday, April 21, 12
  • 30. JRebel Make  changes  in  IDE ClassLoader MyObject.class Code 101000101 New  code JRebel 100010010 111000100 101010010 MyObject Saturday, April 21, 12
  • 31. JRebel Make  changes  in  IDE ClassLoader Framework MyObject.class Code 101000101 New  code JRebel 100010010 111000100 101010010 MyObject Saturday, April 21, 12
  • 32. JRebel Make  changes  in  IDE ClassLoader Framework MyObject.class Code 101000101 New  code JRebel 100010010 111000100 101010010 MyObject ConfiguraGon (XML,  annotaGons,..) Saturday, April 21, 12
  • 33. getResource(“hello.html”) read(“src/main/.../hello.html”) virtual  mapping MyApp.war Saturday, April 21, 12
  • 35. JRebel  IntegraBon hAp://zeroturnaround.com/jrebel/features/frameworks/ Saturday, April 21, 12
  • 36. What  About  Live   Environments? Saturday, April 21, 12
  • 39. • LiveRebel  updates  are – Online – Automated – TransacBonal – 100%  Reversible – Instant Saturday, April 21, 12
  • 40. ? 32 Saturday, April 21, 12