Ruby PaaS Hosting Services on FullHost.Cloud Multi-Cloud
Ruby is a popular open-source programming language known for its powerful, practical, and easy-to-read syntax. Ruby incorporates best practices from various languages to provide a unique object-oriented experience. It includes features such as operator overloading, exception handling, iterators, closures, and garbage collection, making it a favorite among developers for its simplicity and flexibility.
FullHost.Cloud offers out-of-the-box integration with Ruby web servers, including full management and automation tools (such as the Ruby on Rails framework) to make Ruby application development and hosting seamless and efficient.
In this article, we'll explore the key features of Ruby hosting and the capabilities that FullHost.Cloud provides for Ruby developers.
Ruby Environment Hosting
FullHost.Cloud offers a powerful and intuitive topology wizard to easily set up your Ruby hosting environment.
Simply switch to the Ruby tab, select the desired application server and engine version, and add any other required software stacks. You can also adjust additional parameters such as cloudlets (RAM and CPU), disk space, Public IPv4/IPv6, and node count to customize your environment.
Ruby Application Servers
FullHost.Cloud offers Ruby application servers based on Apache and NGINX software stacks. Both are pre-configured to work with the Ruby on Rails framework and use the Passenger application server by default.
Additionally, the NGINX Ruby stack can be configured to work with different built-in servers:
- Passenger – A feature-rich application server for Ruby, essential for modern web applications and microservice APIs.
- Puma – A Ruby web server focused on speed and parallelism, offering fast and precise HTTP 1.1 protocol parsing.
- Unicorn – An HTTP server that leverages Unix-like kernels for efficiently serving fast clients over low-latency, high-bandwidth connections.
Ruby Versioning
FullHost.Cloud currently supports the following Ruby versions:
- Ruby 3.0.6
- Ruby 3.1.6
- Ruby 3.2.5
- Ruby 3.3.5
The list of available Ruby releases is updated regularly and can be found in the Software Stack Versions document.
You can select the desired Ruby version through the topology wizard when creating a new environment, and adjust it for existing instances via container redeployment.
Ruby Application Deployment
FullHost.Cloud automates the deployment process for managed Apache Ruby and NGINX Ruby application servers using the following methods:
- Uploading an application archive from your local machine or via an external URL
- Deploying from a remote VCS repository (e.g., GitHub)
When deploying a Ruby application, only a single context (ROOT) can be used. However, you can choose from three Deployment Types (RAILS_ENV):
- Development – Reloads all application classes and disables caching, allowing for a faster development cycle.
- Production – Enables all caching for optimized performance.
- Test – Clears the database between test runs.
If needed, you can switch between these Ruby deployment types via a drop-down list next to your application in the dashboard.
For more details on Ruby application deployment, refer to the following documents:
- Deployment Manager
- Deployment Guide
- Auto-Deploy Overview
- Deployment Hooks
These resources will guide you through the deployment process in greater detail.
Ruby Dependency Management
All Ruby instances on FullHost.Cloud come equipped with the Bundler dependency manager, which automatically tracks and installs the exact gems and versions required by your project. If your project includes a Gemfile in the root folder, Bundler will automatically resolve dependencies upon deployment without any manual intervention.
Additionally, you can include any Ruby framework (e.g., Sinatra, Rack, therubyracer, Ramaze) in your Gemfile or use Ruby on Rails, which is available by default for web application development.
For more information, refer to the Ruby Dependency Management documentation.
Ruby Post Deploy Configuration
To automate post-deployment actions (e.g., db:migrate), you can create a rake_deploy file in the root folder of your project. This file should list commands, each on a new line, which will be executed sequentially via the rake tool after each restart of the Apache/NGINX node.
Once the commands are successfully executed, the rake_deploy file is automatically removed. For further details, refer to the Ruby Post Deploy Configuration documentation.
Domains Management
You can assign a custom domain name to your Ruby application instead of using the default one. Depending on your environment topology, use the following methods:
- 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.
To switch traffic between environments (e.g., to direct users to a new application version without downtime), use the swap domains feature, which is also available via the SwapExtIps API/CLI method.
Automatic Vertical Scaling
One of the key features of FullHost.Cloud is dynamic resource provisioning. The platform automatically allocates the exact amount of resources (RAM and CPU) needed by your nodes based on the current load, without any manual intervention. Simply set the required cloudlet limit (each cloudlet equals 128 MiB of RAM and 400 MHz of CPU) for your Ruby application server, and FullHost.Cloud will manage the rest.
This approach allows you to take full advantage of the Pay-per-Use pricing model, ensuring you never overpay for unused resources. You also save time as the platform handles load-related adjustments automatically, eliminating the need for manual architectural changes or load predictions.
For more information, refer to the automatic vertical scaling documentation.
Manual Horizontal Scaling
Horizontal scaling on FullHost.Cloud is straightforward—just select the desired number of nodes in the topology wizard. 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.
The maximum number of same-type servers within a single environment layer typically defaults to 16 nodes, but this limit can be increased by contacting support.
Automatic Horizontal Scaling
You can configure automatic horizontal scaling for your Ruby environment using tunable triggers that monitor node load and adjust the number of nodes accordingly.
To set this up, go to Settings > Monitoring > Auto Horizontal Scaling in your environment. Select the layer and resource to be monitored (CPU, RAM, Network, Disk I/O, or Disk IOPS). Then, define the specific conditions and scaling rules using the intuitive UI form. The platform will automatically increase or decrease the number of nodes based on the load, ensuring optimal performance.
In addition, hosting on FullHost.Cloud provides access to a variety of built-in tools and features, such as:
- Built-in or Custom SSL
- Public IPv4 and IPv6 support
- A wide range of complementary software stacks, including SQL and NoSQL databases
- Container firewalls, endpoints, and environment network isolation
- User-friendly UI and SSH access
- Open API and Cloud Scripting for automation
- Pay-per-use pricing model
- Collaboration tools for teamwork
Get your free trial account today and start exploring the benefits of Ruby hosting on FullHost.Cloud’s platform for your own applications!