Jelastic is a software platform for developers offered as a public, private, hybrid, or multi-cloud on an infrastructure of hosting providers worldwide or on-premise. Jelastic consolidated PaaS, CaaS, Docker container orchestrators, and Elastic VPS offerings in one cloud product with a single management panel. So today, we’d like to describe how this complex organism is built to make the development and application management easy and smooth.
The smallest Jelastic component is the cloudlet. It is a special resource unit that equals to 128 MiB of RAM and 400 MHz of CPU power simultaneously. The high granularity of resources allows the system to allocate the exactly required capacity for each instance in the environment. This ensures the usage-based pricing so you pay only for really consumed resources.
There are two types of cloudlet at Jelastic:
- Reserved cloudlets are fixed amount of resources reserved in advance and charged irrespective of your actual usage. This is a common pricing model offered by the most cloud vendors where you pay for the defined limits.
- Dynamic cloudlets are added and removed automatically according to the amount of resources that is required by your application in a particular moment of time (assigned when load goes up and removed as soon as it drops down). As a result, you pay based on your actual resource usage within the scaling limit.
When calculating your cloudlet usage, the system only considers the larger of RAM or CPU usage each hour (not both combined). E.g. if during one hour your average CPU usage is 2400 MHz (6 cloudlets), and your peak RAM usage is 1024 MiB (8 cloudlets), you pay for 8 cloudlets — not the combined total (14 cloudlets).
Reserved cloudlets are cheaper than dynamic and recommended to be used when the application load is permanent. At the same time, dynamic cloudlets save money with its usage-based charging model for the applications with variable load or the load that cannot be predicted in advance. Both cloudlets provide auto discounts for the usage volume – the more you use, the cheaper is the base price.
The container is an isolated virtualized instance (server) provisioned for the software stacks (like application servers, databases, load balancers, etc.) and placed on a particular hardware node. Jelastic can support several containers on a single physical server by using operating system-level virtualization.
The platform provides certified containers for Java, PHP, Ruby, Node.js, Python, and .NET and the ability to deploy custom Docker containers. Each container has its own private IP and unique DNS record. Public IP can be easily attached within a UI dashboard or via API.
Jelastic can automatically scale any container, both vertically and horizontally, making hosting of applications flexible. This simplifies the scaling of microservices as well as eliminates the need of architectural changes while scaling legacy applications.
Layer (Node Group)
The Jelastic layer is a group of similar containers in a single environment. There is a set of predefined layers within Jelastic topology wizard for certified containers such as Balancing, Application Servers (compute nodes), SQL and NoSQL Databases, Cache, Storage, Build Nodes, and VPS. Custom layers can be added for Docker-based environments.
The layers are designed to perform different actions with the same type of containers at once. For example, the nodes can be simultaneously restarted or redeployed, as well as horizontally scaled via UI, API, CLI, or based on the load triggers. Also, you can check the common logs and stats, or make the required configurations via file manager for all containers in a layer.
In addition, the containers of one layer are distributed across different hardware servers using anti-affinity rules, ensuring even more reliability and high-availability for hosted applications.
The environment is a collection of isolated containers with specific software stacks that are responsible for running particular services of an application. Jelastic provides built-in tools for environment configuration, monitoring, and troubleshooting. There are a number of actions that can be performed on the whole environment, such as stop, start, clone, migrate to another hardware region or even another data center, share with team members for collaborative work, track resource consumption, and so on.
Each environment has its own internal 3rd-level domain name by default. A custom external domain can be easily bound via CNAME or A record and further swapped among environments for traffic redirection.
The application is a combination of environments for running one project. A simple application with one or two stacks can be run inside one environment. And applications with more complex topologies usually require more flexibility during deploy or update processes, so it is better to distribute their stacks across several environments to be able to maintain them independently.
Application source code or built binaries can be deployed and automatically updated using GIT/SVN, uploaded as local files (zip, war, ear, etc) via UI dashboard or FTP, or deployed as a part of custom Docker containers. A set of already prepackaged applications is offered within Jelastic Marketplace.
Hardware nodes are physical servers or big virtual machines (virtualized via KVM, ESXi, Hyper-V, etc.) of two types:
- Infrastructure Node
- User Node
Infrastructure node (orchestrator) is a set of internal components for managing resources and containers templates, processing user requests, monitoring and supporting Jelastic cluster installation.
User nodes are sliced into small isolated containers that are used for the environments. This slicing provides the industry-leading multitenancy, as well as high density and smart resource utilization with the help of containers distribution according to the load across hardware nodes.
In case of hardware maintenance, specific or all containers can be migrated to another physical server in a live mode without downtime of end users applications.
The hardware region is a set of user nodes with one type of hardware in isolated network. Each hardware region has its own capacity in a specific data center, a predefined pool of private and public IP addresses, and a corresponding resource price. The capacity of a region can be easily extended by adding more hardware nodes.
A region can be shared among many users as a public cloud or dedicated to a specific customer as a virtual private cloud.
A Jelastic cluster is a group of hardware regions and orchestrators that act like a single system by providing the ability to develop, deploy, test, run, debug, and maintain hosted applications in the cloud.
A single cluster can aggregate various types of hardware regions from different locations. As a result, end users get a multi-data center or even multi-cloud solution for running their applications within one panel. Each cluster is maintained by a separate hosting service provider with its local support team.
Jelastic has a unique business model of distributing its cloud product through hosting providers worldwide. So there is a rich choice of Jelastic cloud vendors regulated by local government and laws. In other words, our hosting partners speak your language and understand your specific needs.
Jelastic Cloud Union already includes 46 data centers available in 29 countries (more than offered by cloud giants). This partner community provides the freedom of choice while hosting your application with no vendor lock-in and no compromise on data center location, support level, performance, or pricing.