put your java apps to sleep? find out how - john matthew holt (waratek)

44
© Copyright Waratek 2013 Put your Java Apps to Sleep? Find out How… John Ma(hew Holt | JAX London 2013

Upload: jaxlondonconference

Post on 12-May-2015

469 views

Category:

Technology


1 download

DESCRIPTION

Presented at JAX London 2013 Imagine if, when your applications weren't in use, they could go to sleep, just like your laptop does when idle. Just think how much money you could save on your infrastructure. The problem with many resource-intensive Java applications is that they are far more difficult to redeploy than they are to take down. Consequently applications tend to be left running whether they are being used or not.

TRANSCRIPT

Page 1: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

!

Put  your  Java  Apps  to  Sleep?  Find  out  How…    John  Ma(hew  Holt  |  JAX  London  2013  

Page 2: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

John Matthew Holt!•  CTO  and  co-­‐Founder  of  Waratek  •  Been  doing  JVM  engineering  for  10  years  •  Invented  “Java  VirtualizaCon”  to  transform  how  JVMs  operate  in  virtualized  and  cloud-­‐compuCng  environments  

•  Lead  the  design  of  the  first  Type-­‐1  VMM  for  a  JVM  

Page 3: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

What will we cover?!•  First  some  background…  

– Why  virtualize  INSIDE  the  JVM?  – Think  “VMware  for  Java”  

•  PuSng  you  Java  Apps  to  Sleep…  – Why  are  Java  apps  Cred?    (or  restated:  why  should  they  be  slept?)  

– Let  your  apps  nap:  “wake-­‐on-­‐LAN  for  JVCs”    

Page 4: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

First some background…!

   • Why  virtualize  INSIDE  the  JVM?  

Page 5: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Because…!•  Because  JVMs  make  bad  bedfellows  with  HW  hypervisors  (HV)  

•  A  JVM  thwarts  HW  hypervisor  features  like:  –  The  GC  in  a  JVM  thwarts  memory-­‐overcommit  in  a  HW  HV  

–  The  GC’s  heap  memory,  and  the  JIT’s  permgen/codecache,  thwarts  ‘transparent  page  sharing’  (memory  de-­‐dup)  in  a  HW  HV  

– Dedicated  GC  and  JIT  for  EVERY  Java  applicaCon  wastes  lots  and  lots  of  CPU  Cme  and  memory  capacity  doing  the  same  thing  over,  and  over,  and  over,  and…  

 

Page 6: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Today’s JVMs are OLD!•  Were  designed  ~20  years  ago,  and  haven’t  changed  design  since  then  

•  JVM  design  PREDATES  the  major  2  trends  of  last  decade:  virtualizaCon  and  cloud-­‐compuCng  

•  Only  2  innovaCons  in  JVMs  in  20  years:    – Beder  JIT  compilers  – Concurrent  GCs  – ….all  blindly  focused  on  single-­‐tenant  performance  at  the  expense  of  mulC-­‐tenant  efficiency  

Page 7: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Server Java has problems!•  JVMs  are  grossly  inefficient  users  of  CPU  and  memory  

–  A  JVM  assumes  it  can  use  all  available  CPU  and  memory  capacity  for  itself  and  its  single  applicaCon,  eg:  

–  1  JBoss  can  consume  up  to  500MB  RSS  with  no  apps  –  1  Tomcat  can  consume  up  to  250MB  RSS  with  no  webapps  –  Running  mulCple  JVMs  on  a  server  rapidly  exhausts  physically  

memory  while  CPU  uClisaCon  averages  5%  •  >100  different  JVM  versions  makes  compliance/support  a  

NIGHTMARE  •  Security  vulnerabiliCes  and  compromises  are  EVERYWHERE  

inside  Java  

Page 8: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

VMWare does not virtualize Java well!

•  Realworld  stats  using  VMware:  –  >80%  of  Server  JVMs  have  <=2GB  of  heap  memory  

•  Yet  actual  applicaCon  heap  uClisaCon  averages  <20%  – A  2GB  JVM  heap  needs  ~3GB  of  OS  RSS  memory,  which  in  turn  needs  ~4GB  of  VMWare  tenant  memory  •  …reducing  actual  applicaCon  memory  uClisaCon  to  <10%  

–  CPU  uClisaCon  running  Java  on  Vmware  averages  <7%  •  Yet  physical  memory  is  exhausted  because  of  running  mulCple  JVMs  

Page 9: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Java is a compliance nightmare!•  Realworld  stats:  

–  93%  of  organisaCons  are  running  versions  of  Java  at  least  5  years  old  

–  The  average  organisaCon  has  51  disCnct  versions  of  Java  installed  

–  <1%  of  installed  Java  is  upgraded  to  the  latest  version  •  Recurring  enterprise  conversaCon:  

– QuesCon:  “what  version  of  Java  do  you  run?”  – Answer:  “every  version  except  the  latest  version!”  

Page 10: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Java is a security nightmare!•  Realworld  stats:  

–  In  last  12  months  alone,  >250  CVE  alerts  issued  by  US-­‐CERT/NIST  for  Java  

–  The  most  prevalent  version  of  Java  has  96  “perfect  10”  vulnerabiliCes  

–  “There  are  virtually  no  modern  versions  of  Java  without  any  known  severe  vulnerabiliCes”  (source:  Bit9)  

•  CriCcal  Security  Patch  Updates  are  released  so  oven  that  developers  and  admins  can’t  keep  up    

Page 11: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Virtualization is the answer…!•  …but  HIGHER  up  the  Server  Stack  •  VirtualizaCon  is  creeping  up  the  Server  Stack  already  –  x86  HW  got  virtualized  in  1999  (VMware  et  al)  –  x86  OS  got  virtualized  in  2006  (OpenVZ,  LXC,  et  al)  – …now  it’s  Java’s  turn  in  2013  

•  Virtualizing  Java  means  virtualizing  at  the  TOP  of  the  Server  Stack,  whereas  VMware  virtualizes  at  the  BOTTOM  

Page 12: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Cost-per-tentant to zero !•  The  higher  up  virtualizaCon  goes  up  the  Server  Stack,  the  cheaper  a  “tenant”  becomes  

•  Virtualizing  INSIDE  the  JVM  gets  close  to  “zero-­‐cost  tenants”:  – Helloworld  in  <1MB  of  tenant  memory  – Examples.war  (Tomcat  demo  webapps)  in  <5MB  of  tenant  memory  

– …Java  becomes  CHEAPER  than  python/ruby/perl  when  the  JVM  itself  gets  virtualized!    

Page 13: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Virtualization == Security!•  Virtualizing  the  JVM  makes  Server  Java  secure  and  compliant  –  Virtualized  Java  Apps  run  as  “tenants”  in  a  shared  JVM  –  Tenants  run  in  Java  Virtual  Container  (JVC)  “jails”  –  Tenants  are  isolated  and  “locked-­‐down”  –  Tenants  can  run  any  Java  version  

•  Doesn’t  mader  what  “Java  version”  a  tenant  uses,  it  gets  the  latest  JVM  

•  Means  a  “Java  version”  becomes  just  a  tenant  API  for  the  convenience  of  developers  

•  Admins  control  the  REAL  version  at  the  JVM  level  so  that  tenants  (developers)  can  stop  caring  about  “versions”  altogether  

Page 14: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

First some background…!

 • Think  “VMWare  for  Java”  

Page 15: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

A hypervisor INSIDE a JVM!•  Waratek  has  wriden  a  type-­‐1  VMM  that  runs  INSIDE  the  

Oracle  HotSpot  and  OpenJDK  JVMs  –  >300,000  lines  of  Java  code,  <5K  lines  of  C-­‐code  –  Can  easily  run  on  any  OS/CPU  pair  (only  Linux/x86  supported  so  

far)  –  Does  EVERYTHING  VMware  does,  but  INSIDE  the  JVM  

•  Virtual  FS  •  Virtual  networks/IPs/NICs  •  CPU  pinning  and  quotas  •  Memory  overcommit,  elasCc  memory,  memory  quotas  •  I/O  QoS,  rate-­‐limiCng  •  Etc…  

–  …all  with  ZERO  code  change  to  Java  applicaCons  

Page 16: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

A real VMM inside the JVM!

Page 17: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

JVC

Java Code

C/C++ Code

VMWare for Java!

Waratek JVM

java.* APIs

SecurityManager

Waratek Java Hypervisor

Java App

•  Waratek  virtualizes  Java  exactly  like  VMware  virtualizes  HW  –  Waratek  inserts  a  “Java  

Hypervisor”  between  the  JVM  and  the  Java  App  +  java.*  APIs  +  SecurityManager  

–  The  Java  app  PLUS  java.*  APIs  and  SecurityManager  run  inside  a  Java  Virtual  Container  (JVC)  “jail”  

–  For  a  Java  App  to  go  outside  of  its  JVC  “jail”  it  has  to  “trap”  to  the  Java  Hypervisor  

JNI Libs

Process

Page 18: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

JVC

Java Code

C/C++ Code

VMWare for Java!

Waratek JVM

java.* APIs

SecurityManager

•  Every  incoming  and  outgoing  access  by  a  JVC  is  intercepted  and  checked  by  the  Java  Hypervisor,  e.g:  –  Class  loading  intercepted  and  checked  –  JNI  invocaCon  intercepted  –  Parameter  and  return  value  checks  –  File  access  (delete/copy/move)  checks  –  Network  operaCon  checks  –  IO  rate-­‐limiCng  and  flow-­‐control  –  CPU  Cme  control  –  Memory  consumpCon  control  –  Buffer  overflow  checks  –  Null  pointer  checks  –  Type  safety  checks  –  OS  access  checks    –  JNI  Libraries  isolated  –  …  

Waratek Java Hypervisor

Java App

JNI Libs

Process

Page 19: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Slots into existing VM tools!•  You  can  manage  the  Java  hypervisor  exactly  like  you  manage  

exisCng  HW  hypervisors:  –  SSH  CLI  –  RedHat  LibVirt/KVM  integraCon  (beta)  –  VMWare  vCAC  integraCon  shortly  –  OpenStack  integraCon  shortly  

•  Plus  other  management  interfaces  –  HTTP  REST  API  –  Local  and  remote  JMX  APIs  –  /proc/PID/*  pseudo-­‐filesystem  for  JVM  and  each  JVC  –  Vmware  CloudFoundry  integraCon  (beta)  –  RedHat  OpenShiv  integraCon  soon  

Page 20: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

A HelloWorld JVC in LibVirt XML!

Page 21: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

JVC

Java Code

C/C++ Code

JVCs make Java secure!

Waratek JVM

java.* APIs

SecurityManager

•  If  a  Java  App  inside  a  JVC  compromises  either/both  of  java.*  APIs  or  SecurityManager,  then  only  that  JVC  is  effected  and  NOT  the  Java  Hypervisor  or  JVM  or  other  JVCs  

•  JNI  Libraries  are  isolatable  in  their  own  OS  process  

•  Thus  a  compromised  JVC  cannot:  

–  Insert  malicious  code  outside  its  JVC  –  Delete/move/copy  files  outside  its  VROOT  –  Trigger  buffer  overflows  –  Do  null-­‐pointer  segmentaCon  faults  –  Perform  unsafe  heap  memory  access  –  Fork  OS  processes  –  etc…  

Waratek Java Hypervisor

Java App

JNI Libs

Process

Page 22: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

“Come in, we’re open”!•  The  Java  Hypervisor  has  an  open  API  for  unlimited  customizaCon  and  extensibility  

•  Anyone  can  write  their  own  PURE-­‐JAVA  plugins  to  the  Java  hypervisor  to  customize  ANYTHING  about  JVCs,  eg:  – Make  a  DropBox.com  account  the  virtual  filesystem  for  a  JVC  

–  Create  a  virtual  LAN  between  distributed  JVCs  anywhere  in  the  world  

–  Clone  live  network  I/O  of  an  acCve  JVC  to  a  test  JVC  for  side-­‐by-­‐side  applicaCon  tesCng  

Page 23: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Example hypervisor plugin!•  Waratek  wrote  ElasCcat  as  one  example  of  a  Java  Hypervisor  plugin  

•  ElasCcat  is  open  source,  is  <1000  lines  of  Java  code,  and  loads  into  the  Java  hypervisor  at  startup  

•  ElasCcat  virtualizes  Apache  Tomcat  so  it  becomes  the  world’s  first  mulC-­‐tenant  JavaEE  container:  –  Tomcat  runs  in  one  JVC  and  each  webapp  runs  in  it’s  own  dedicated  JVC  

–  If  one  webapp  crashes  it  won’t  crash  any  other  JVC  –  …all  this  achieved  with  ZERO  code  change  to  Tomcat  or  webapps,  and  without  them  knowing  they’ve  been  virtualized!  

Page 24: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Page 25: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Putting Java to jSleep…!

   • Why  are  Java  apps  Cred?  (or:  why  should  they  be  slept?)  

Page 26: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Java Apps are tired!!•  Realworld  stats:  

– >50%  of  PaaS  apps  are  “dead  bone  idle”  at  any  given  Cme  

– The  average  Dev/Test  environment  runs  at  <10%  sustained  uClizaCon  

– Lots  and  lots  of  enterprise  Java  apps  are  only  used  periodically,  e.g.  end-­‐of-­‐week,  end-­‐of-­‐month…  

•  But  these  apps  have  SLAs  and  can’t  be  shut-­‐off!  

Page 27: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Fact from the field:!•  So  frustrated  was  one  Fortune500  admin  that  he  shut-­‐off  a  bunch  of  Java  apps  that  had  been  idle  for  2  weeks  (no  TCP  traffic)  and  waited  to  see  what  would  happen…  the  results  were:  – …a  small  number  of  app-­‐owners  noCced  immediately  (1-­‐2  days)  

– …the  largest  number  of  app-­‐owners  noCced  within  1-­‐2  weeks  

– …and  a  small  number  of  app-­‐owners  NEVER  noCced  at  all!  

Page 28: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Wouldn’t it be great if…!•  …you  could  “compress”  an  idle  app  and  re-­‐awaken  it  instantly  WITHOUT  THE  APP  KNOWING?  

•  …and  without  the  END-­‐POINTS  knowing?  •  …and  without  ever  RESTARTING  the  app  later?  

Page 29: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Actually it exists…almost!!•  The  technology  for  this  nearly  already  exists:  

–  It’s  called  “wake-­‐on-­‐LAN”  (WoL)  

•  …but  there’s  a  problem:  WoL  only  works  at  the  HARDWARE  level,  so  is  of  NO  USE  in  mulCtenant  virtualized  cloud-­‐compuCng  environments  

•  Think  about  it:  –  As  long  as  ONE  tenant  on  a  server  is  acCve  then  the  server  HAS  to  stay  alive  and  WoL  CANNOT  be  used!  

Page 30: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Putting Java to jSleep…!

   • Let  your  apps  nap:  wake-­‐on-­‐LAN  for  JVCs  

Page 31: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

“Wake-on-LAN for JVCs”!•  What’s  needed  is  a  NEW  kind  of  WoL  that  “naps”  single  idle  tenants  on  a  mulCtenant  server…  

•  …and  reclaims  the  memory/CPU/IO  quotas  that  were  provisioned  for  the  now-­‐napped  app,  to  be  used  to  run  other  new  apps  

•  This  is  what  Waratek  jSleep  does  for  Java  apps!  

Page 32: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

jSleep in a Slide!•  Waratek  jSleep  works  inside  the  Java  Hypervisor  to  do  four  things:  –  1)  monitor  the  acCvity  of  individual  apps  (JVCs)  –  2)  put  idle  JVCs  to  sleep  aver  defined  inacCvity  thresholds  and  reclaim  their  CPU/mem/IO  quotas  

–  3)  monitor  the  I/O  connecCons  (TCP/UDP  Sockets,  ServerSockets,  Files,  etc)  of  a  sleeping  JVC  

–  4)  and  awaken  a  sleeping  JVC  when  I/O  acCvity  is  detected,  reinstaCng  reclaimed  quotas  

•  …it’s  wake-­‐on-­‐LAN  for  JVCs!  

Page 33: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

jSleep is Very Powerful!•  Lots  of  “knobs  and  dials”  make  it  possible  to  define  sophisCcated  sleep/awake  profiles  that  respond  to:  –  CPU  acCvity  –  Network/IO  acCvity  –  IO  Cmeouts  – Wall-­‐clock  Cme  –  …or  just  about  anything  else  

•  THERE’S  ALSO  a  built-­‐in  network  profile  that  allows  for  immediate  configuraCon  via  the  JIRSH  CLI  

Page 34: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Simple jSleep Example!•  Set  a  jSleep  policy  based  on  network  traffic  of  defined  

sockets/ports,  eg:  –  jirsh # sleepinfo 1 –-set network=120000,include_local=:8080,10.1.0.8:4444

–  Above  command:  •  Suspends  JVC  1  aver  the  network  interface  is  idle  120s  •  The  include_local param  is  a  series  of  host:port  combinaCons  that  specify  what  traffic  of  remote  hosts  and/or  local  ports  is  allowed  to  wake  the  JVC,  so  in  above:  

–  Traffic  from  any  remote  host  to  local  port  8080  will  wake  the  JVC  –  Traffic  from  remote  host  10.1.0.8  to  local  port  4444  will  wake  the  JVC  

Page 35: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

jSleep API in 60 Seconds!•  2  packages,  8  classes:  

–  cloudvm.jsleep.event.* •  BytesReceivedEvent •  CpuEvent •  NetworkIdleEvent •  TimeoutEvent

–  cloudvm.jsleep.profile.* •  JSleepProfile •  JSleepProfile.MemoryType •  JSleepProfileState •  NetworkProfile

Page 36: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

jSleep API in 60 Seconds!•  Main  class:  cloudvm.jsleep.profile.JSleepProfile

–  Every  JVC  can  have  one  of  these  –  Defines  the  two  CORE  methods:  

•  checkSuspend( VirtualContainerMXBean ) •  checkResume( VirtualContainerMXBean )

–  Is  an  abstract  class  so  anyone  can  write  their  own  custom  sleep/resume  profile  

–  Loaded  and  configured  using  JMX  (local  or  remote)  

Page 37: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Custom jSleep API Example!•  Here’s  a  custom  jSleep  profile…  

 public  boolean  checkSuspend(VirtualContainerMXBean  paramVirtualContainerMXBean)  {          Date  currentDate  =  new  Date();          if(currentDate.aver(sleepDate)  &&  currentDate.before(resumeDate))  {                  return  true;          }  else  {                  return  false;          }  }    public  boolean  checkResume(VirtualContainerMXBean  paramVirtualContainerMXBean)  {          Date  currentDate  =  new  Date();          if(currentDate.before(sleepDate)  ||  currentDate.aver(resumeDate))  {                  return  true;          }  else  {                  return  false;          }            }    

Page 38: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

What happens when…!•  …a  JVC  sleeps?:  

–  The  threads  of  the  JVC  are  suspended  on  the  OS  kernel  (but  NOT  destroyed)  

–  The  JVC’s  dead  objects  are  asynchronously  reclaimed  by  the  GC  

–  If  the  JSleepProfile  was  configured  with  MemoryType.VARIABLE,  the  JVCs  unused  memory  quota  will  be  reclaimed  for  use  by  other  JVCs  

–  All  open  file  descriptors  will  be  kept  open  –  …all  this  in  <1  second  

Page 39: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

What happens when…!•  …a  JVC  wakes  up?:  

– The  threads  of  the  JVC  are  resumed  on  the  OS  kernel  

–  If  the  JSleepProfile  was  configured  with  MemoryType.VARIABLE,  the  JVM  will  reinstate  the  prior  memory  quota  of  the  JVC    

– Any  file  descriptors  with  received  but  unread  data  will  now  be  “readable”  by  the  applicaCon  

– …all  this  in  <1  second  

Page 40: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Why you should care…!•  Dev/Test,  PaaS,  and  middleware  environments  are  

characterized  by  LOTS  of  “applicaCon  idleness”    •  Idle  apps  today  are  treated  NO  DIFFERENTLY  than  acCve,  

busy  apps  •  Years  ago  H/W  wake-­‐on-­‐LAN  was  an  effecCve  technology  for  

powering  down  idle  servers…  but  it  no  longer  works  in  mulCtenant  cloud  infrastructure  

•  jSleep  is  “wake-­‐on-­‐LAN  for  JVCs”  and  can  increase  the  number  of  Java  apps-­‐per-­‐server  by  up  to  10x  –  …this  means  a  reducCon  in  server  sprawl  and  OpEx  up  to  90%  

Page 41: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Summary!

   • Recap  and  links…  

Page 42: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Biggest change to Java in yrs!•  A  hypervisor  inside  the  JVM  transforms  Java  with:  – Ultra-­‐liteweight  JVCs  for  near  zero-­‐cost  tenants  – JVC  “jails”  for  Java  security  and  isolaCon  – Mixed-­‐version  JVCs  for  version  consolidaCon  and  legacy  compliance  

–  jSleep  (“Wake-­‐On-­‐LAN  for  JVCs”)  for  near-­‐zero  footprint  of  idle  tenants  

Page 43: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

Links!•  General  informaCon  about  the  Waratek  JVM  

– hdp://www.waratek.com  

•  jSleep,  JVI  (Java  VirtualizaCon  Interface),  and  JMX  APIs  – hdp://javadoc.waratek.com  

•  ElasCcat  source  code  – hdps://github.com/waratek/elasCcat-­‐driver  

Page 44: Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)

© Copyright Waratek 2013

!