2016-06-02 by Axel Fontaine
Boxfuse's goal is to make you productive by making deployments of your Node.js and JVM-based applications truly effortless.
And that's why we worked tirelessly to make it possible to deploy most applications out-of-the-box by issuing just a single
boxfuse run command that uses convention-over-configuration with sensible defaults.
Today we are introducing two new features to give you even more control: custom JREs and kernel tuning.
By default Boxfuse uses OpenJDK for JVM-based applications, with the possibility to opt for either the OpenJDK 7 or 8 headless JREs. This is a great open-source choice for the vast majority of the applications, both from a technical as well as from a legal perspective.
Some users however require commercial support or features only available with the Oracle JRE. Due to Oracle licensing restrictions we unfortunately cannot offer it as a component from the Boxfuse Inventory as the Oracle JRE license explicitly prohibits standalone redistribution of the Oracle JRE.
However, starting today Boxfuse now supports custom JREs. You can now bundle any Linux x64 Java Runtime Environment of your choice, including the Oracle JRE, directly with your application. Boxfuse will then automatically use that JRE instead of the default OpenJDK one.
Here is a small example of how to use the Oracle JRE with a Spring Boot application:
1. Download the Linux x64 JRE of your choice directly from the Oracle website.
2. Extract the
/jre directory from the tar.gz distribution and add it to the
src/main/resources folder of your application:
my-spring-boot-app src main java resources jre bin java ... lib amd64 ... rt.jar ... COPYRIGHT LICENSE ...
3. Package your application:
my-spring-boot-app> mvn package
4. Fuse a Boxfuse image:
my-spring-boot-app> boxfuse fuse
5. Done! Your application now uses the Oracle JRE instead of the OpenJDK one when launched from that image.
The other feature we are introducing today is kernel tuning. While most users will never need this, this is advanced feature can be a life-saver for expert users who require low-level tuning of the Linux kernel.
All you need for this is simply to ship a
sysctl.conf file like the one below with their application:
net.ipv4.tcp_fastopen = 1 net.ipv4.tcp_fastopen_key = 00000000-00000000-00000000-00000000 net.ipv4.tcp_fin_timeout = 60 net.ipv4.tcp_frto = 2 net.ipv4.tcp_keepalive_intvl = 75 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_limit_output_bytes = 131072
Boxfuse will then automatically apply these settings on instance startup.
Boxfuse is all about making you productive by making deployment of your apps truly effortless. With custom JREs and kernel tuning Boxfuse now gives advanced users additional ways to customize their images.
Custom JREs now also allow you to easily run your applications using the Oracle JRE instead of OpenJDK and kernel tuning lets expert users to perform low-level tuning of the Linux kernel inside their images.
Existing Boxfuse users can simply update with
> boxfuse -u
to use these features. Enjoy!
So if you haven't already, sign up for your Boxfuse account now (simply log in with your GitHub id, it's free) to start deploying your JVM and Node.js applications effortlessly on AWS in minutes.