Jelastic is a software platform for developers offered as a public, private, hybrid or multi-cloud on infrastructure of hosting providers worldwide or on-premise. Being fully focused on the customers’ needs, Jelastic consolidated PaaS, CaaS, Docker containers orchestrator 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. Such high granularity of resources allows the system to allocate the exactly required capacity for each instance in the environment. This ensures the truly fair 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.
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 UI dashboard or via API.
Jelastic is famous for its ability to automatically scale any container, both vertically and horizontally, making hosting of applications truly flexible. This simplifies the scaling of microservices, as well as eliminates the need of architectural changes while scaling legacy applications.
Layer (Node Group)
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.
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 is 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.
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 are offered within Jelastic Marketplace.
Host nodes are physical servers or big virtual machines (virtualized via KVM, ESXi, Hyper-V, etc.) of two types:
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 host nodes.
In case of host maintenance, all containers can be migrated to another physical server in a live mode without downtime of end users applications.
Environment region is a set of user nodes with one type of infrastructure in isolated network. Each environment region has its own capacity in a specific data centre, predefined pool of private and public IP addresses and corresponding resource price. The capacity of a region can be easily extended by adding more host nodes. Moreover, the initially chosen location can be effortlessly changed by migrating the project between available regions.
A region can be shared among many users as a Public Cloud or dedicated to a specific customer as a Virtual Private Cloud.
Jelastic platform is a group of environment regions and orchestrator 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 platform can aggregate various types of environment regions from different locations. As a result, end users get a multi datacenter 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 centres 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 centre location, support level, performance or pricing.
Now when you know the structure of Jelastic organism, it`s a high time to try how it works! Just choose the preferred hosting provider and start your cloud journey.