0
NoRedeploys      Instant	  updates	  for	  dev	  and	  prod      Anton	  Arhipov      Product	  Lead,	  JRebel      @anton...
!!!WARNING!!!Saturday, April 21, 12
Turnaround	  cycle                                     Make	  a	                                       change             ...
Build                                Resolve	  dependencies                                Copy	  staGc	  resources       ...
Build                                Resolve	  dependencies                                Copy	  staGc	  resources       ...
Exploded	  Directory	  DeploymentSaturday, April 21, 12
Exploded	  Directory	  DeploymentSaturday, April 21, 12
JeAy	  Launcher  public class Launcher {       public static void main(String[] args) {           Server server = new Serv...
Deployment      1–60s                     30s	  –	  15min       ~1min                         applicaBon	  deployment	    ...
Deployment      1–60s                     30s	  –	  15min           ~1min                                                 ...
OutOfMemoryError                         DEMOSaturday, April 21, 12
Externalized,         Temporary,                         State%         Serializable,        Deriva6ve,Saturday, April 21,...
Reloading	  Classes                                OldClassLoader                           MyObject.class                ...
Reloading	  Classes                                OldClassLoader   NewClassLoader                           MyObject.clas...
Reloading	  Classes                                OldClassLoader              NewClassLoader                           My...
Web	  ApplicaBon	  Redeployment	                            Process                         Session         Classes       ...
Web	  ApplicaBon	  Redeployment	                            Process                         Session         Classes       ...
Web	  ApplicaBon	  Redeployment	                            Process                         Session         Classes       ...
Web	  ApplicaBon	  Redeployment	                            Process                         Session         Classes       ...
Web	  ApplicaBon	  Redeployment	                            Process                                                     in...
Web	  ApplicaBon	  Redeployment	                            Process                                          Serialize/des...
Web	  ApplicaBon	  Redeployment	                            Process                         Session                   Sess...
Web	  ApplicaBon	  Redeployment	                            Process                                            Session    ...
Web	  ApplicaBon	  Redeployment	                            Process                         Session                   Sess...
OutOfMemoryError                         SimulationSaturday, April 21, 12
hAp://zeroturnaround.com/java-­‐ee-­‐producBvity-­‐report-­‐2011/Saturday, April 21, 12
HotSwap                                                        Make	  changes	  in	  IDE                     ClassLoader  ...
JRebel                                                        Make	  changes	  in	  IDE                     ClassLoader   ...
Hotswap	  vs	  JRebel                         JRebel&vs&HotSwap&                                     Hotswap              ...
JRebel                                                        Make	  changes	  in	  IDE                     ClassLoader   ...
JRebel                                                        Make	  changes	  in	  IDE                     ClassLoader  F...
JRebel                                                          Make	  changes	  in	  IDE                     ClassLoader ...
getResource(“hello.html”)           read(“src/main/.../hello.html”)                            virtual	  mapping          ...
in	  acBonSaturday, 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%	  Rever...
?   32Saturday, April 21, 12
Upcoming SlideShare
Loading in...5
×

NoRedeploys: instant updates for dev and prod

688

Published on

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
688
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
33
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "NoRedeploys: instant updates for dev and prod"

  1. 1. NoRedeploys Instant  updates  for  dev  and  prod Anton  Arhipov Product  Lead,  JRebel @antonarhipov  @javarebelSaturday, April 21, 12
  2. 2. !!!WARNING!!!Saturday, April 21, 12
  3. 3. Turnaround  cycle Make  a   change Check   Build, the   deploy, result waitSaturday, April 21, 12
  4. 4. Build Resolve  dependencies Copy  staGc  resources Compile  classes Package  modules  into  JARs Package  everything  into  WAR/EARSaturday, April 21, 12
  5. 5. Build Resolve  dependencies Copy  staGc  resources Compile  classes Package  modules  into  JARs Package  everything  into  WAR/EARSaturday, April 21, 12
  6. 6. Exploded  Directory  DeploymentSaturday, April 21, 12
  7. 7. Exploded  Directory  DeploymentSaturday, April 21, 12
  8. 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. 9. Deployment 1–60s 30s  –  15min ~1min applicaBon  deployment   container  boot  Bme navigaBonSaturday, April 21, 12
  10. 10. Deployment 1–60s 30s  –  15min ~1min OOM applicaBon  deployment   container  boot  Bme navigaBonSaturday, April 21, 12
  11. 11. OutOfMemoryError DEMOSaturday, April 21, 12
  12. 12. Externalized, Temporary, State% Serializable, Deriva6ve,Saturday, April 21, 12
  13. 13. Reloading  Classes OldClassLoader MyObject.class MyObjectSaturday, April 21, 12
  14. 14. Reloading  Classes OldClassLoader NewClassLoader MyObject.class MyObjectSaturday, April 21, 12
  15. 15. Reloading  Classes OldClassLoader NewClassLoader MyObject.class MyObject.class Recreate  object MyObject MyObjectSaturday, April 21, 12
  16. 16. Web  ApplicaBon  Redeployment   Process Session Classes Servlet State Libraries OldClassLoaderSaturday, April 21, 12
  17. 17. Web  ApplicaBon  Redeployment   Process Session Classes Servlet State Libraries OldClassLoader NewClassLoaderSaturday, April 21, 12
  18. 18. Web  ApplicaBon  Redeployment   Process Session Classes Servlet Classes State Libraries Libraries OldClassLoader NewClassLoaderSaturday, April 21, 12
  19. 19. Web  ApplicaBon  Redeployment   Process Session Classes Servlet Classes Servlet State Libraries Libraries OldClassLoader NewClassLoaderSaturday, April 21, 12
  20. 20. Web  ApplicaBon  Redeployment   Process init() Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoaderSaturday, April 21, 12
  21. 21. Web  ApplicaBon  Redeployment   Process Serialize/deserialize Session Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoaderSaturday, April 21, 12
  22. 22. Web  ApplicaBon  Redeployment   Process Session Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoaderSaturday, April 21, 12
  23. 23. Web  ApplicaBon  Redeployment   Process Session Classes Servlet State Libraries NewClassLoaderSaturday, April 21, 12
  24. 24. Web  ApplicaBon  Redeployment   Process Session Session Classes Servlet Classes Servlet State State Libraries Libraries OldClassLoader NewClassLoaderSaturday, April 21, 12
  25. 25. OutOfMemoryError SimulationSaturday, April 21, 12
  26. 26. hAp://zeroturnaround.com/java-­‐ee-­‐producBvity-­‐report-­‐2011/Saturday, April 21, 12
  27. 27. HotSwap Make  changes  in  IDE ClassLoader MyObject.class Code 101000101 HotSwap 100010010 New  code 111000100 101010010 MyObjectSaturday, April 21, 12
  28. 28. JRebel Make  changes  in  IDE ClassLoader MyObject.class Code 101000101 New  code JRebel 100010010 111000100 101010010 MyObjectSaturday, April 21, 12
  29. 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. 30. JRebel Make  changes  in  IDE ClassLoader MyObject.class Code 101000101 New  code JRebel 100010010 111000100 101010010 MyObjectSaturday, April 21, 12
  31. 31. JRebel Make  changes  in  IDE ClassLoader Framework MyObject.class Code 101000101 New  code JRebel 100010010 111000100 101010010 MyObjectSaturday, April 21, 12
  32. 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. 33. getResource(“hello.html”) read(“src/main/.../hello.html”) virtual  mapping MyApp.warSaturday, April 21, 12
  34. 34. in  acBonSaturday, April 21, 12
  35. 35. JRebel  IntegraBon hAp://zeroturnaround.com/jrebel/features/frameworks/Saturday, April 21, 12
  36. 36. What  About  Live   Environments?Saturday, April 21, 12
  37. 37. Saturday, April 21, 12
  38. 38. Saturday, April 21, 12
  39. 39. • LiveRebel  updates  are – Online – Automated – TransacBonal – 100%  Reversible – InstantSaturday, April 21, 12
  40. 40. ? 32Saturday, April 21, 12
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×