Skip to main content
Question Protected by gnat
added 158 characters in body
Source Link

I'd like to decompose a number of Java REST services (WAR files) into individual container-ised "MicroServices" - so that I can scale services ondemand, insulate the applications, have loose couplings, facilitate cloud deployments, etc, etc (roughly ~100 services currently being used in an ESB/running in the same JVM)

I've had a look at a few Docker tutorials, and I'm concerned that each container is going to be around 150MB (due to the JRE) - not large by itself, but if I need to scale out to hundreds/thousands(/or more) of service instances, there's going to be a lot of redundant disk space being used...

Is there a better way to break Java services down into containers?

  • Am I using the right tool for the job? (Docker vs AWS ElasticBeanstalk vs AWS Lambda vs Java Application Server(/s) vs ???)
  • What's the best practice in terms of shared resources? (isolate everything or share everything (trading independence for lower resources)? e.g. Can/Should I have a shared drive mounted from a host system, containing a single shared copy of the JRE?)

Currently investigating JavaSE8 (compact1) - which is a much more palatable 40MB (incl OS)

I'd like to decompose a number of Java REST services (WAR files) into individual container-ised "MicroServices" - so that I can scale services ondemand, insulate the applications, have loose couplings, facilitate cloud deployments, etc, etc (roughly ~100 services currently being used in an ESB/running in the same JVM)

I've had a look at a few Docker tutorials, and I'm concerned that each container is going to be around 150MB (due to the JRE) - not large by itself, but if I need to scale out to hundreds/thousands(/or more) of service instances, there's going to be a lot of redundant disk space being used...

Is there a better way to break Java services down into containers?

  • Am I using the right tool for the job? (Docker vs AWS ElasticBeanstalk vs AWS Lambda vs Java Application Server(/s) vs ???)
  • What's the best practice in terms of shared resources? (isolate everything or share everything (trading independence for lower resources)? e.g. Can/Should I have a shared drive mounted from a host system, containing a single shared copy of the JRE?)

I'd like to decompose a number of Java REST services (WAR files) into individual container-ised "MicroServices" - so that I can scale services ondemand, insulate the applications, have loose couplings, facilitate cloud deployments, etc, etc (roughly ~100 services currently being used in an ESB/running in the same JVM)

I've had a look at a few Docker tutorials, and I'm concerned that each container is going to be around 150MB (due to the JRE) - not large by itself, but if I need to scale out to hundreds/thousands(/or more) of service instances, there's going to be a lot of redundant disk space being used...

Is there a better way to break Java services down into containers?

  • Am I using the right tool for the job? (Docker vs AWS ElasticBeanstalk vs AWS Lambda vs Java Application Server(/s) vs ???)
  • What's the best practice in terms of shared resources? (isolate everything or share everything (trading independence for lower resources)? e.g. Can/Should I have a shared drive mounted from a host system, containing a single shared copy of the JRE?)

Currently investigating JavaSE8 (compact1) - which is a much more palatable 40MB (incl OS)

Tweeted twitter.com/StackSoftEng/status/795823626150969344
Source Link

Is there a better way to break Java services down into containers

I'd like to decompose a number of Java REST services (WAR files) into individual container-ised "MicroServices" - so that I can scale services ondemand, insulate the applications, have loose couplings, facilitate cloud deployments, etc, etc (roughly ~100 services currently being used in an ESB/running in the same JVM)

I've had a look at a few Docker tutorials, and I'm concerned that each container is going to be around 150MB (due to the JRE) - not large by itself, but if I need to scale out to hundreds/thousands(/or more) of service instances, there's going to be a lot of redundant disk space being used...

Is there a better way to break Java services down into containers?

  • Am I using the right tool for the job? (Docker vs AWS ElasticBeanstalk vs AWS Lambda vs Java Application Server(/s) vs ???)
  • What's the best practice in terms of shared resources? (isolate everything or share everything (trading independence for lower resources)? e.g. Can/Should I have a shared drive mounted from a host system, containing a single shared copy of the JRE?)