Java Cloud Hosting: Elasticity and Flexibility in a Turnkey PaaS
Originally developed as a pure Java cloud, FullHost.Cloud still places a strong emphasis on Java while supporting multiple languages. The platform's technological maturity has been recognized by the Java community, earning the prestigious Duke's Choice Award twice (in 2012 and 2018). This guide introduces the key features of Java hosting on FullHost.Cloud and helps you get started with its extensive functionality.
Java Versions
FullHost.Cloud supports a wide range of Java versions and distributions. Currently, the following versions are available:
- AdoptOpenJDK: 8.0.312; 11.0.13; 13.0.2; 14.0.2; 15.0.2; 16.0.2
- Alibaba Dragonwell: 8.11.12
- Amazon Corretto: 8.422.05.1; 11.0.24.8.1; 15.0.2.7.1; 16.0.2.7.1; 17.0.12.7.1; 18.0.2.9.1; 19.0.2.7.1; 20.0.2.10.1; 21.0.4.7.1
- Eclipse OpenJ9: 0.11.0 (8u192-b12; 11.0.1); 0.15.1 (8u222-b10; 11.0.4); 0.17.0 (8u232-b09; 11.0.5; 13.0.1); 0.18.1(8u242-b08; 11.0.6; 13.0.2) 0.20.0 (8u252-b09; 11.0.7); 0.21.0 (8u262-b10; 8u265-b01; 11.0.8; 14.0.2); 0.22.0 (15.0.0); 0.23.0 (8u272-b10; 11.0.9); 0.24.0 (8u282-b08; 11.0.10); 0.25.0-16; 0.26.0 (8u292-b10; 11.0.11); 0.27.0 (8u302-b08; 11.0.12); 0.29.0 (8u312-b07; 11.0.13); 0.30.0 (8u322-b06; 11.0.14); 0.32.0 (8u332-b09; 11.0.15); 0.33.1 (8u345-b01; 11.0.16); 0.35.0 (8u352-b08; 11.0.17); 0.36.1 (8u362-b09; 11.0.8); 0.38.0 (8u372-b07; 11.0.19); 0.41.0 (8u392-b08; 11.0.21); 0.43.0 (8u402-b06; 11.0.22)
- Eclipse Temurin: 8.0.422; 11.0.24; 17.0.12; 18.0.2.1; 19.0.2; 20.0.2; 21.0.2
- GraalVM CE (currently, for Java Engine and Maven only): 19.3.1; 20.2.0; 21.3.0; 22.3.3
- Liberica JDK: 8.0.322; 11.0.14; 13.0.2; 14.0.2; 15.0.0; 16.0.0; 17.0.2
- Oracle JDK Dev: 7.0_79; 8.0_202; 11.0.2
- Oracle OpenJDK: 7.0.261; 8.0.412; 11.0.24; 13.0.2; 14.0.2; 15.0.2; 16.0.2; 17.0.2; 18.0.2.1; 19.0.2; 20.0.2; 21.0.2; 22.0.2; 23.0.0
- Zulu Community: 7.0.352; 8.0.422; 11.0.24; 13.0.9; 14.0.2; 15.0.10; 16.0.2; 17.0.12; 18.0.2.1; 19.0.2; 20.0.2; 21.0.4; 22.0.2; 23.0.0
This variety ensures flexibility for your Java applications, allowing you to select the right version for your needs.
The most up-to-date list of available Java releases on FullHost.Cloud can be found in the regularly updated Software Stack Versions document.
You can select your preferred Java version when creating a new environment or change it later as needed.
Java Application Servers
FullHost.Cloud offers a variety of supported Java software stacks, including the pure Java Engine and the following Java application servers:
- GlassFish
- Jetty
- Payara
- Spring Boot
- Tomcat
- TomEE
- WildFly
For more detailed information on configuring Java servers within FullHost.Cloud, refer to the following documentation:
- Java App Server Configuration
- Java Garbage Collection
- Java Agent
- Java Tutorials
These resources will guide you through the specific setup and management of Java servers.
Java Environment Creation
To host your Java application on FullHost.Cloud, begin by creating an appropriate environment. Open the topology wizard from your dashboard, navigate to the Java tab, and select the desired Java application server, databases, and any additional stacks. You can customize settings such as cloudlets, disk space, and region if needed. Once configured, simply click Create to set up your environment.
All added servers are fully isolated containers, distributed across different hosts to ensure high availability. This isolation prevents any interference between them. You can assign a Public IP address to any of these servers for direct access. If using the default settings, incoming requests to your application will be proxied through the Shared Load Balancer.
Java Application Deployment
Once your environment is created, you can deploy your Java application with ease. FullHost.Cloud automates the deployment process, making it simple to get your project running quickly.
- The following deployment methods are supported:
- Application archive formats: .war, .zip, .jar, and .ear
- From a GIT/SVN remote repository, using the Maven build node
- Using IDE plugins: Ant Task, Eclipse, IntelliJ IDEA, Maven, and NetBeans
For more detailed instructions on Java application deployment, refer to the following documentation:
- Deployment Guide
- Maven Build Node
- Auto-Deploy Overview
- Deployment Hooks
Additionally, there are guides available for working with Bitbucket GIT repositories and managing projects via Gitblit and WebDAV.
Domains Management
You can easily bind a custom domain name to your application’s URL, replacing the default environment domain. Depending on your setup, there are two options:
- CNAME Redirect (for Shared Load Balancer): Recommended for development and test environments.
- DNS A Record (for Public IP): Suitable for production environments with higher traffic loads.
Additionally, with the swap domains feature or the SwapExtIps API/CLI method, you can upgrade or modify your application with zero downtime, ensuring a seamless experience for users.
Automatic Vertical Scaling
FullHost.Cloud dynamically allocates the necessary number of cloudlets (RAM and CPU resources) for your application based on its current load. Simply set a maximum limit, and the platform will automatically manage the rest—no manual intervention is required. This feature, called automatic vertical scaling, ensures that you don’t overpay for unused resources while avoiding any shortage in capacity.
To set or adjust the vertical scaling limit, use the slider in the topology wizard.
Horizontal Scaling: Manual and Automatic
If your application grows in popularity and requires more resources than a single node can handle, you can scale it horizontally. For added reliability and high availability, new nodes are distributed across different hardware servers.
Use the +/- buttons in the Horizontal Scaling section of the topology wizard to add or remove nodes as needed (a load balancer will be added automatically).
You can also choose between two scaling modes:
- Stateless – Simultaneously creates all new nodes from the base image template.
- Stateful – Sequentially copies the file system of the master container to the new nodes.
Horizontal scaling can also be automated based on current load, monitored through tunable triggers.
Navigate to Settings > Monitoring > Auto Horizontal Scaling to configure the scaling conditions, such as the upper and lower resource limits (percentage) over a specified period. If the load exceeds or falls below these limits, nodes will be added or removed automatically.
The platform monitors five key resources with triggers:
- CPU
- Memory (RAM)
- Network
- Disk I/O
- Disk IOPS
Once a trigger is set, it starts monitoring resource usage immediately. If consumption exceeds the defined limit and remains there for the specified period, the scaling action will be initiated, adjusting the number of nodes accordingly.
Java Clusterization
FullHost.Cloud’s embedded application server clustering feature provides automatic session replication between node pairs, increasing application availability without requiring additional software or Memcached.
The platform supports automated session replication between Tomcat and TomEE servers using multicast, ensuring high availability for web applications within a Java cluster. This high-availability feature can be enabled during environment creation or adjusted later through topology tuning.
For GlassFish, Payara, and WildFly stacks, FullHost.Cloud offers modern auto-clustering solutions:
- Out-of-Box GlassFish & Payara Clustering
- WildFly Automatic Micro Clustering and Scaling
These features ensure seamless clustering and scalability for your Java applications, providing robust performance and availability.
Database Connection to Java Application
FullHost.Cloud offers a range of scalable, fully managed database servers that can be easily integrated into your Java environment. To establish a connection, follow the appropriate instructions for your chosen database:
- MySQL and MariaDB Connection
- PostgreSQL Connection
- MongoDB Connection
FullHost.Cloud delivers high-quality Java hosting, ensuring enhanced availability, redundancy, and scalability for your applications.
James Gosling, the creator of Java, praised FullHost.Cloud (formerly Jelastic) for simplifying cloud infrastructure: “Configuring cloud infrastructures is fun the first time you do it. But it doesn’t take long before it becomes a tedious time sink. And if you’re a developer dealing with IT teams seeking control and visibility, it becomes a constant struggle. FullHost.Cloud solves all of that. Easy configuration tools for developers, management tools for IT. Peace and productivity. I love it!”
Explore the benefits of FullHost.Cloud’s Java platform with a free trial today.