Java Cloud Hosting: Elasticity and Flexibility with Jelastic PaaS

43

Currentl multilingual Jelastic PaaS was initially created as pure Java Cloud and still maintains a primary focus on this programming language. The maturity of the platform technology was recognized by the Java community with a Duke’s Choice Award twice in 2012 and 2018. This guide acquaints you with the distinctive features of Java hosting within Jelastic PaaS and lets you easily get started with a broad functionality list.

Java Versions

There following Java versions are available at Jelastic PaaS:

  • Java 6 (JDK);
  • Java 7 (JDK, OpenJDK);
  • Java 8 (JDK, OpenJDK, OpenJ9);
  • Java 9 (JDK, OpenJ9);
  • Java 10 (JDK, OpenJDK, OpenJ9);
  • Java 11 (JDK, OpenJDK).

You can choose the preferred version while creating an environment, or change it later. These procedures are described in the Java Versions documentation.

Java Application Servers

Within a wide variety of software stacks, Jelastic PaaS supports the following Java application servers:

The application servers can be configured within the Jelastic PaaS dashboard.

Java Environment Creation

To host a Java application, you need to create an appropriate environment. Just open the topology wizard in your Jelastic PaaS dashboard, navigate to the Java language tab, pick the desired Java application server, databases or other containers if required, specify basic settings according to your needs and click Create.

2914-1-java-environment-creation

All added servers represent fully isolated containers, located on different hosts for more availability, while isolation eliminates the risks of interfering with one another. You can attach a Public IP address to any of these servers for being accessed directly. Otherwise (i.e., if using default settings), the incoming requests sent to your application will be proxied by a Shared Load Balancer.

Java Application Deployment

After environment creation, you can deploy your Java application. Herewith, Jelastic PaaS fully automates the deployment process allowing to get your project up and running effortlessly.

The following deployment methods are supported:

2914-1-java-application-deployment

You can read the appropriate documentation to learn more about the deployment of Java applications:

There are also separate instructions for working with Bitbucket GIT repositories and managing your projects via Gitblit and WebDAV.

Domains Management

You can bind a custom domain name to your application’s URL and use it instead of the default environment domain:

  • CNAME redirect if using Shared Load Balancer – is recommended for development and test environments;
  • DNS A record if using Public IP – can handle high traffic load and is suitable for production environments.

Also, with the help of the swapping domains feature or the SwapExtIps API/CLI method, you can upgrade and modify your application with zero downtime (i.e., your users won’t notice any interruption).

2914-1-java-domains-management

Tip: Jelastic PaaS allows using multiple domains within a single environment to increase its usability, efficiency, and scalability, while simultaneously saving your costs by avoiding a need to set up separate environments for different applications. Check the appropriate examples below:

Automatic Vertical Scaling

Jelastic PaaS automatically provides the number of cloudlets (i.e., RAM and CPU resources), which are required by your application to handle the current load. Just specify the maximum limit, and everything else is handled by the platform with no manual intervention required. This feature is called automatic vertical scaling and ensures that you never overpay for unused capacities without experiencing resource shortage.

2914-1-java-automatic-vertical-scaling

To set or change the vertical scaling limit, just use the appropriate slider within the topology wizard:

2914-1-java-automatic-vertical-scaling-configuration

Manual and Automatic Horizontal Scaling

In case, your application becomes highly popular, and a single node is not enough, feel free to scale it horizontally. Herewith, to ensure even more reliability and high-availability, all the newly added nodes are created on different hardware nodes.

2914-1-java-manual-and-automatic-horizontal-scaling

Click the +/- buttons within the Horizontal Scaling section of the topology wizard to set the required number of nodes (a load balancer will be added automatically).

Also, you can adjust the preferred scaling mode:

  • Stateless – simultaneously creates all new nodes from the base image template;
  • Stateful – sequentially copies file system of the master container into the new nodes.

Horizontal scaling can be performed not only manually but also automatically based on the current load of the node, which is monitored through the tunable triggers.

Within Settings > Monitoring > Auto Horizontal Scaling section, you can adjust the scaling conditions due to your needs, i.e., the lower/upper limit (percentage) for the specified resource type during a certain period. If the load stays out of the set limits, the nodes removal/addition process will be called automatically.

There are five different types of resources, which are monitored by triggers:

  • CPU;
  • Memory (RAM);
  • Network;
  • Disk I/O;
  • Disk IOPS.

2914-1-java-automatic-horizontal-scaling-triggers

The trigger starts monitoring the resource consumption immediately after addition, and when the usage level exceeds the stated limit, a trigger becomes invoked. Subsequently, if the load persists for a defined period, it will be executed, adjusting the number of nodes.

Java Clusterization

The embedded application server clustering feature provides replication of sessions between pairs of nodes and eliminates the necessity of additional software or Memcached usage for increasing application availability.

Jelastic PaaS provides automated session replication between Tomcat, GlassFish and Jetty application servers with the help of multicast to gain web application high availability within a Java cluster. This High Availability feature can be enabled in the topology wizard during environment creation or tuning.

2914-1-java-clusterization

In addition, Jelastic PaaS provides pre-configured packages of auto-scalable Java clusters:

2914-1-java-clusters

Database Connection to Java Application

A set of scalable and fully manageable database servers can be easily installed within the Java environment. To establish the connection, adjust your application following the instruction based on the database you require:

Jelastic PaaS provides high-quality Java cloud hosting with improved availability, redundancy and scalability strengths for your application.

The feedback from Java creator, James Gosling, about Jelastic PaaS: “Configuring cloud infrastructures is fun the first time you do it. But it doesn’t take too long before it becomes a tedious time sink, and, if you have the misfortune of being a software developer that has to fight it out with an IT organization, who usually wants consistency, control and visibility, you find that you’re always fighting with them. Jelastic solves all of that. Easy configuration tools for developers, management tools for IT. Peace and productivity. I love it!”

Explore the benefits of Java cloud hosting with a free trial at our Jelastic PaaS platform.

SOURCEJelastic, Inc.