This article is devoted to the inner world of Jelastic Platform-as-Infrastructure. In our earlier article we have already presented the notion of Platform-as-Infrastructure: the definition of the term, the new market positioning of the company, the target markets of Platform-as-Infrastructure and unique features Jelastic provides. Now let’s go deeper and get familiar with Jelastic system architecture.
Jelastic solutions provide the fastest deployment model, the maximum application density and the easiest management for private, public and hybrid clouds, all while retaining the flexibility to customize infrastructure and application configurations. From its inception, Jelastic was defined as an open platform supporting multiple programming languages. Today Jelastic supports Java, PHP and Ruby. In the near future, Node.js, Python and .Net will also be supported.
Let’s review the component parts of Jelastic architecture that make it so highly and technically developed. Here we will present a high level overview of the main system modules and access levels available in Jelastic.
General Cluster Architecture
Jelastic Platform-as-Infrastructure is an isolated cluster with a group of servers and other resources that act like a single system for providing the ability to develop, debug, deploy, test, run and maintain hosted applications.
Jelastic Cluster includes Hardware Nodes where virtual isolated containers provisioned for environment are located and Cluster Orchestrator (Infrastructure Node) for internal components processing.
Cluster Orchestrator (Infrastructure Node) is a set of internal components for managing resources, processing requests, analyzing users behaviours and supporting Jelastic system maintenance. Usually we recommend using a dedicated server for the Cluster Orchestrator as it gives better stability and performance. The components of infra node are responsible for:
- Templates configuration and clustering binding
- Environment’s lifecycle management
- Applications deployment
- Scalability management
- Handling users requests via Global Resolver
- Logs and statistics
- Business analysis tools
- Monitoring and health checking
Each process mentioned above is served with a separate subsystem which will be described in more detail in future articles.
Jelastic can be installed on top of bare metal servers or third party IaaS solutions such as OpenStack, vSphere, AWS, Azure, Rackspace and others. The number of hardware nodes in the cluster depends on the expected cluster load and is usually determined during the onboarding process.
Hardware Nodes are physical servers or big virtual machines (they can be virtualized via KVM, ESXi, Hyper-V etc.). Jelastic slices big servers or virtual machines into small isolated virtual containers which will be used for user environments. This slicing is the basis for Jelastic’s industry-leading density and system resources utilization.
Each environment is a collection of isolated virtual containers that provides all the facilities necessary for a particular application. During environment creation the requested containers are taken from the pool of pre-created container templates. This helps to speed up provisioning and means that it literally takes a minute to get complex environments up and running. Each stack is located inside the isolated container making it possible to scale different layers of application topology (load balancing, app servers, databases, etc.) independently. This isolation also removes the risk of potential influence of one stack to another.
Container Based Virtualization
Jelastic uses Parallels Virtuozzo Containers for supporting the largest amount of applications on a single physical server. This is achieved by using operating system-level virtualization. Container-based virtualization helps to slice hardware nodes on smaller containers and get very high density. The containers located on the Hardware Nodes are independent Linux machines on CentOS (other versions of Linux are also supported).
Container-based virtualization guarantees the highest application density and maximum utilization of server resources, resulting in the best return-on-investment for the customer. Since containers are optimized for high density environments, the customer can use larger servers for even better total cost of ownership.
Since each container is fully isolated, they are highly secure and provide maximum uptime. This isolation prevents the neighboring containers from “behaving badly”, for example stealing resources from another. Each environment with provisioned containers gets complete privacy and becomes unavailable for all other users.
High Availability for Apps
The Jelastic platform provides the highest availability by distributing containers of one environment evenly on different Hardware nodes (physical servers). This is done with the help of anti-affinity groups configured to specify that certain virtual containers should never run on the same physical server.
As a result Jelastic eliminates any risk of application downtime if one of the physical servers has any issues with performance.
Jelastic has a unique feature - live migration. It allows the cluster to be rebalanced if any hardware node is overloaded. In addition, during maintenance or other planned downtime the live migration feature can perform automated evacuation of containers from a hardware node. During live migration applications keep working without downtime and get the required resources.
Jelastic’s unique vertical scaling uses live migration to ensure that applications can scale within a server without downtime. As an application scales within a server, other applications can be automatically migrated to another server to make room.Live migration allows Jelastic to deliver all the needed resources for applications without restarting containers and causing application downtime.
Density and Utilization
Better density and a higher utilization rate is gained with a help of memory deduplication mechanism. This mechanism collects statistics to determine which files are the most frequently accessed by containers. The most commonly used files are put in cache. If a container needs to access a commonly used file, it can go straight to the cache instead of the disk. This improves performance by reducing the number of I/O operations.
Jelastic’s hibernation feature delivers even better utilization of cluster resources. Optimal use of resources is achieved by suspending non-active containers and returning released resources back to the cluster.
Because they are in sleep mode, hibernated containers do not consume resources (only disk space). As a result customers save money while their containers are in hibernate mode. If applications are needed again the platform returns them to a running state again in just a few seconds.
Cluster Access Levels
Jelastic’s Platform-as-Infrastructure Cluster is targeted at a wide audience of developers and SMBs, enterprises and hosting providers. Each class of Jelastic customers has its own level of access and a specific way to interact with our platform.
There are three levels of access to the Jelastic Cluster:
- developers or SMBs
- end users
Jelastic provides two admin panels for accessing the cluster. Jelastic Cluster Panel (JCA) is available for administrators at hosting providers and enterprise companies. The other admin panel is the Jelastic Dashboard which is used by developers. This makes the Jelastic system ideal for DevOps teams.
The administrators of the Jelastic platform are operations departments of hosting providers or IT departments of enterprise companies. After the platform installation, they become the owner of the platform and begin to manage the overall performance via Jelastic Cluster Admin Panel by setting the main configurations (quotas, tariffs, customization etc.) and supporting all of the required aspects.
There are four main tasks performed by the administrators during the Jelastic Cluster lifecycle:
Jelastic provides a full set of analytics, documentation and required tools for performing the above mentioned tasks in an efficient and high quality way.
Developers or SMBs
This group of Jelastic customers can create environments, deploy their applications and perform all the actions required for the successful lifecycle of their applications. Environment and application management is performed via Jelastic’s panel for developers - Jelastic Dashboard.
The main activities available for developers or SMBs in the Jelastic platform are as follows:
- create simple and complex environments
- deploy applications in different ways without any code change
- ability to tune and tweak configurations
- scale applications vertically and horizontally
- test and debug applications remotely
- application lifecycle management
- clone and share environments
- suspend and activate stopped environments
- process statistics and logs
- upgrade and fund account, etc.
While using Jelastic the typical developer might go from trial registration to features testing during the trial period. The major steps of this life cycle are represented in the diagram below:
At the end of the trial period developers decide whether to upgrade the account and reach the production or to get the account destroyed.
Enterprise installations do not have a trial period. In the enterprise private cloud developers can self-manage their application environments using the Jelastic dashboard relieving IT administrators from environment configuration and setup tasks.
The end-users are connected to the Jelastic Cluster indirectly by using applications deployed to the Jelastic environments created by developers or SMBs or enterprise developers. All of the incoming users’ requests are sent to the domain name of an appropriate application and are processed in one of the following ways:
- via Global Resolvers
Jelastic uses several synchronized Resolvers for receiving requests simultaneously. As a result, there can be several entry points for environments used at the same time.
- via Public IP if it is attached to the entry point of the environment (balancer, app server or database container). This solution provides less risk of being affected by other applications (as in the case with shared Resolvers) and is recommended for production applications. Also Public IP usage makes more features available such as remote debugging, remote backup, JMX, FTP, Custom SSL, websockets and polling etc.
Access levels make using and managing the Jelastic Cluster fully efficient, convenient and easy. Each type of customer is provided with their own range of rights and limitations making the system well structured and organized.
In this article we have described the internal architecture of the Jelastic platform. We will cover more information on this topic in our future posts.
And don’t forget that you can discover for yourself all of the functions, power and flexibility of Jelastic Platform-as-Infrastructure by signing up for a free, two-week trial.
Enterprise customers can contact Jelastic sales and take advantage of our risk-free “try-and-buy” program which provides Jelastic Platform-as-Infrastructure to enterprises for a free 6-week evaluation/proof of concept.